[llvm] [GlobalISel] Rename G_ABDS/G_ABDU to G_SABD/G_UABD (PR #165236)

via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 27 04:12:05 PDT 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-backend-aarch64

Author: David Green (davemgreen)

<details>
<summary>Changes</summary>

All the other opcodes in GISel put the signed/unsigned at the start of the opcode name, including UMULH which is MULHU in SDAG. Do the same for G_UABD and G_SABD to keep them consistent with other nodes.

---

Patch is 29.54 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/165236.diff


16 Files Affected:

- (modified) llvm/docs/GlobalISel/GenericOpcode.rst (+3-3) 
- (modified) llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h (+8-8) 
- (modified) llvm/include/llvm/Support/TargetOpcodes.def (+2-2) 
- (modified) llvm/include/llvm/Target/GenericOpcodes.td (+2-2) 
- (modified) llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td (+2-2) 
- (modified) llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp (+13-13) 
- (modified) llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp (+3-3) 
- (modified) llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp (+1-1) 
- (modified) llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir (+3-3) 
- (modified) llvm/test/CodeGen/MIR2Vec/Inputs/reference_x86_vocab_print.txt (+2-2) 
- (modified) llvm/test/CodeGen/MIR2Vec/Inputs/reference_x86_vocab_wo=0.5_print.txt (+2-2) 
- (modified) llvm/test/CodeGen/RISCV/GlobalISel/legalizer-info-validation.mir (+3-3) 
- (modified) llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-abs-diff-rv32.mir (+8-8) 
- (modified) llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-abs-diff-rv64.mir (+8-8) 
- (modified) llvm/test/MachineVerifier/test_abd_su.mir (+5-5) 
- (modified) llvm/test/tools/llvm-ir2vec/output/reference_x86_entities.txt (+217-217) 


``````````diff
diff --git a/llvm/docs/GlobalISel/GenericOpcode.rst b/llvm/docs/GlobalISel/GenericOpcode.rst
index 661a11537cf57..1c3d7c80e880b 100644
--- a/llvm/docs/GlobalISel/GenericOpcode.rst
+++ b/llvm/docs/GlobalISel/GenericOpcode.rst
@@ -501,15 +501,15 @@ undefined.
   %2:_(s33) = G_CTLZ_ZERO_UNDEF %1
   %2:_(s33) = G_CTTZ_ZERO_UNDEF %1
 
-G_ABDS, G_ABDU
+G_SABD, G_UABD
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Compute the absolute difference (signed and unsigned), e.g. trunc(abs(ext(x)-ext(y)).
 
 .. code-block:: none
 
-  %0:_(s33) = G_ABDS %2, %3
-  %1:_(s33) = G_ABDU %4, %5
+  %0:_(s33) = G_SABD %2, %3
+  %1:_(s33) = G_UABD %4, %5
 
 Floating Point Operations
 -------------------------
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h b/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
index 40c7792f7e8a2..ed10c64d08ad0 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
@@ -1884,32 +1884,32 @@ class LLVM_ABI MachineIRBuilder {
     return buildInstr(TargetOpcode::G_MUL, {Dst}, {Src0, Src1}, Flags);
   }
 
-  /// Build and insert \p Res = G_ABDS \p Op0, \p Op1
+  /// Build and insert \p Res = G_SABD \p Op0, \p Op1
   ///
-  /// G_ABDS return the signed absolute difference of \p Op0 and \p Op1.
+  /// G_SABD return the signed absolute difference of \p Op0 and \p Op1.
   ///
   /// \pre setBasicBlock or setMI must have been called.
   /// \pre \p Res, \p Op0 and \p Op1 must be generic virtual registers
   ///      with the same (scalar or vector) type).
   ///
   /// \return a MachineInstrBuilder for the newly created instruction.
-  MachineInstrBuilder buildAbds(const DstOp &Dst, const SrcOp &Src0,
+  MachineInstrBuilder buildSAbd(const DstOp &Dst, const SrcOp &Src0,
                                 const SrcOp &Src1) {
-    return buildInstr(TargetOpcode::G_ABDS, {Dst}, {Src0, Src1});
+    return buildInstr(TargetOpcode::G_SABD, {Dst}, {Src0, Src1});
   }
 
-  /// Build and insert \p Res = G_ABDU \p Op0, \p Op1
+  /// Build and insert \p Res = G_UABD \p Op0, \p Op1
   ///
-  /// G_ABDU return the unsigned absolute difference of \p Op0 and \p Op1.
+  /// G_UABD return the unsigned absolute difference of \p Op0 and \p Op1.
   ///
   /// \pre setBasicBlock or setMI must have been called.
   /// \pre \p Res, \p Op0 and \p Op1 must be generic virtual registers
   ///      with the same (scalar or vector) type).
   ///
   /// \return a MachineInstrBuilder for the newly created instruction.
-  MachineInstrBuilder buildAbdu(const DstOp &Dst, const SrcOp &Src0,
+  MachineInstrBuilder buildUAbd(const DstOp &Dst, const SrcOp &Src0,
                                 const SrcOp &Src1) {
-    return buildInstr(TargetOpcode::G_ABDU, {Dst}, {Src0, Src1});
+    return buildInstr(TargetOpcode::G_UABD, {Dst}, {Src0, Src1});
   }
 
   MachineInstrBuilder buildUMulH(const DstOp &Dst, const SrcOp &Src0,
diff --git a/llvm/include/llvm/Support/TargetOpcodes.def b/llvm/include/llvm/Support/TargetOpcodes.def
index e55314568d683..3c307a406c729 100644
--- a/llvm/include/llvm/Support/TargetOpcodes.def
+++ b/llvm/include/llvm/Support/TargetOpcodes.def
@@ -290,10 +290,10 @@ HANDLE_TARGET_OPCODE(G_OR)
 HANDLE_TARGET_OPCODE(G_XOR)
 
 /// Generic absolute difference signed instruction.
-HANDLE_TARGET_OPCODE(G_ABDS)
+HANDLE_TARGET_OPCODE(G_SABD)
 
 /// Generic absolute difference unsigned instruction.
-HANDLE_TARGET_OPCODE(G_ABDU)
+HANDLE_TARGET_OPCODE(G_UABD)
 
 
 HANDLE_TARGET_OPCODE(G_IMPLICIT_DEF)
diff --git a/llvm/include/llvm/Target/GenericOpcodes.td b/llvm/include/llvm/Target/GenericOpcodes.td
index e3f995d53484f..d831af2213dff 100644
--- a/llvm/include/llvm/Target/GenericOpcodes.td
+++ b/llvm/include/llvm/Target/GenericOpcodes.td
@@ -408,7 +408,7 @@ def G_ASHR : GenericInstruction {
 }
 
 // Generic absolute difference signed.
-def G_ABDS : GenericInstruction {
+def G_SABD : GenericInstruction {
   let OutOperandList = (outs type0:$dst);
   let InOperandList = (ins type0:$src1, type0:$src2);
   let hasSideEffects = false;
@@ -416,7 +416,7 @@ def G_ABDS : GenericInstruction {
 }
 
 // Generic absolute difference unsigned.
-def G_ABDU : GenericInstruction {
+def G_UABD : GenericInstruction {
   let OutOperandList = (outs type0:$dst);
   let InOperandList = (ins type0:$src1, type0:$src2);
   let hasSideEffects = false;
diff --git a/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td b/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
index c0d480294dd8b..dea572bdf11d2 100644
--- a/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+++ b/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
@@ -81,8 +81,8 @@ def : GINodeEquiv<G_XOR, xor>;
 def : GINodeEquiv<G_SHL, shl>;
 def : GINodeEquiv<G_LSHR, srl>;
 def : GINodeEquiv<G_ASHR, sra>;
-def : GINodeEquiv<G_ABDS, abds>;
-def : GINodeEquiv<G_ABDU, abdu>;
+def : GINodeEquiv<G_SABD, abds>;
+def : GINodeEquiv<G_UABD, abdu>;
 def : GINodeEquiv<G_SADDSAT, saddsat>;
 def : GINodeEquiv<G_UADDSAT, uaddsat>;
 def : GINodeEquiv<G_SSUBSAT, ssubsat>;
diff --git a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
index 52c43a4ac4a04..ca9adecac361c 100644
--- a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
@@ -2974,7 +2974,7 @@ LegalizerHelper::widenScalar(MachineInstr &MI, unsigned TypeIdx, LLT WideTy) {
   case TargetOpcode::G_SREM:
   case TargetOpcode::G_SMIN:
   case TargetOpcode::G_SMAX:
-  case TargetOpcode::G_ABDS:
+  case TargetOpcode::G_SABD:
     Observer.changingInstr(MI);
     widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_SEXT);
     widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_SEXT);
@@ -3013,7 +3013,7 @@ LegalizerHelper::widenScalar(MachineInstr &MI, unsigned TypeIdx, LLT WideTy) {
     return Legalized;
   case TargetOpcode::G_UDIV:
   case TargetOpcode::G_UREM:
-  case TargetOpcode::G_ABDU:
+  case TargetOpcode::G_UABD:
     Observer.changingInstr(MI);
     widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ZEXT);
     widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ZEXT);
@@ -4819,9 +4819,9 @@ LegalizerHelper::lower(MachineInstr &MI, unsigned TypeIdx, LLT LowerHintTy) {
     return lowerShlSat(MI);
   case G_ABS:
     return lowerAbsToAddXor(MI);
-  case G_ABDS:
-  case G_ABDU: {
-    bool IsSigned = MI.getOpcode() == G_ABDS;
+  case G_SABD:
+  case G_UABD: {
+    bool IsSigned = MI.getOpcode() == G_SABD;
     LLT Ty = MRI.getType(MI.getOperand(0).getReg());
     if ((IsSigned && LI.isLegal({G_SMIN, Ty}) && LI.isLegal({G_SMAX, Ty})) ||
         (!IsSigned && LI.isLegal({G_UMIN, Ty}) && LI.isLegal({G_UMAX, Ty}))) {
@@ -10134,9 +10134,9 @@ LegalizerHelper::lowerAbsToCNeg(MachineInstr &MI) {
 
 LegalizerHelper::LegalizeResult
 LegalizerHelper::lowerAbsDiffToSelect(MachineInstr &MI) {
-  assert((MI.getOpcode() == TargetOpcode::G_ABDS ||
-          MI.getOpcode() == TargetOpcode::G_ABDU) &&
-         "Expected G_ABDS or G_ABDU instruction");
+  assert((MI.getOpcode() == TargetOpcode::G_SABD ||
+          MI.getOpcode() == TargetOpcode::G_UABD) &&
+         "Expected G_SABD or G_UABD instruction");
 
   auto [DstReg, LHS, RHS] = MI.getFirst3Regs();
   LLT Ty = MRI.getType(LHS);
@@ -10145,7 +10145,7 @@ LegalizerHelper::lowerAbsDiffToSelect(MachineInstr &MI) {
   // abdu(lhs, rhs) -> select(ugt(lhs,rhs), sub(lhs,rhs), sub(rhs,lhs))
   Register LHSSub = MIRBuilder.buildSub(Ty, LHS, RHS).getReg(0);
   Register RHSSub = MIRBuilder.buildSub(Ty, RHS, LHS).getReg(0);
-  CmpInst::Predicate Pred = (MI.getOpcode() == TargetOpcode::G_ABDS)
+  CmpInst::Predicate Pred = (MI.getOpcode() == TargetOpcode::G_SABD)
                                 ? CmpInst::ICMP_SGT
                                 : CmpInst::ICMP_UGT;
   auto ICmp = MIRBuilder.buildICmp(Pred, LLT::scalar(1), LHS, RHS);
@@ -10157,9 +10157,9 @@ LegalizerHelper::lowerAbsDiffToSelect(MachineInstr &MI) {
 
 LegalizerHelper::LegalizeResult
 LegalizerHelper::lowerAbsDiffToMinMax(MachineInstr &MI) {
-  assert((MI.getOpcode() == TargetOpcode::G_ABDS ||
-          MI.getOpcode() == TargetOpcode::G_ABDU) &&
-         "Expected G_ABDS or G_ABDU instruction");
+  assert((MI.getOpcode() == TargetOpcode::G_SABD ||
+          MI.getOpcode() == TargetOpcode::G_UABD) &&
+         "Expected G_SABD or G_UABD instruction");
 
   auto [DstReg, LHS, RHS] = MI.getFirst3Regs();
   LLT Ty = MRI.getType(LHS);
@@ -10167,7 +10167,7 @@ LegalizerHelper::lowerAbsDiffToMinMax(MachineInstr &MI) {
   // abds(lhs, rhs) -→ sub(smax(lhs, rhs), smin(lhs, rhs))
   // abdu(lhs, rhs) -→ sub(umax(lhs, rhs), umin(lhs, rhs))
   Register MaxReg, MinReg;
-  if (MI.getOpcode() == TargetOpcode::G_ABDS) {
+  if (MI.getOpcode() == TargetOpcode::G_SABD) {
     MaxReg = MIRBuilder.buildSMax(Ty, LHS, RHS).getReg(0);
     MinReg = MIRBuilder.buildSMin(Ty, LHS, RHS).getReg(0);
   } else {
diff --git a/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp b/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
index 5f93847bc680e..ac322490d9485 100644
--- a/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
+++ b/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
@@ -289,7 +289,7 @@ AArch64LegalizerInfo::AArch64LegalizerInfo(const AArch64Subtarget &ST)
       .moreElementsToNextPow2(0)
       .lower();
 
-  getActionDefinitionsBuilder({G_ABDS, G_ABDU})
+  getActionDefinitionsBuilder({G_SABD, G_UABD})
       .legalFor({v8s8, v16s8, v4s16, v8s16, v2s32, v4s32})
       .lower();
 
@@ -1814,9 +1814,9 @@ bool AArch64LegalizerInfo::legalizeIntrinsic(LegalizerHelper &Helper,
   case Intrinsic::aarch64_neon_umull:
     return LowerBinOp(AArch64::G_UMULL);
   case Intrinsic::aarch64_neon_sabd:
-    return LowerBinOp(TargetOpcode::G_ABDS);
+    return LowerBinOp(TargetOpcode::G_SABD);
   case Intrinsic::aarch64_neon_uabd:
-    return LowerBinOp(TargetOpcode::G_ABDU);
+    return LowerBinOp(TargetOpcode::G_UABD);
   case Intrinsic::aarch64_neon_abs: {
     // Lower the intrinsic to G_ABS.
     MIB.buildInstr(TargetOpcode::G_ABS, {MI.getOperand(0)}, {MI.getOperand(2)});
diff --git a/llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp b/llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
index b1794b78a3e2a..2b4f0e48a7fc4 100644
--- a/llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
+++ b/llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
@@ -490,7 +490,7 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST)
       .minScalar(ST.hasStdExtZbb(), 0, sXLen)
       .lower();
 
-  getActionDefinitionsBuilder({G_ABDS, G_ABDU})
+  getActionDefinitionsBuilder({G_SABD, G_UABD})
       .minScalar(ST.hasStdExtZbb(), 0, sXLen)
       .lower();
 
diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir b/llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
index 896603d6eb20d..3ac868581ed09 100644
--- a/llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
+++ b/llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
@@ -70,12 +70,12 @@
 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
 #
-# DEBUG-NEXT: G_ABDS (opcode [[G_ABDS:[0-9]+]]): 1 type index, 0 imm indices
+# DEBUG-NEXT: G_SABD (opcode [[G_SABD:[0-9]+]]): 1 type index, 0 imm indices
 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
 #
-# DEBUG-NEXT: G_ABDU (opcode [[G_ABDU:[0-9]+]]): 1 type index, 0 imm indices
-# DEBUG-NEXT: .. opcode [[G_ABDU]] is aliased to [[G_ABDS]]
+# DEBUG-NEXT: G_UABD (opcode [[G_UABD:[0-9]+]]): 1 type index, 0 imm indices
+# DEBUG-NEXT: .. opcode [[G_UABD]] is aliased to [[G_SABD]]
 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
 #
diff --git a/llvm/test/CodeGen/MIR2Vec/Inputs/reference_x86_vocab_print.txt b/llvm/test/CodeGen/MIR2Vec/Inputs/reference_x86_vocab_print.txt
index d3c0da9862245..c4e1f425c9fe3 100644
--- a/llvm/test/CodeGen/MIR2Vec/Inputs/reference_x86_vocab_print.txt
+++ b/llvm/test/CodeGen/MIR2Vec/Inputs/reference_x86_vocab_print.txt
@@ -319,8 +319,6 @@ Key: GC_LABEL:  [ 0.00  0.00 ]
 Key: GETSEC:  [ 0.00  0.00 ]
 Key: GF:  [ 0.00  0.00 ]
 Key: GS_PREFIX:  [ 0.00  0.00 ]
-Key: G_ABDS:  [ 0.00  0.00 ]
-Key: G_ABDU:  [ 0.00  0.00 ]
 Key: G_ABS:  [ 0.00  0.00 ]
 Key: G_ADD:  [ 0.00  0.00 ]
 Key: G_ADDRSPACE_CAST:  [ 0.00  0.00 ]
@@ -487,6 +485,7 @@ Key: G_RESET_FPENV:  [ 0.00  0.00 ]
 Key: G_RESET_FPMODE:  [ 0.00  0.00 ]
 Key: G_ROTL:  [ 0.00  0.00 ]
 Key: G_ROTR:  [ 0.00  0.00 ]
+Key: G_SABD:  [ 0.00  0.00 ]
 Key: G_SADDE:  [ 0.00  0.00 ]
 Key: G_SADDO:  [ 0.00  0.00 ]
 Key: G_SADDSAT:  [ 0.00  0.00 ]
@@ -536,6 +535,7 @@ Key: G_TRUNC:  [ 0.00  0.00 ]
 Key: G_TRUNC_SSAT_S:  [ 0.00  0.00 ]
 Key: G_TRUNC_SSAT_U:  [ 0.00  0.00 ]
 Key: G_TRUNC_USAT_U:  [ 0.00  0.00 ]
+Key: G_UABD:  [ 0.00  0.00 ]
 Key: G_UADDE:  [ 0.00  0.00 ]
 Key: G_UADDO:  [ 0.00  0.00 ]
 Key: G_UADDSAT:  [ 0.00  0.00 ]
diff --git a/llvm/test/CodeGen/MIR2Vec/Inputs/reference_x86_vocab_wo=0.5_print.txt b/llvm/test/CodeGen/MIR2Vec/Inputs/reference_x86_vocab_wo=0.5_print.txt
index c6e5508248b9b..a0a55f036fbaf 100644
--- a/llvm/test/CodeGen/MIR2Vec/Inputs/reference_x86_vocab_wo=0.5_print.txt
+++ b/llvm/test/CodeGen/MIR2Vec/Inputs/reference_x86_vocab_wo=0.5_print.txt
@@ -319,8 +319,6 @@ Key: GC_LABEL:  [ 0.00  0.00 ]
 Key: GETSEC:  [ 0.00  0.00 ]
 Key: GF:  [ 0.00  0.00 ]
 Key: GS_PREFIX:  [ 0.00  0.00 ]
-Key: G_ABDS:  [ 0.00  0.00 ]
-Key: G_ABDU:  [ 0.00  0.00 ]
 Key: G_ABS:  [ 0.00  0.00 ]
 Key: G_ADD:  [ 0.00  0.00 ]
 Key: G_ADDRSPACE_CAST:  [ 0.00  0.00 ]
@@ -487,6 +485,7 @@ Key: G_RESET_FPENV:  [ 0.00  0.00 ]
 Key: G_RESET_FPMODE:  [ 0.00  0.00 ]
 Key: G_ROTL:  [ 0.00  0.00 ]
 Key: G_ROTR:  [ 0.00  0.00 ]
+Key: G_SABD:  [ 0.00  0.00 ]
 Key: G_SADDE:  [ 0.00  0.00 ]
 Key: G_SADDO:  [ 0.00  0.00 ]
 Key: G_SADDSAT:  [ 0.00  0.00 ]
@@ -536,6 +535,7 @@ Key: G_TRUNC:  [ 0.00  0.00 ]
 Key: G_TRUNC_SSAT_S:  [ 0.00  0.00 ]
 Key: G_TRUNC_SSAT_U:  [ 0.00  0.00 ]
 Key: G_TRUNC_USAT_U:  [ 0.00  0.00 ]
+Key: G_UABD:  [ 0.00  0.00 ]
 Key: G_UADDE:  [ 0.00  0.00 ]
 Key: G_UADDO:  [ 0.00  0.00 ]
 Key: G_UADDSAT:  [ 0.00  0.00 ]
diff --git a/llvm/test/CodeGen/RISCV/GlobalISel/legalizer-info-validation.mir b/llvm/test/CodeGen/RISCV/GlobalISel/legalizer-info-validation.mir
index da7546e12e58b..d69254a9dacda 100644
--- a/llvm/test/CodeGen/RISCV/GlobalISel/legalizer-info-validation.mir
+++ b/llvm/test/CodeGen/RISCV/GlobalISel/legalizer-info-validation.mir
@@ -72,12 +72,12 @@
 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
 #
-# DEBUG-NEXT: G_ABDS (opcode [[G_ABDS:[0-9]+]]): 1 type index, 0 imm indices
+# DEBUG-NEXT: G_SABD (opcode [[G_SABD:[0-9]+]]): 1 type index, 0 imm indices
 # DEBUG-NEXT:.. type index coverage check SKIPPED: user-defined predicate detected
 # DEBUG-NEXT:.. imm index coverage check SKIPPED: user-defined predicate detected
 #
-# DEBUG-NEXT:G_ABDU (opcode [[G_ABDU:[0-9]+]]): 1 type index, 0 imm indices
-# DEBUG-NEXT:.. opcode [[G_ABDU]] is aliased to [[G_ABDS]]
+# DEBUG-NEXT:G_UABD (opcode [[G_UABD:[0-9]+]]): 1 type index, 0 imm indices
+# DEBUG-NEXT:.. opcode [[G_UABD]] is aliased to [[G_SABD]]
 # DEBUG-NEXT:.. type index coverage check SKIPPED: user-defined predicate detected
 # DEBUG-NEXT:.. imm index coverage check SKIPPED: user-defined predicate detected
 #
diff --git a/llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-abs-diff-rv32.mir b/llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-abs-diff-rv32.mir
index d4a0c3bce6264..f852d790252d1 100644
--- a/llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-abs-diff-rv32.mir
+++ b/llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-abs-diff-rv32.mir
@@ -41,7 +41,7 @@ body:             |
     %4:_(s32) = G_ASSERT_SEXT %2, 8
     %5:_(s8) = G_TRUNC %3(s32)
     %6:_(s8) = G_TRUNC %4(s32)
-    %7:_(s8) = G_ABDS %5, %6
+    %7:_(s8) = G_SABD %5, %6
     %8:_(s32) = G_ANYEXT %7(s8)
     $x10 = COPY %8(s32)
     PseudoRET implicit $x10
@@ -83,7 +83,7 @@ body:             |
     %4:_(s32) = G_ASSERT_SEXT %2, 16
     %5:_(s16) = G_TRUNC %3(s32)
     %6:_(s16) = G_TRUNC %4(s32)
-    %7:_(s16) = G_ABDS %5, %6
+    %7:_(s16) = G_SABD %5, %6
     %8:_(s32) = G_ANYEXT %7(s16)
     $x10 = COPY %8(s32)
     PseudoRET implicit $x10
@@ -117,7 +117,7 @@ body:             |
     ; RV32ZBB-NEXT: PseudoRET implicit $x10
     %1:_(s32) = COPY $x10
     %2:_(s32) = COPY $x11
-    %3:_(s32) = G_ABDS %1, %2
+    %3:_(s32) = G_SABD %1, %2
     $x10 = COPY %3(s32)
     PseudoRET implicit $x10
 ...
@@ -153,7 +153,7 @@ body:             |
     %3:_(s32) = COPY $x10
     %4:_(s32) = COPY $x11
     %5:_(s64) = G_MERGE_VALUES %3(s32), %4(s32)
-    %6:_(s64) = G_ABDS %2, %5
+    %6:_(s64) = G_SABD %2, %5
     %7:_(s32), %8:_(s32) = G_UNMERGE_VALUES %6(s64)
     $x10 = COPY %7(s32)
     $x11 = COPY %8(s32)
@@ -196,7 +196,7 @@ body:             |
     %4:_(s32) = G_ASSERT_ZEXT %2, 8
     %5:_(s8) = G_TRUNC %3(s32)
     %6:_(s8) = G_TRUNC %4(s32)
-    %7:_(s8) = G_ABDU %5, %6
+    %7:_(s8) = G_UABD %5, %6
     %8:_(s32) = G_ANYEXT %7(s8)
     $x10 = COPY %8(s32)
     PseudoRET implicit $x10
@@ -238,7 +238,7 @@ body:             |
     %4:_(s32) = G_ASSERT_ZEXT %2, 16
     %5:_(s16) = G_TRUNC %3(s32)
     %6:_(s16) = G_TRUNC %4(s32)
-    %7:_(s16) = G_ABDU %5, %6
+    %7:_(s16) = G_UABD %5, %6
     %8:_(s32) = G_ANYEXT %7(s16)
     $x10 = COPY %8(s32)
     PseudoRET implicit $x10
@@ -272,7 +272,7 @@ body:             |
     ; RV32ZBB-NEXT: PseudoRET implicit $x10
     %1:_(s32) = COPY $x10
     %2:_(s32) = COPY $x11
-    %3:_(s32) = G_ABDU %1, %2
+    %3:_(s32) = G_UABD %1, %2
     $x10 = COPY %3(s32)
     PseudoRET implicit $x10
 ...
@@ -308,7 +308,7 @@ body:             |
     %3:_(s32) = COPY $x10
     %4:_(s32) = COPY $x11
     %5:_(s64) = G_MERGE_VALUES %3(s32), %4(s32)
-    %6:_(s64) = G_ABDU %2, %5
+    %6:_(s64) = G_UABD %2, %5
     %7:_(s32), %8:_(s32) = G_UNMERGE_VALUES %6(s64)
     $x10 = COPY %7(s32)
     $x11 = COPY %8(s32)
diff --git a/llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-abs-diff-rv64.mir b/llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-abs-diff-rv64.mir
index deb65d44aa10f..bb8a1edfc951f 100644
--- a/llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-abs-diff-rv64.mir
+++ b/llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-abs-diff-rv64.mir
@@ -44,7 +44,7 @@ body:             |
     %4:_(s64) = G_ASSERT_SEXT %2, 8
     %5:_(s8) = G_TRUNC %3(s64)
     %6:_(s8) = G_TRUNC %4(s64)
-    %7:_(s8) = G_ABDS %5, %6
+    %7:_(s8) = G_SABD %5, %6
     %8:_(s64) = G_ANYEXT %7(s8)
     $x10 = COPY %8(s64)
     PseudoRET implicit $x10
@@ -90,7 +90,7 @@ body:             |
     %4:_(s64) = G_ASSERT_SEXT %2, 16
     %5:_(s16) = G_TRUNC %3(s64)
     %6:_(s16) = G_TRUNC %4(s64)
-    %7:_(s16) = G_ABDS %5, %6
+    %7:_(s16) = G_SABD %5, %6
     %8:_(s64) = G_ANYEXT %7(s16)
     $x10 = COPY %8(s64)
     PseudoRET implicit $x10
@@ -138,7 +138,7 @@ body:             |
     %4:_(s64) = G_ASSERT_SEXT %2, 32
     %5:_(s32) = G_TRUNC %3(s64)
     %6:_(s32) = G_TRUNC %4(s64)
-    %7:_(s32) = G_ABDS %5, %6
+    %7:_(s32) = G_SABD %5, %6
     %8:_(s64) = G_ANYEXT %7(s32)
     $x10 = COPY %8(s64)
     PseudoRET implicit $x10
@@ -168,7 +168,7 @@ body:             |
     ; RV64ZBB-NEXT: PseudoRET implicit $x10
     %1:_(s64) = COPY $x10
     %2:_(s64) = COPY $x11
-    %3:_(s64) = G_ABDS %1, %2
+    %3:_(s64) = G_SABD %1, %2
     $x10 = COPY %3(s64)
     PseudoRET implicit $x10
 ...
@@ -212,7 +212,7 @@ body:             |
     %4:_(s64) = G_ASSERT_ZEXT %2, 8
     %5:_(s8) = G_TRUNC %3(s64)
     %6:_(s8) = G_TRUNC %4(s64)
-    %7:_(s8) = G_ABDU %5, %6
+    %7:_(s8) = G_UABD %5, %6
     %8:_(s64) = G_ANYEXT %7(s8)
     $x10 = COPY %8(s64)
     PseudoRET implicit $x10
@@ -258,7 +258,7 @@ body:             |
     %4:_(s64) = G_ASSERT_ZEXT %2, 16
     %5:_(s16) = G_TRUNC %3(s64)
     %6:_(s16) = G_TRUNC %4(s64)
-    %7:_(s16) = G_ABDU %5, %6
+    %7:_(s16) = G_UABD %5, %6
     %8:_(s64) = G_ANYEXT %7(s16)
     $x10 = COPY %8(s64)
     PseudoRET implicit $x10
@@ -308,7 +308,7 @@ body:             |
     %4:_(s64) = G_ASSERT_ZEXT %2, 32
     %5:_(s32) = G_TRUNC %3(s64)
     %6:_(s32) = G_TRUNC %4(...
[truncated]

``````````

</details>


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


More information about the llvm-commits mailing list