]> granicus.if.org Git - llvm/commitdiff
[InstCombine] add test for missed vector icmp fold; NFC
authorSanjay Patel <spatel@rotateright.com>
Wed, 8 Feb 2017 17:37:17 +0000 (17:37 +0000)
committerSanjay Patel <spatel@rotateright.com>
Wed, 8 Feb 2017 17:37:17 +0000 (17:37 +0000)
Also, move the related existing scalar test to a renamed file
where I'm planning to add more icmp-add tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294487 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/InstCombine/icmp-add.ll [moved from test/Transforms/InstCombine/2008-01-29-AddICmp.ll with 75% similarity]
test/Transforms/InstCombine/icmp.ll

similarity index 75%
rename from test/Transforms/InstCombine/2008-01-29-AddICmp.ll
rename to test/Transforms/InstCombine/icmp-add.ll
index a33eb9c1ddd42c7c56ab7a01d512989cac79666a..3bf1849c91c96bf180df1837568bd2a41e972e1d 100644 (file)
@@ -83,3 +83,26 @@ define <2 x i1> @test4vec(<2 x i32> %a) {
   ret <2 x i1> %c
 }
 
+define i1 @slt_zero_add_nsw(i32 %a) {
+; CHECK-LABEL: @slt_zero_add_nsw(
+; CHECK-NEXT:    [[CMP:%.*]] = icmp slt i32 %a, -1
+; CHECK-NEXT:    ret i1 [[CMP]]
+;
+  %add = add nsw i32 %a, 1
+  %cmp = icmp slt i32 %add, 0
+  ret i1 %cmp
+}
+
+; FIXME: The same fold should work with vectors.
+
+define <2 x i1> @slt_zero_add_nsw_splat_vec(<2 x i8> %a) {
+; CHECK-LABEL: @slt_zero_add_nsw_splat_vec(
+; CHECK-NEXT:    [[ADD:%.*]] = add nsw <2 x i8> %a, <i8 1, i8 1>
+; CHECK-NEXT:    [[CMP:%.*]] = icmp slt <2 x i8> [[ADD]], zeroinitializer
+; CHECK-NEXT:    ret <2 x i1> [[CMP]]
+;
+  %add = add nsw <2 x i8> %a, <i8 1, i8 1>
+  %cmp = icmp slt <2 x i8> %add, zeroinitializer
+  ret <2 x i1> %cmp
+}
+
index ad1f865401405d4c1fe4856e9d43d3767c8be809..888fd95fb4a2f3f681a47c30877b584acdac6534 100644 (file)
@@ -2231,16 +2231,6 @@ define i1 @icmp_sge_zero_add_nsw(i32 %a) {
   ret i1 %cmp
 }
 
-define i1 @icmp_slt_zero_add_nsw(i32 %a) {
-; CHECK-LABEL: @icmp_slt_zero_add_nsw(
-; CHECK-NEXT:    [[CMP:%.*]] = icmp slt i32 %a, -1
-; CHECK-NEXT:    ret i1 [[CMP]]
-;
-  %add = add nsw i32 %a, 1
-  %cmp = icmp slt i32 %add, 0
-  ret i1 %cmp
-}
-
 define i1 @icmp_sle_zero_add_nsw(i32 %a) {
 ; CHECK-LABEL: @icmp_sle_zero_add_nsw(
 ; CHECK-NEXT:    [[CMP:%.*]] = icmp slt i32 %a, 0