From 9c618dddcd075579cf4f157ba4a03d088c166dab Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Sat, 25 Feb 2017 14:40:33 +0000 Subject: Vendor import of llvm release_40 branch r296202: https://llvm.org/svn/llvm-project/llvm/branches/release_40@296202 --- test/Transforms/Reassociate/basictest.ll | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'test/Transforms/Reassociate/basictest.ll') diff --git a/test/Transforms/Reassociate/basictest.ll b/test/Transforms/Reassociate/basictest.ll index 11c67bea2cb0a..4703fd7621b63 100644 --- a/test/Transforms/Reassociate/basictest.ll +++ b/test/Transforms/Reassociate/basictest.ll @@ -222,3 +222,23 @@ define i32 @test15(i32 %X1, i32 %X2, i32 %X3) { ; CHECK-LABEL: @test15 ; CHECK: and i1 %A, %B } + +; PR30256 - previously this asserted. +; CHECK-LABEL: @test16 +; CHECK: %[[FACTOR:.*]] = mul i64 %a, -4 +; CHECK-NEXT: %[[RES:.*]] = add i64 %[[FACTOR]], %b +; CHECK-NEXT: ret i64 %[[RES]] +define i64 @test16(i1 %cmp, i64 %a, i64 %b) { +entry: + %shl = shl i64 %a, 1 + %shl.neg = sub i64 0, %shl + br i1 %cmp, label %if.then, label %if.end + +if.then: ; preds = %entry + %add1 = add i64 %shl.neg, %shl.neg + %add2 = add i64 %add1, %b + ret i64 %add2 + +if.end: ; preds = %entry + ret i64 0 +} -- cgit v1.2.3