Control: tags -1 fixed-upstream pending
/build/reproducible-path/rocprim-6.4.3/rocprim/include/rocprim/thread/thread_load.hpp:121:1: error: invalid operand for instruction
121 | ROCPRIM_ASM_THREAD_LOAD_GROUP(load_cg, "glc slc", "s_waitcnt", "");
| ^
/build/reproducible-path/rocprim-6.4.3/rocprim/include/rocprim/thread/thread_load.hpp:98:5: note: expanded from macro 'ROCPRIM_ASM_THREAD_LOAD_GROUP'
98 | ROCPRIM_ASM_THREAD_LOAD(cache_modifier, llvm_cache_modifier, uint16_t, uint16_t, flat_load_ushort, v, wait_inst, wait_cmd); \
| ^
/build/reproducible-path/rocprim-6.4.3/rocprim/include/rocprim/thread/thread_load.hpp:86:26: note: expanded from macro 'ROCPRIM_ASM_THREAD_LOAD'
86 | asm volatile(#asm_operator " %0, %1 " llvm_cache_modifier "\n\t" wait_inst wait_cmd \
| ^
<scratch space>:680:1: note: expanded from here
680 | "flat_load_ushort"
| ^
<inline asm>:1:19: note: instantiated into assembly here
1 | flat_load_ushort v0.l, v[0:1] glc slc
| ^
Thanks. I was only building the package for my gfx906 GPU before uploading, which I guess was a mistake. This problem seems to occur when building for gfx1100. Based on other issues I've seen with the LLVM 17 -> LLVM 21 transition, it looks like the new compiler is more strict about invalid assembly.
In any case, I've backported a change from ROCm 7.1 that appears to fix the issue. The change has been pushed to Salsa, but I've learned my lesson and am going to let it build overnight on my workstation for all GPU architectures before I upload the fix to unstable.
Sincerely,
Cory Bloor