[llvm] [AMDGPU][GlobalISel] Add RegBankLegalize support for G_FPTRUNC (PR #171723)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 12 05:09:24 PST 2025
================
@@ -260,6 +260,34 @@ bool AMDGPURegBankLegalizeCombiner::tryEliminateReadAnyLane(
RALDst = SrcMI.getOperand(1).getReg();
Register RALSrc = getReadAnyLaneSrc(RALDst);
+
+ // Sgpr0 = G_AMDGPU_READANYLANE Vgpr0
+ // Sgpr1 = G_AMDGPU_READANYLANE Vgpr1
+ // Sgpr2 = G_AMDGPU_READANYLANE Vgpr2
+ // ...
+ // Src = G_BUILD_VECTOR Sgpr0, Sgpr1, Sgpr2, ...
+ // Dst = COPY Src
+ // ->
+ // Dst = G_BUILD_VECTOR Vgpr0, Vgpr1, Vgpr2, ...
+ if (!RALSrc) {
+ if (auto *BV = getOpcodeDef<GBuildVector>(RALDst, MRI)) {
+ unsigned NumElts = BV->getNumSources();
+ SmallVector<Register, 4> VgprSrcs;
+ for (unsigned i = 0; i < NumElts; ++i) {
+ auto [RAL, VgprSrc] =
+ tryMatch(BV->getSourceReg(i), AMDGPU::G_AMDGPU_READANYLANE);
+ if (!RAL)
+ break;
+ VgprSrcs.push_back(VgprSrc);
+ }
+ if (VgprSrcs.size() == NumElts) {
+ B.setInstr(Copy);
----------------
arsenm wrote:
Is this handling debug info correctly?
https://github.com/llvm/llvm-project/pull/171723
More information about the llvm-commits
mailing list