Skip to content

Commit 5e6a198

Browse files
committed
[RISCV][GISel] Remove s32 support for G_ABS on RV64.
1 parent 389f339 commit 5e6a198

File tree

3 files changed

+5
-7
lines changed

3 files changed

+5
-7
lines changed

llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,7 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST)
423423

424424
auto &AbsActions = getActionDefinitionsBuilder(G_ABS);
425425
if (ST.hasStdExtZbb())
426-
AbsActions.customFor({s32, sXLen}).minScalar(0, sXLen);
426+
AbsActions.customFor({sXLen}).minScalar(0, sXLen);
427427
AbsActions.lower();
428428

429429
auto &MinMaxActions =

llvm/test/CodeGen/RISCV/GlobalISel/iabs.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,8 @@ define i32 @abs32(i32 %x) {
108108
;
109109
; RV64ZBB-LABEL: abs32:
110110
; RV64ZBB: # %bb.0:
111-
; RV64ZBB-NEXT: negw a1, a0
112111
; RV64ZBB-NEXT: sext.w a0, a0
112+
; RV64ZBB-NEXT: neg a1, a0
113113
; RV64ZBB-NEXT: max a0, a0, a1
114114
; RV64ZBB-NEXT: ret
115115
%abs = tail call i32 @llvm.abs.i32(i32 %x, i1 true)

llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-abs-rv64.mir

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,11 +102,9 @@ body: |
102102
; RV64ZBB-LABEL: name: abs_i32
103103
; RV64ZBB: [[COPY:%[0-9]+]]:_(s64) = COPY $x10
104104
; RV64ZBB-NEXT: [[ASSERT_SEXT:%[0-9]+]]:_(s64) = G_ASSERT_SEXT [[COPY]], 32
105-
; RV64ZBB-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[ASSERT_SEXT]](s64)
106-
; RV64ZBB-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
107-
; RV64ZBB-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[C]], [[TRUNC]]
108-
; RV64ZBB-NEXT: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[SUB]](s32)
109-
; RV64ZBB-NEXT: [[SMAX:%[0-9]+]]:_(s64) = G_SMAX [[ASSERT_SEXT]], [[SEXT]]
105+
; RV64ZBB-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0
106+
; RV64ZBB-NEXT: [[SUB:%[0-9]+]]:_(s64) = G_SUB [[C]], [[ASSERT_SEXT]]
107+
; RV64ZBB-NEXT: [[SMAX:%[0-9]+]]:_(s64) = G_SMAX [[ASSERT_SEXT]], [[SUB]]
110108
; RV64ZBB-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[SMAX]], 32
111109
; RV64ZBB-NEXT: $x10 = COPY [[SEXT_INREG]](s64)
112110
; RV64ZBB-NEXT: PseudoRET implicit $x10

0 commit comments

Comments
 (0)