[llvm] ac7542b - [CVP] Add vector icmp test (NFC)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 3 01:58:38 PDT 2022


Author: Nikita Popov
Date: 2022-11-03T09:58:29+01:00
New Revision: ac7542bd3c28890545463f30a297c4c4defe5590

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

LOG: [CVP] Add vector icmp test (NFC)

Added: 
    

Modified: 
    llvm/test/Transforms/CorrelatedValuePropagation/icmp.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/CorrelatedValuePropagation/icmp.ll b/llvm/test/Transforms/CorrelatedValuePropagation/icmp.ll
index cb3914742f9d7..4a3d9c752f04e 100644
--- a/llvm/test/Transforms/CorrelatedValuePropagation/icmp.ll
+++ b/llvm/test/Transforms/CorrelatedValuePropagation/icmp.ll
@@ -16,10 +16,10 @@ define void @test1(i64 %tmp35) {
 ; CHECK-NEXT:    [[TMP36:%.*]] = icmp sgt i64 [[TMP35:%.*]], 0
 ; CHECK-NEXT:    br i1 [[TMP36]], label [[BB_TRUE:%.*]], label [[BB_FALSE:%.*]]
 ; CHECK:       bb_true:
-; CHECK-NEXT:    tail call void @check1(i1 false) #[[ATTR1:[0-9]+]]
+; CHECK-NEXT:    tail call void @check1(i1 false) #[[ATTR2:[0-9]+]]
 ; CHECK-NEXT:    unreachable
 ; CHECK:       bb_false:
-; CHECK-NEXT:    tail call void @check2(i1 true) #[[ATTR1]]
+; CHECK-NEXT:    tail call void @check2(i1 true) #[[ATTR2]]
 ; CHECK-NEXT:    unreachable
 ;
 bb:
@@ -55,7 +55,7 @@ define void @test2(i64 %tmp35, i1 %inner_cmp) {
 ; CHECK-NEXT:    tail call void @check1(i1 false)
 ; CHECK-NEXT:    unreachable
 ; CHECK:       bb_false:
-; CHECK-NEXT:    tail call void @check2(i1 true) #[[ATTR1]]
+; CHECK-NEXT:    tail call void @check2(i1 true) #[[ATTR2]]
 ; CHECK-NEXT:    unreachable
 ;
 bb:
@@ -1216,5 +1216,35 @@ else:
   ret void
 }
 
+define i1 @non_const_range_minmax(i8 %a, i8 %b) {
+; CHECK-LABEL: @non_const_range_minmax(
+; CHECK-NEXT:    [[A2:%.*]] = call i8 @llvm.umin.i8(i8 [[A:%.*]], i8 10)
+; CHECK-NEXT:    [[B2:%.*]] = call i8 @llvm.umax.i8(i8 [[B:%.*]], i8 11)
+; CHECK-NEXT:    [[CMP1:%.*]] = icmp ult i8 [[A2]], [[B2]]
+; CHECK-NEXT:    ret i1 [[CMP1]]
+;
+  %a2 = call i8 @llvm.umin.i8(i8 %a, i8 10)
+  %b2 = call i8 @llvm.umax.i8(i8 %b, i8 11)
+  %cmp1 = icmp ult i8 %a2, %b2
+  ret i1 %cmp1
+}
+
+define <2 x i1> @non_const_range_minmax_vec(<2 x i8> %a, <2 x i8> %b) {
+; CHECK-LABEL: @non_const_range_minmax_vec(
+; CHECK-NEXT:    [[A2:%.*]] = call <2 x i8> @llvm.umin.v2i8(<2 x i8> [[A:%.*]], <2 x i8> <i8 10, i8 10>)
+; CHECK-NEXT:    [[B2:%.*]] = call <2 x i8> @llvm.umax.v2i8(<2 x i8> [[B:%.*]], <2 x i8> <i8 11, i8 11>)
+; CHECK-NEXT:    [[CMP1:%.*]] = icmp ult <2 x i8> [[A2]], [[B2]]
+; CHECK-NEXT:    ret <2 x i1> [[CMP1]]
+;
+  %a2 = call <2 x i8> @llvm.umin.v2i8(<2 x i8> %a, <2 x i8> <i8 10, i8 10>)
+  %b2 = call <2 x i8> @llvm.umax.v2i8(<2 x i8> %b, <2 x i8> <i8 11, i8 11>)
+  %cmp1 = icmp ult <2 x i8> %a2, %b2
+  ret <2 x i1> %cmp1
+}
+
+declare i8 @llvm.umin.i8(i8, i8)
+declare i8 @llvm.umax.i8(i8, i8)
+declare <2 x i8> @llvm.umin.v2i8(<2 x i8>, <2 x i8>)
+declare <2 x i8> @llvm.umax.v2i8(<2 x i8>, <2 x i8>)
 
 attributes #4 = { noreturn }


        


More information about the llvm-commits mailing list