From f1eda235142ed071e219bd231310e44cda08f932 Mon Sep 17 00:00:00 2001 From: David Majnemer Date: Thu, 14 Aug 2014 06:41:38 +0000 Subject: Added InstCombine Transform for ((B | C) & A) | B -> B | (A & C) Transform ((B | C) & A) | B --> B | (A & C) Z3 Link: http://rise4fun.com/Z3/hP6p Patch by Sonam Kumari! Differential Revision: http://reviews.llvm.org/D4865 llvm-svn: 215619 --- llvm/test/Transforms/InstCombine/or.ll | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'llvm/test/Transforms') diff --git a/llvm/test/Transforms/InstCombine/or.ll b/llvm/test/Transforms/InstCombine/or.ll index 2fcdfa5f8ce..5d6ca9603f7 100644 --- a/llvm/test/Transforms/InstCombine/or.ll +++ b/llvm/test/Transforms/InstCombine/or.ll @@ -469,3 +469,14 @@ define i32 @test44(i32 %a, i32 %b) { %or = or i32 %xor, %and ret i32 %or } + +define i32 @test45(i32 %x, i32 %y, i32 %z) { +; CHECK-LABEL: test45( +; CHECK-NEXT: %1 = and i32 %x, %z +; CHECK-NEXT: %or1 = or i32 %1, %y +; CHECK-NEXT: ret i32 %or1 + %or = or i32 %y, %z + %and = and i32 %x, %or + %or1 = or i32 %and, %y + ret i32 %or1 +} -- cgit v1.2.3