[llvm] [AMDGPU] Remove setcc by using add/sub carryout (PR #155255)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 19 10:14:05 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;
+
----------------
LU-JOHN wrote:
This code is checking for the $scc_out (Dest1) size which can be 32 or 64, not the 32-bit Dest0. The old code always generated a 64-bit select. Change moved to a separate PR https://github.com/llvm/llvm-project/pull/159814.
https://github.com/llvm/llvm-project/pull/155255
More information about the llvm-commits
mailing list