[llvm] [AMDGPU] Remove setcc by using add/sub carryout (PR #155255)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 18 07:23:48 PDT 2025


================
@@ -5959,9 +5962,13 @@ SITargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
         .add(Src1);
     // clang-format on
 
-    BuildMI(*BB, MI, DL, TII->get(AMDGPU::S_CSELECT_B64), Dest1.getReg())
-        .addImm(1)
-        .addImm(0);
+    const TargetRegisterClass *Dest1RC = MRI.getRegClass(Dest1.getReg());
+    unsigned Dest1Size = TRI->getRegSizeInBits(*Dest1RC);
+    assert(Dest1Size == 64 || Dest1Size == 32);
+    unsigned SelOpc =
+        (Dest1Size == 64) ? AMDGPU::S_CSELECT_B64 : AMDGPU::S_CSELECT_B32;
+
----------------
arsenm wrote:

These pseudos are defined with 32-bit registers, not sure why you have code to check the register size or handle 64-bit. This is implied by the opcode already 

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


More information about the llvm-commits mailing list