Skip to content

Commit 339f395

Browse files
committed
[RISCV][GISel] Enable commute_constant_to_rhs in RISCVPostLegalizerCombiner.
1 parent a20b902 commit 339f395

File tree

3 files changed

+4
-8
lines changed

3 files changed

+4
-8
lines changed

llvm/lib/Target/RISCV/RISCVCombine.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,5 @@ def RISCVO0PreLegalizerCombiner: GICombiner<
2323
// TODO: Add more combines.
2424
def RISCVPostLegalizerCombiner
2525
: GICombiner<"RISCVPostLegalizerCombinerImpl",
26-
[redundant_and, identity_combines]> {
26+
[redundant_and, identity_combines, commute_constant_to_rhs]> {
2727
}

llvm/test/CodeGen/RISCV/GlobalISel/rv32zbb-zbkb.ll

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,6 @@ define i64 @rori_i64(i64 %a) nounwind {
308308
; CHECK-NEXT: slli a3, a1, 31
309309
; CHECK-NEXT: or a0, a0, a3
310310
; CHECK-NEXT: srli a1, a1, 1
311-
; CHECK-NEXT: or a0, zero, a0
312311
; CHECK-NEXT: or a1, a2, a1
313312
; CHECK-NEXT: ret
314313
%1 = tail call i64 @llvm.fshl.i64(i64 %a, i64 %a, i64 63)
@@ -324,7 +323,6 @@ define i64 @rori_i64_fshr(i64 %a) nounwind {
324323
; CHECK-NEXT: srli a0, a0, 31
325324
; CHECK-NEXT: or a1, a1, a0
326325
; CHECK-NEXT: or a0, a2, a3
327-
; CHECK-NEXT: or a1, zero, a1
328326
; CHECK-NEXT: ret
329327
%1 = tail call i64 @llvm.fshr.i64(i64 %a, i64 %a, i64 63)
330328
ret i64 %1

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

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ define i32 @pack_i32_3(i16 zeroext %0, i16 zeroext %1, i32 %2) {
6262
define i64 @pack_i64(i64 %a, i64 %b) nounwind {
6363
; CHECK-LABEL: pack_i64:
6464
; CHECK: # %bb.0:
65-
; CHECK-NEXT: or a0, zero, a0
6665
; CHECK-NEXT: mv a1, a2
6766
; CHECK-NEXT: ret
6867
%shl = and i64 %a, 4294967295
@@ -74,7 +73,6 @@ define i64 @pack_i64(i64 %a, i64 %b) nounwind {
7473
define i64 @pack_i64_2(i32 %a, i32 %b) nounwind {
7574
; CHECK-LABEL: pack_i64_2:
7675
; CHECK: # %bb.0:
77-
; CHECK-NEXT: or a0, zero, a0
7876
; CHECK-NEXT: ret
7977
%zexta = zext i32 %a to i64
8078
%zextb = zext i32 %b to i64
@@ -86,9 +84,9 @@ define i64 @pack_i64_2(i32 %a, i32 %b) nounwind {
8684
define i64 @pack_i64_3(ptr %0, ptr %1) {
8785
; CHECK-LABEL: pack_i64_3:
8886
; CHECK: # %bb.0:
89-
; CHECK-NEXT: lw a2, 0(a1)
90-
; CHECK-NEXT: lw a1, 0(a0)
91-
; CHECK-NEXT: or a0, zero, a2
87+
; CHECK-NEXT: lw a2, 0(a0)
88+
; CHECK-NEXT: lw a0, 0(a1)
89+
; CHECK-NEXT: mv a1, a2
9290
; CHECK-NEXT: ret
9391
%3 = load i32, ptr %0, align 4
9492
%4 = zext i32 %3 to i64

0 commit comments

Comments
 (0)