From 3c3df0d82ae1e5fa79e923ec9439c355fe20b1a1 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Thu, 6 Apr 2017 05:48:06 +0000 Subject: [PATCH] [InstSimplify] Add test cases for mixing add/sub i1 with xor of i1. Seems we can simplify in one direction but not the other. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@299627 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Transforms/InstSimplify/addsub.ll | 42 ++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/test/Transforms/InstSimplify/addsub.ll b/test/Transforms/InstSimplify/addsub.ll index 5ba13477b20..2f19a4d205e 100644 --- a/test/Transforms/InstSimplify/addsub.ll +++ b/test/Transforms/InstSimplify/addsub.ll @@ -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 +} -- 2.50.1