[llvm] [AMDGPU] using divergent/uniform information in ISel of zext (PR #174539)

Zeng Wu via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 8 11:16:01 PST 2026


================

----------------
zwu-2025 wrote:

the complete MIR is:
```
        bb.0.entry:
liveins: $sgpr4_sgpr5
%3:sgpr_64(p4) = COPY $sgpr4_sgpr5
%8:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
        early-clobber %9:sreg_64_xexec_xnull = S_LOAD_DWORDX2_IMM_ec %3:sgpr_64(p4), 36, 0 :: (dereferenceable invariant load (s64) from %ir.out.kernarg.offset, align 4, addrspace 4)
        early-clobber %10:sreg_64_xexec = S_LOAD_DWORDX2_IMM_ec %3:sgpr_64(p4), 44, 0 :: (dereferenceable invariant load (s64) from %ir.val0.kernarg.offset, align 4, addrspace 4)
%11:sreg_32 = COPY %10.sub0:sreg_64_xexec
%12:sreg_32 = COPY %10.sub1:sreg_64_xexec
        S_CMP_EQ_U32 killed %11:sreg_32, killed %12:sreg_32, implicit-def $scc
%13:sreg_64 = COPY $scc
%15:sreg_32 = COPY %13:sreg_64
%14:sreg_32 = S_AND_B32 killed %15:sreg_32, 1, implicit-def dead $scc
%16:av_32 = COPY %14:sreg_32
        GLOBAL_STORE_DWORD_SADDR killed %8:vgpr_32, killed %16:av_32, killed %9:sreg_64_xexec_xnull, 0, 0, implicit $exec :: (store (s32) into %ir.out.load, addrspace 1)
        S_ENDPGM 0
```

https://github.com/llvm/llvm-project/pull/174539


More information about the llvm-commits mailing list