[llvm] 1c51bf3 - [InstCombine] add tests for bit manipulation intrinsics with bool values; NFC

Sanjay Patel via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 11 15:20:27 PDT 2021


Author: Sanjay Patel
Date: 2021-06-11T18:20:14-04:00
New Revision: 1c51bf3b78854fd1c8faff0533cf4307f7828ada

URL: https://github.com/llvm/llvm-project/commit/1c51bf3b78854fd1c8faff0533cf4307f7828ada
DIFF: https://github.com/llvm/llvm-project/commit/1c51bf3b78854fd1c8faff0533cf4307f7828ada.diff

LOG: [InstCombine] add tests for bit manipulation intrinsics with bool values; NFC

Added: 
    

Modified: 
    llvm/test/Transforms/InstCombine/intrinsics.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/InstCombine/intrinsics.ll b/llvm/test/Transforms/InstCombine/intrinsics.ll
index 9ac8427d84bf3..2c28bc265326c 100644
--- a/llvm/test/Transforms/InstCombine/intrinsics.ll
+++ b/llvm/test/Transforms/InstCombine/intrinsics.ll
@@ -6,6 +6,8 @@ declare i32 @llvm.cttz.i32(i32, i1) nounwind readnone
 declare i32 @llvm.ctlz.i32(i32, i1) nounwind readnone
 declare i1 @llvm.cttz.i1(i1, i1) nounwind readnone
 declare i1 @llvm.ctlz.i1(i1, i1) nounwind readnone
+declare <2 x i1> @llvm.cttz.v2i1(<2 x i1>, i1) nounwind readnone
+declare <2 x i1> @llvm.ctlz.v2i1(<2 x i1>, i1) nounwind readnone
 declare i32 @llvm.ctpop.i32(i32) nounwind readnone
 declare <2 x i32> @llvm.cttz.v2i32(<2 x i32>, i1) nounwind readnone
 declare <2 x i32> @llvm.ctlz.v2i32(<2 x i32>, i1) nounwind readnone
@@ -66,6 +68,32 @@ define i1 @cttz_i1(i1 %arg) {
   ret i1 %cnt
 }
 
+define i1 @cttz_i1_zero_is_undef(i1 %arg) {
+; CHECK-LABEL: @cttz_i1_zero_is_undef(
+; CHECK-NEXT:    ret i1 false
+;
+  %cnt = call i1 @llvm.cttz.i1(i1 %arg, i1 true) nounwind readnone
+  ret i1 %cnt
+}
+
+define <2 x i1> @cttz_v2i1(<2 x i1> %arg) {
+; CHECK-LABEL: @cttz_v2i1(
+; CHECK-NEXT:    [[CNT:%.*]] = call <2 x i1> @llvm.cttz.v2i1(<2 x i1> [[ARG:%.*]], i1 false) #[[ATTR2]]
+; CHECK-NEXT:    ret <2 x i1> [[CNT]]
+;
+  %cnt = call <2 x i1> @llvm.cttz.v2i1(<2 x i1> %arg, i1 false) nounwind readnone
+  ret <2 x i1> %cnt
+}
+
+define <2 x i1> @cttz_v2i1_zero_is_undef(<2 x i1> %arg) {
+; CHECK-LABEL: @cttz_v2i1_zero_is_undef(
+; CHECK-NEXT:    [[CNT:%.*]] = call <2 x i1> @llvm.cttz.v2i1(<2 x i1> [[ARG:%.*]], i1 true) #[[ATTR2]]
+; CHECK-NEXT:    ret <2 x i1> [[CNT]]
+;
+  %cnt = call <2 x i1> @llvm.cttz.v2i1(<2 x i1> %arg, i1 true) nounwind readnone
+  ret <2 x i1> %cnt
+}
+
 define i1 @cttz_knownbits(i32 %arg) {
 ; CHECK-LABEL: @cttz_knownbits(
 ; CHECK-NEXT:    ret i1 false
@@ -158,6 +186,32 @@ define i1 @ctlz_i1(i1 %arg) {
   ret i1 %cnt
 }
 
+define i1 @ctlz_i1_zero_is_undef(i1 %arg) {
+; CHECK-LABEL: @ctlz_i1_zero_is_undef(
+; CHECK-NEXT:    ret i1 false
+;
+  %cnt = call i1 @llvm.ctlz.i1(i1 %arg, i1 true) nounwind readnone
+  ret i1 %cnt
+}
+
+define <2 x i1> @ctlz_v2i1(<2 x i1> %arg) {
+; CHECK-LABEL: @ctlz_v2i1(
+; CHECK-NEXT:    [[CNT:%.*]] = call <2 x i1> @llvm.ctlz.v2i1(<2 x i1> [[ARG:%.*]], i1 false) #[[ATTR2]]
+; CHECK-NEXT:    ret <2 x i1> [[CNT]]
+;
+  %cnt = call <2 x i1> @llvm.ctlz.v2i1(<2 x i1> %arg, i1 false) nounwind readnone
+  ret <2 x i1> %cnt
+}
+
+define <2 x i1> @ctlz_v2i1_zero_is_undef(<2 x i1> %arg) {
+; CHECK-LABEL: @ctlz_v2i1_zero_is_undef(
+; CHECK-NEXT:    [[CNT:%.*]] = call <2 x i1> @llvm.ctlz.v2i1(<2 x i1> [[ARG:%.*]], i1 true) #[[ATTR2]]
+; CHECK-NEXT:    ret <2 x i1> [[CNT]]
+;
+  %cnt = call <2 x i1> @llvm.ctlz.v2i1(<2 x i1> %arg, i1 true) nounwind readnone
+  ret <2 x i1> %cnt
+}
+
 define i1 @ctlz_knownbits(i8 %arg) {
 ; CHECK-LABEL: @ctlz_knownbits(
 ; CHECK-NEXT:    ret i1 false


        


More information about the llvm-commits mailing list