]> granicus.if.org Git - llvm/commitdiff
[InstSimplify] Add test cases for mixing add/sub i1 with xor of i1. Seems we can...
authorCraig Topper <craig.topper@gmail.com>
Thu, 6 Apr 2017 05:48:06 +0000 (05:48 +0000)
committerCraig Topper <craig.topper@gmail.com>
Thu, 6 Apr 2017 05:48:06 +0000 (05:48 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@299627 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/InstSimplify/addsub.ll

index 5ba13477b207c5fc5cfe082ec6084211e57f2c55..2f19a4d205e77190765d90f08a115e434635e028 100644 (file)
@@ -34,3 +34,45 @@ define <2 x i1> @test6(<2 x i1> %a) {
   %res = add <2 x i1> %a, %a
   ret <2 x i1> %res
 }
+
+define i1 @test7(i1 %a) {
+; CHECK-LABEL: @test7(
+; CHECK-NEXT:    ret i1 [[A:%.*]]
+;
+  %c = xor i1 %a, true
+  %res = add i1 %c, true
+  ret i1 %res
+}
+
+; TODO: simplify this to %a
+define i1 @test8(i1 %a) {
+; CHECK-LABEL: @test8(
+; CHECK-NEXT:    [[C:%.*]] = add i1 [[A:%.*]], true
+; CHECK-NEXT:    [[RES:%.*]] = xor i1 [[C]], true
+; CHECK-NEXT:    ret i1 [[RES]]
+;
+  %c = add i1 %a, true
+  %res = xor i1 %c, true
+  ret i1 %res
+}
+
+define i1 @test9(i1 %a) {
+; CHECK-LABEL: @test9(
+; CHECK-NEXT:    ret i1 [[A:%.*]]
+;
+  %c = xor i1 %a, true
+  %res = sub i1 %c, true
+  ret i1 %res
+}
+
+; TODO: simplify this to %a
+define i1 @test10(i1 %a) {
+; CHECK-LABEL: @test10(
+; CHECK-NEXT:    [[C:%.*]] = sub i1 [[A:%.*]], true
+; CHECK-NEXT:    [[RES:%.*]] = xor i1 [[C]], true
+; CHECK-NEXT:    ret i1 [[RES]]
+;
+  %c = sub i1 %a, true
+  %res = xor i1 %c, true
+  ret i1 %res
+}