[llvm] aa4252e - [RISCV] Add zeroext attribute to i1 arguments in xventanacondops.ll. NFC
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 19 19:17:33 PST 2022
Author: Craig Topper
Date: 2022-12-19T19:12:38-08:00
New Revision: aa4252ec6f3ba7d9c3db459b0d5166a205d364a4
URL: https://github.com/llvm/llvm-project/commit/aa4252ec6f3ba7d9c3db459b0d5166a205d364a4
DIFF: https://github.com/llvm/llvm-project/commit/aa4252ec6f3ba7d9c3db459b0d5166a205d364a4.diff
LOG: [RISCV] Add zeroext attribute to i1 arguments in xventanacondops.ll. NFC
Removes some extra andi instructions.
Added:
Modified:
llvm/test/CodeGen/RISCV/xventanacondops.ll
Removed:
################################################################################
diff --git a/llvm/test/CodeGen/RISCV/xventanacondops.ll b/llvm/test/CodeGen/RISCV/xventanacondops.ll
index 1394a114fd81b..fcd6d33d0f53a 100644
--- a/llvm/test/CodeGen/RISCV/xventanacondops.ll
+++ b/llvm/test/CodeGen/RISCV/xventanacondops.ll
@@ -1,30 +1,27 @@
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -mtriple=riscv64 -mattr=+xventanacondops < %s | FileCheck %s
-define i64 @zero1(i64 %rs1, i1 %rc) {
+define i64 @zero1(i64 %rs1, i1 zeroext %rc) {
; CHECK-LABEL: zero1:
; CHECK: # %bb.0:
-; CHECK-NEXT: andi a1, a1, 1
; CHECK-NEXT: vt.maskc a0, a0, a1
; CHECK-NEXT: ret
%sel = select i1 %rc, i64 %rs1, i64 0
ret i64 %sel
}
-define i64 @zero2(i64 %rs1, i1 %rc) {
+define i64 @zero2(i64 %rs1, i1 zeroext %rc) {
; CHECK-LABEL: zero2:
; CHECK: # %bb.0:
-; CHECK-NEXT: andi a1, a1, 1
; CHECK-NEXT: vt.maskcn a0, a0, a1
; CHECK-NEXT: ret
%sel = select i1 %rc, i64 0, i64 %rs1
ret i64 %sel
}
-define i64 @add1(i1 %rc, i64 %rs1, i64 %rs2) {
+define i64 @add1(i1 zeroext %rc, i64 %rs1, i64 %rs2) {
; CHECK-LABEL: add1:
; CHECK: # %bb.0:
-; CHECK-NEXT: andi a0, a0, 1
; CHECK-NEXT: vt.maskc a0, a2, a0
; CHECK-NEXT: add a0, a1, a0
; CHECK-NEXT: ret
@@ -33,10 +30,9 @@ define i64 @add1(i1 %rc, i64 %rs1, i64 %rs2) {
ret i64 %sel
}
-define i64 @add2(i1 %rc, i64 %rs1, i64 %rs2) {
+define i64 @add2(i1 zeroext %rc, i64 %rs1, i64 %rs2) {
; CHECK-LABEL: add2:
; CHECK: # %bb.0:
-; CHECK-NEXT: andi a0, a0, 1
; CHECK-NEXT: vt.maskc a0, a1, a0
; CHECK-NEXT: add a0, a2, a0
; CHECK-NEXT: ret
@@ -45,10 +41,9 @@ define i64 @add2(i1 %rc, i64 %rs1, i64 %rs2) {
ret i64 %sel
}
-define i64 @add3(i1 %rc, i64 %rs1, i64 %rs2) {
+define i64 @add3(i1 zeroext %rc, i64 %rs1, i64 %rs2) {
; CHECK-LABEL: add3:
; CHECK: # %bb.0:
-; CHECK-NEXT: andi a0, a0, 1
; CHECK-NEXT: vt.maskcn a0, a2, a0
; CHECK-NEXT: add a0, a1, a0
; CHECK-NEXT: ret
@@ -57,10 +52,9 @@ define i64 @add3(i1 %rc, i64 %rs1, i64 %rs2) {
ret i64 %sel
}
-define i64 @add4(i1 %rc, i64 %rs1, i64 %rs2) {
+define i64 @add4(i1 zeroext %rc, i64 %rs1, i64 %rs2) {
; CHECK-LABEL: add4:
; CHECK: # %bb.0:
-; CHECK-NEXT: andi a0, a0, 1
; CHECK-NEXT: vt.maskcn a0, a1, a0
; CHECK-NEXT: add a0, a2, a0
; CHECK-NEXT: ret
@@ -69,10 +63,9 @@ define i64 @add4(i1 %rc, i64 %rs1, i64 %rs2) {
ret i64 %sel
}
-define i64 @sub1(i1 %rc, i64 %rs1, i64 %rs2) {
+define i64 @sub1(i1 zeroext %rc, i64 %rs1, i64 %rs2) {
; CHECK-LABEL: sub1:
; CHECK: # %bb.0:
-; CHECK-NEXT: andi a0, a0, 1
; CHECK-NEXT: vt.maskc a0, a2, a0
; CHECK-NEXT: sub a0, a1, a0
; CHECK-NEXT: ret
@@ -81,10 +74,9 @@ define i64 @sub1(i1 %rc, i64 %rs1, i64 %rs2) {
ret i64 %sel
}
-define i64 @sub2(i1 %rc, i64 %rs1, i64 %rs2) {
+define i64 @sub2(i1 zeroext %rc, i64 %rs1, i64 %rs2) {
; CHECK-LABEL: sub2:
; CHECK: # %bb.0:
-; CHECK-NEXT: andi a0, a0, 1
; CHECK-NEXT: vt.maskcn a0, a2, a0
; CHECK-NEXT: sub a0, a1, a0
; CHECK-NEXT: ret
@@ -93,10 +85,9 @@ define i64 @sub2(i1 %rc, i64 %rs1, i64 %rs2) {
ret i64 %sel
}
-define i64 @or1(i1 %rc, i64 %rs1, i64 %rs2) {
+define i64 @or1(i1 zeroext %rc, i64 %rs1, i64 %rs2) {
; CHECK-LABEL: or1:
; CHECK: # %bb.0:
-; CHECK-NEXT: andi a0, a0, 1
; CHECK-NEXT: vt.maskc a0, a2, a0
; CHECK-NEXT: or a0, a1, a0
; CHECK-NEXT: ret
@@ -105,10 +96,9 @@ define i64 @or1(i1 %rc, i64 %rs1, i64 %rs2) {
ret i64 %sel
}
-define i64 @or2(i1 %rc, i64 %rs1, i64 %rs2) {
+define i64 @or2(i1 zeroext %rc, i64 %rs1, i64 %rs2) {
; CHECK-LABEL: or2:
; CHECK: # %bb.0:
-; CHECK-NEXT: andi a0, a0, 1
; CHECK-NEXT: vt.maskc a0, a1, a0
; CHECK-NEXT: or a0, a2, a0
; CHECK-NEXT: ret
@@ -117,10 +107,9 @@ define i64 @or2(i1 %rc, i64 %rs1, i64 %rs2) {
ret i64 %sel
}
-define i64 @or3(i1 %rc, i64 %rs1, i64 %rs2) {
+define i64 @or3(i1 zeroext %rc, i64 %rs1, i64 %rs2) {
; CHECK-LABEL: or3:
; CHECK: # %bb.0:
-; CHECK-NEXT: andi a0, a0, 1
; CHECK-NEXT: vt.maskcn a0, a2, a0
; CHECK-NEXT: or a0, a1, a0
; CHECK-NEXT: ret
@@ -129,10 +118,9 @@ define i64 @or3(i1 %rc, i64 %rs1, i64 %rs2) {
ret i64 %sel
}
-define i64 @or4(i1 %rc, i64 %rs1, i64 %rs2) {
+define i64 @or4(i1 zeroext %rc, i64 %rs1, i64 %rs2) {
; CHECK-LABEL: or4:
; CHECK: # %bb.0:
-; CHECK-NEXT: andi a0, a0, 1
; CHECK-NEXT: vt.maskcn a0, a1, a0
; CHECK-NEXT: or a0, a2, a0
; CHECK-NEXT: ret
@@ -141,10 +129,9 @@ define i64 @or4(i1 %rc, i64 %rs1, i64 %rs2) {
ret i64 %sel
}
-define i64 @xor1(i1 %rc, i64 %rs1, i64 %rs2) {
+define i64 @xor1(i1 zeroext %rc, i64 %rs1, i64 %rs2) {
; CHECK-LABEL: xor1:
; CHECK: # %bb.0:
-; CHECK-NEXT: andi a0, a0, 1
; CHECK-NEXT: vt.maskc a0, a2, a0
; CHECK-NEXT: xor a0, a1, a0
; CHECK-NEXT: ret
@@ -153,10 +140,9 @@ define i64 @xor1(i1 %rc, i64 %rs1, i64 %rs2) {
ret i64 %sel
}
-define i64 @xor2(i1 %rc, i64 %rs1, i64 %rs2) {
+define i64 @xor2(i1 zeroext %rc, i64 %rs1, i64 %rs2) {
; CHECK-LABEL: xor2:
; CHECK: # %bb.0:
-; CHECK-NEXT: andi a0, a0, 1
; CHECK-NEXT: vt.maskc a0, a1, a0
; CHECK-NEXT: xor a0, a2, a0
; CHECK-NEXT: ret
@@ -165,10 +151,9 @@ define i64 @xor2(i1 %rc, i64 %rs1, i64 %rs2) {
ret i64 %sel
}
-define i64 @xor3(i1 %rc, i64 %rs1, i64 %rs2) {
+define i64 @xor3(i1 zeroext %rc, i64 %rs1, i64 %rs2) {
; CHECK-LABEL: xor3:
; CHECK: # %bb.0:
-; CHECK-NEXT: andi a0, a0, 1
; CHECK-NEXT: vt.maskcn a0, a2, a0
; CHECK-NEXT: xor a0, a1, a0
; CHECK-NEXT: ret
@@ -177,10 +162,9 @@ define i64 @xor3(i1 %rc, i64 %rs1, i64 %rs2) {
ret i64 %sel
}
-define i64 @xor4(i1 %rc, i64 %rs1, i64 %rs2) {
+define i64 @xor4(i1 zeroext %rc, i64 %rs1, i64 %rs2) {
; CHECK-LABEL: xor4:
; CHECK: # %bb.0:
-; CHECK-NEXT: andi a0, a0, 1
; CHECK-NEXT: vt.maskcn a0, a1, a0
; CHECK-NEXT: xor a0, a2, a0
; CHECK-NEXT: ret
@@ -189,25 +173,23 @@ define i64 @xor4(i1 %rc, i64 %rs1, i64 %rs2) {
ret i64 %sel
}
-define i64 @and1(i1 %rc, i64 %rs1, i64 %rs2) {
+define i64 @and1(i1 zeroext %rc, i64 %rs1, i64 %rs2) {
; CHECK-LABEL: and1:
; CHECK: # %bb.0:
-; CHECK-NEXT: andi a0, a0, 1
-; CHECK-NEXT: and a2, a1, a2
; CHECK-NEXT: vt.maskcn a0, a1, a0
-; CHECK-NEXT: or a0, a2, a0
+; CHECK-NEXT: and a1, a1, a2
+; CHECK-NEXT: or a0, a1, a0
; CHECK-NEXT: ret
%and = and i64 %rs1, %rs2
%sel = select i1 %rc, i64 %and, i64 %rs1
ret i64 %sel
}
-define i64 @and2(i1 %rc, i64 %rs1, i64 %rs2) {
+define i64 @and2(i1 zeroext %rc, i64 %rs1, i64 %rs2) {
; CHECK-LABEL: and2:
; CHECK: # %bb.0:
-; CHECK-NEXT: andi a0, a0, 1
-; CHECK-NEXT: and a1, a2, a1
; CHECK-NEXT: vt.maskcn a0, a2, a0
+; CHECK-NEXT: and a1, a2, a1
; CHECK-NEXT: or a0, a1, a0
; CHECK-NEXT: ret
%and = and i64 %rs1, %rs2
@@ -215,25 +197,23 @@ define i64 @and2(i1 %rc, i64 %rs1, i64 %rs2) {
ret i64 %sel
}
-define i64 @and3(i1 %rc, i64 %rs1, i64 %rs2) {
+define i64 @and3(i1 zeroext %rc, i64 %rs1, i64 %rs2) {
; CHECK-LABEL: and3:
; CHECK: # %bb.0:
-; CHECK-NEXT: andi a0, a0, 1
-; CHECK-NEXT: and a2, a1, a2
; CHECK-NEXT: vt.maskc a0, a1, a0
-; CHECK-NEXT: or a0, a2, a0
+; CHECK-NEXT: and a1, a1, a2
+; CHECK-NEXT: or a0, a1, a0
; CHECK-NEXT: ret
%and = and i64 %rs1, %rs2
%sel = select i1 %rc, i64 %rs1, i64 %and
ret i64 %sel
}
-define i64 @and4(i1 %rc, i64 %rs1, i64 %rs2) {
+define i64 @and4(i1 zeroext %rc, i64 %rs1, i64 %rs2) {
; CHECK-LABEL: and4:
; CHECK: # %bb.0:
-; CHECK-NEXT: andi a0, a0, 1
-; CHECK-NEXT: and a1, a2, a1
; CHECK-NEXT: vt.maskc a0, a2, a0
+; CHECK-NEXT: and a1, a2, a1
; CHECK-NEXT: or a0, a1, a0
; CHECK-NEXT: ret
%and = and i64 %rs1, %rs2
@@ -241,10 +221,9 @@ define i64 @and4(i1 %rc, i64 %rs1, i64 %rs2) {
ret i64 %sel
}
-define i64 @basic(i1 %rc, i64 %rs1, i64 %rs2) {
+define i64 @basic(i1 zeroext %rc, i64 %rs1, i64 %rs2) {
; CHECK-LABEL: basic:
; CHECK: # %bb.0:
-; CHECK-NEXT: andi a0, a0, 1
; CHECK-NEXT: vt.maskcn a2, a2, a0
; CHECK-NEXT: vt.maskc a0, a1, a0
; CHECK-NEXT: or a0, a0, a2
More information about the llvm-commits
mailing list