Control: tags -1 fixed-upstream pending
On 2025-11-02 16:02, Sebastian Ramacher wrote:
/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