Home | History | Annotate | Download | only in InstCombine
      1 ; RUN: opt < %s -instcombine -S | FileCheck %s
      2 
      3 define i41 @test0(i41 %A, i41 %B, i41 %C) {
      4 	%X = shl i41 %A, %C
      5 	%Y = shl i41 %B, %C
      6 	%Z = and i41 %X, %Y
      7 	ret i41 %Z
      8 ; CHECK-LABEL: @test0(
      9 ; CHECK-NEXT: and i41 %A, %B
     10 ; CHECK-NEXT: shl i41
     11 ; CHECK-NEXT: ret
     12 }
     13 
     14 define i57 @test1(i57 %A, i57 %B, i57 %C) {
     15 	%X = lshr i57 %A, %C
     16 	%Y = lshr i57 %B, %C
     17 	%Z = or i57 %X, %Y
     18 	ret i57 %Z
     19 ; CHECK-LABEL: @test1(
     20 ; CHECK-NEXT: or i57 %A, %B
     21 ; CHECK-NEXT: lshr i57
     22 ; CHECK-NEXT: ret
     23 }
     24 
     25 define i49 @test2(i49 %A, i49 %B, i49 %C) {
     26 	%X = ashr i49 %A, %C
     27 	%Y = ashr i49 %B, %C
     28 	%Z = xor i49 %X, %Y
     29 	ret i49 %Z
     30 ; CHECK-LABEL: @test2(
     31 ; CHECK-NEXT: xor i49 %A, %B
     32 ; CHECK-NEXT: ashr i49
     33 ; CHECK-NEXT: ret
     34 }
     35