[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1119960: rocprim: FTBFS: /build/reproducible-path/rocprim-6.4.3/rocprim/include/rocprim/thread/thread_load.hpp:121:1: error: invalid operand for instruction



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


Reply to: