Bug#1119826: hipcc: fatal error in backend compiling rocprim device_scan_by_key
Package: clang-21
Version: 1:21.1.4-5
Severity: normal
X-Debbugs-Cc: cgmb@debian.org,debian-ai@lists.debian.org
Dear Maintainer,
When updating src:rocprim 6.4.3-1 to use LLVM 21, I encountered a compilation
error when building test_device_scan. The relevent portion of the build log is:
```
fatal error: error in backend: Cannot select: 0x5601b2cf41f0: v2i32 = bitcast FrameIndex:i32<107>, ./rocprim/include/rocprim/device/detail/device_scan_by_key.hpp:176:27 @[ ./rocprim/include/rocprim/device/detail/device_scan_by_key.hpp:338:25 @[ ./rocprim/include/rocprim/device/device_scan_by_key.hpp:73:5 ] ]
In function: _ZN7rocprim6detail25device_scan_by_key_kernelILNS0_25lookback_scan_determinismE1ELb1ENS0_26wrapped_scan_by_key_configINS_14default_configEjN10test_utils22custom_test_array_typeIiLm10EEEEEPjNS_18transform_iteratorIPS7_ZN46RocprimDeviceScanTests_ExclusiveScanByKey_TestI16DeviceScanParamsIS7_S7_NS_4plusIS7_EELb0E21default_config_helperLb0ELb0EEE8TestBodyEvEUlS7_E_S7_EESB_S7_NS_8equal_toIjEESF_NS0_19lookback_scan_stateINS_5tupleIJS7_bEEELb0ELb0EEES7_EEvT2_T3_T4_T5_T6_T7_T8_mmmPKNSO_IJT9_bEEE
make[3]: Leaving directory '/root/rocprim/rocprim/obj-x86_64-linux-gnu'
[ 93%] Built target test_warp_exchange
clang++-21: error: clang frontend command failed with exit code 70 (use -v to see invocation)
Debian clang version 21.1.4 (5 fb6c4c0009b70a63ce23a587bf7210b12757a332)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm-21/bin
clang++-21: note: diagnostic msg: Error generating preprocessed source(s).
failed to execute:/usr/bin/clang++-21  --offload-arch=gfx906  -DUSE_PROF_API=1 -D__HIP_PLATFORM_AMD__=1 -I/root/rocprim/rocprim/obj-x86_64-linux-gnu/rocprim/include -I/root/rocprim/rocprim/obj-x86_64-linux-gnu/rocprim/include/rocprim -I/root/rocprim/rocprim/rocprim/include -isystem /root/rocprim/rocprim/test -gz -DROCPRIM_NO_DEPRECATION_WARNINGS -g -O2 -ffile-prefix-map=/root/rocprim/rocprim=. -Xarch_host -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Xarch_host -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -DNDEBUG -std=c++17 -DGTEST_HAS_PTHREAD=1 -x hip -MD -MT test/rocprim/CMakeFiles/test_device_scan.dir/test_device_scan.cpp.o -MF CMakeFiles/test_device_scan.dir/test_device_scan.cpp.o.d -o "CMakeFiles/test_device_scan.dir/test_device_scan.cpp.o" -c /root/rocprim/rocprim/test/rocprim/test_device_scan.cpp
make[3]: *** [test/rocprim/CMakeFiles/test_device_scan.dir/build.make:82: test/rocprim/CMakeFiles/test_device_scan.dir/test_device_scan.cpp.o] Error 1
make[3]: Leaving directory '/root/rocprim/rocprim/obj-x86_64-linux-gnu'
make[2]: *** [CMakeFiles/Makefile2:1721: test/rocprim/CMakeFiles/test_device_scan.dir/all] Error 2
```
As a workaround, I have skipped building test_device_scan in
librocprim-tests. However, I presume this is an indication of a deeper
problem. I assume that this is a clang bug, as my expectation would be that
it probably shouldn't be possible to cause a fatal error in the clang backend.
However, it's possible that this is ultimately the fault of a different
component.
Sincerely,
Cory Bloor
-- System Information:
Debian Release: forky/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 6.16.12+deb14+1-amd64 (SMP w/32 CPU threads; PREEMPT)
Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: unable to detect
Versions of packages clang-21 depends on:
ii  binutils                2.45-8
ii  libc6                   2.41-12
ii  libc6-dev               2.41-12
ii  libclang-common-21-dev  1:21.1.4-5
ii  libclang-cpp21          1:21.1.4-5
ii  libclang1-21            1:21.1.4-5
ii  libgcc-15-dev           15.2.0-7
ii  libgcc-s1               15.2.0-7
ii  libllvm21               1:21.1.4-5
ii  libobjc-15-dev          15.2.0-7
ii  libstdc++-15-dev        15.2.0-7
ii  libstdc++6              15.2.0-7
ii  llvm-21-linker-tools    1:21.1.4-5
Versions of packages clang-21 recommends:
ii  clang-tools-21  1:21.1.4-5
pn  llvm-21-dev     <none>
ii  python3         3.13.7-1
Versions of packages clang-21 suggests:
pn  clang-21-doc  <none>
pn  wasi-libc     <none>
-- no debconf information
Reply to: