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