[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