Home | History | Annotate | Download | only in SystemZ
      1 ; RUN: llc < %s -march=systemz | grep sra   | count 6
      2 ; RUN: llc < %s -march=systemz | grep srag  | count 3
      3 ; RUN: llc < %s -march=systemz | grep srl   | count 6
      4 ; RUN: llc < %s -march=systemz | grep srlg  | count 3
      5 ; RUN: llc < %s -march=systemz | grep sll   | count 6
      6 ; RUN: llc < %s -march=systemz | grep sllg  | count 3
      7 
      8 define signext i32 @foo1(i32 %a, i32 %idx) nounwind readnone {
      9 entry:
     10 	%add = add i32 %idx, 1		; <i32> [#uses=1]
     11 	%shr = ashr i32 %a, %add		; <i32> [#uses=1]
     12 	ret i32 %shr
     13 }
     14 
     15 define signext i32 @foo2(i32 %a, i32 %idx) nounwind readnone {
     16 entry:
     17 	%add = add i32 %idx, 1		; <i32> [#uses=1]
     18 	%shr = shl i32 %a, %add		; <i32> [#uses=1]
     19 	ret i32 %shr
     20 }
     21 
     22 define signext i32 @foo3(i32 %a, i32 %idx) nounwind readnone {
     23 entry:
     24 	%add = add i32 %idx, 1		; <i32> [#uses=1]
     25 	%shr = lshr i32 %a, %add		; <i32> [#uses=1]
     26 	ret i32 %shr
     27 }
     28 
     29 define signext i64 @foo4(i64 %a, i64 %idx) nounwind readnone {
     30 entry:
     31 	%add = add i64 %idx, 1		; <i64> [#uses=1]
     32 	%shr = ashr i64 %a, %add		; <i64> [#uses=1]
     33 	ret i64 %shr
     34 }
     35 
     36 define signext i64 @foo5(i64 %a, i64 %idx) nounwind readnone {
     37 entry:
     38 	%add = add i64 %idx, 1		; <i64> [#uses=1]
     39 	%shr = shl i64 %a, %add		; <i64> [#uses=1]
     40 	ret i64 %shr
     41 }
     42 
     43 define signext i64 @foo6(i64 %a, i64 %idx) nounwind readnone {
     44 entry:
     45 	%add = add i64 %idx, 1		; <i64> [#uses=1]
     46 	%shr = lshr i64 %a, %add		; <i64> [#uses=1]
     47 	ret i64 %shr
     48 }
     49 
     50 define signext i32 @foo7(i32 %a, i32 %idx) nounwind readnone {
     51 entry:
     52         %shr = ashr i32 %a, 1
     53         ret i32 %shr
     54 }
     55 
     56 define signext i32 @foo8(i32 %a, i32 %idx) nounwind readnone {
     57 entry:
     58         %shr = shl i32 %a, 1
     59         ret i32 %shr
     60 }
     61 
     62 define signext i32 @foo9(i32 %a, i32 %idx) nounwind readnone {
     63 entry:
     64         %shr = lshr i32 %a, 1
     65         ret i32 %shr
     66 }
     67 
     68 define signext i32 @foo10(i32 %a, i32 %idx) nounwind readnone {
     69 entry:
     70         %shr = ashr i32 %a, %idx
     71         ret i32 %shr
     72 }
     73 
     74 define signext i32 @foo11(i32 %a, i32 %idx) nounwind readnone {
     75 entry:
     76         %shr = shl i32 %a, %idx
     77         ret i32 %shr
     78 }
     79 
     80 define signext i32 @foo12(i32 %a, i32 %idx) nounwind readnone {
     81 entry:
     82         %shr = lshr i32 %a, %idx
     83         ret i32 %shr
     84 }
     85 
     86 define signext i64 @foo13(i64 %a, i64 %idx) nounwind readnone {
     87 entry:
     88         %shr = ashr i64 %a, 1
     89         ret i64 %shr
     90 }
     91 
     92 define signext i64 @foo14(i64 %a, i64 %idx) nounwind readnone {
     93 entry:
     94         %shr = shl i64 %a, 1
     95         ret i64 %shr
     96 }
     97 
     98 define signext i64 @foo15(i64 %a, i64 %idx) nounwind readnone {
     99 entry:
    100         %shr = lshr i64 %a, 1
    101         ret i64 %shr
    102 }
    103 
    104 define signext i64 @foo16(i64 %a, i64 %idx) nounwind readnone {
    105 entry:
    106         %shr = ashr i64 %a, %idx
    107         ret i64 %shr
    108 }
    109 
    110 define signext i64 @foo17(i64 %a, i64 %idx) nounwind readnone {
    111 entry:
    112         %shr = shl i64 %a, %idx
    113         ret i64 %shr
    114 }
    115 
    116 define signext i64 @foo18(i64 %a, i64 %idx) nounwind readnone {
    117 entry:
    118         %shr = lshr i64 %a, %idx
    119         ret i64 %shr
    120 }
    121 
    122