Home | History | Annotate | Download | only in InstCombine
      1 ; RUN: opt < %s -instcombine -S | grep "and i32 %x, %y" | count 4
      2 ; RUN: opt < %s -instcombine -S | not grep "or"
      3 
      4 define i32 @func1(i32 %x, i32 %y) nounwind {
      5 entry:
      6 	%n = xor i32 %y, -1
      7 	%o = or i32 %n, %x
      8 	%a = and i32 %o, %y
      9 	ret i32 %a
     10 }
     11 
     12 define i32 @func2(i32 %x, i32 %y) nounwind {
     13 entry:
     14 	%n = xor i32 %y, -1
     15 	%o = or i32 %x, %n
     16 	%a = and i32 %o, %y
     17 	ret i32 %a
     18 }
     19 
     20 define i32 @func3(i32 %x, i32 %y) nounwind {
     21 entry:
     22 	%n = xor i32 %y, -1
     23 	%o = or i32 %n, %x
     24 	%a = and i32 %y, %o
     25 	ret i32 %a
     26 }
     27 
     28 define i32 @func4(i32 %x, i32 %y) nounwind {
     29 entry:
     30 	%n = xor i32 %y, -1
     31 	%o = or i32 %x, %n
     32 	%a = and i32 %y, %o
     33 	ret i32 %a
     34 }
     35