1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -instcombine | \ 2*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=ppc32 -mcpu=g5 | not grep vperm 3*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=ppc32 -mcpu=g5 > %t 4*9880d681SAndroid Build Coastguard Worker; RUN: grep vsldoi %t | count 2 5*9880d681SAndroid Build Coastguard Worker; RUN: grep vmrgh %t | count 7 6*9880d681SAndroid Build Coastguard Worker; RUN: grep vmrgl %t | count 6 7*9880d681SAndroid Build Coastguard Worker; RUN: grep vpkuhum %t | count 1 8*9880d681SAndroid Build Coastguard Worker; RUN: grep vpkuwum %t | count 1 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Workerdefine void @VSLDOI_xy(<8 x i16>* %A, <8 x i16>* %B) { 11*9880d681SAndroid Build Coastguard Workerentry: 12*9880d681SAndroid Build Coastguard Worker %tmp = load <8 x i16>, <8 x i16>* %A ; <<8 x i16>> [#uses=1] 13*9880d681SAndroid Build Coastguard Worker %tmp2 = load <8 x i16>, <8 x i16>* %B ; <<8 x i16>> [#uses=1] 14*9880d681SAndroid Build Coastguard Worker %tmp.upgrd.1 = bitcast <8 x i16> %tmp to <16 x i8> ; <<16 x i8>> [#uses=11] 15*9880d681SAndroid Build Coastguard Worker %tmp2.upgrd.2 = bitcast <8 x i16> %tmp2 to <16 x i8> ; <<16 x i8>> [#uses=5] 16*9880d681SAndroid Build Coastguard Worker %tmp.upgrd.3 = extractelement <16 x i8> %tmp.upgrd.1, i32 5 ; <i8> [#uses=1] 17*9880d681SAndroid Build Coastguard Worker %tmp3 = extractelement <16 x i8> %tmp.upgrd.1, i32 6 ; <i8> [#uses=1] 18*9880d681SAndroid Build Coastguard Worker %tmp4 = extractelement <16 x i8> %tmp.upgrd.1, i32 7 ; <i8> [#uses=1] 19*9880d681SAndroid Build Coastguard Worker %tmp5 = extractelement <16 x i8> %tmp.upgrd.1, i32 8 ; <i8> [#uses=1] 20*9880d681SAndroid Build Coastguard Worker %tmp6 = extractelement <16 x i8> %tmp.upgrd.1, i32 9 ; <i8> [#uses=1] 21*9880d681SAndroid Build Coastguard Worker %tmp7 = extractelement <16 x i8> %tmp.upgrd.1, i32 10 ; <i8> [#uses=1] 22*9880d681SAndroid Build Coastguard Worker %tmp8 = extractelement <16 x i8> %tmp.upgrd.1, i32 11 ; <i8> [#uses=1] 23*9880d681SAndroid Build Coastguard Worker %tmp9 = extractelement <16 x i8> %tmp.upgrd.1, i32 12 ; <i8> [#uses=1] 24*9880d681SAndroid Build Coastguard Worker %tmp10 = extractelement <16 x i8> %tmp.upgrd.1, i32 13 ; <i8> [#uses=1] 25*9880d681SAndroid Build Coastguard Worker %tmp11 = extractelement <16 x i8> %tmp.upgrd.1, i32 14 ; <i8> [#uses=1] 26*9880d681SAndroid Build Coastguard Worker %tmp12 = extractelement <16 x i8> %tmp.upgrd.1, i32 15 ; <i8> [#uses=1] 27*9880d681SAndroid Build Coastguard Worker %tmp13 = extractelement <16 x i8> %tmp2.upgrd.2, i32 0 ; <i8> [#uses=1] 28*9880d681SAndroid Build Coastguard Worker %tmp14 = extractelement <16 x i8> %tmp2.upgrd.2, i32 1 ; <i8> [#uses=1] 29*9880d681SAndroid Build Coastguard Worker %tmp15 = extractelement <16 x i8> %tmp2.upgrd.2, i32 2 ; <i8> [#uses=1] 30*9880d681SAndroid Build Coastguard Worker %tmp16 = extractelement <16 x i8> %tmp2.upgrd.2, i32 3 ; <i8> [#uses=1] 31*9880d681SAndroid Build Coastguard Worker %tmp17 = extractelement <16 x i8> %tmp2.upgrd.2, i32 4 ; <i8> [#uses=1] 32*9880d681SAndroid Build Coastguard Worker %tmp18 = insertelement <16 x i8> undef, i8 %tmp.upgrd.3, i32 0 ; <<16 x i8>> [#uses=1] 33*9880d681SAndroid Build Coastguard Worker %tmp19 = insertelement <16 x i8> %tmp18, i8 %tmp3, i32 1 ; <<16 x i8>> [#uses=1] 34*9880d681SAndroid Build Coastguard Worker %tmp20 = insertelement <16 x i8> %tmp19, i8 %tmp4, i32 2 ; <<16 x i8>> [#uses=1] 35*9880d681SAndroid Build Coastguard Worker %tmp21 = insertelement <16 x i8> %tmp20, i8 %tmp5, i32 3 ; <<16 x i8>> [#uses=1] 36*9880d681SAndroid Build Coastguard Worker %tmp22 = insertelement <16 x i8> %tmp21, i8 %tmp6, i32 4 ; <<16 x i8>> [#uses=1] 37*9880d681SAndroid Build Coastguard Worker %tmp23 = insertelement <16 x i8> %tmp22, i8 %tmp7, i32 5 ; <<16 x i8>> [#uses=1] 38*9880d681SAndroid Build Coastguard Worker %tmp24 = insertelement <16 x i8> %tmp23, i8 %tmp8, i32 6 ; <<16 x i8>> [#uses=1] 39*9880d681SAndroid Build Coastguard Worker %tmp25 = insertelement <16 x i8> %tmp24, i8 %tmp9, i32 7 ; <<16 x i8>> [#uses=1] 40*9880d681SAndroid Build Coastguard Worker %tmp26 = insertelement <16 x i8> %tmp25, i8 %tmp10, i32 8 ; <<16 x i8>> [#uses=1] 41*9880d681SAndroid Build Coastguard Worker %tmp27 = insertelement <16 x i8> %tmp26, i8 %tmp11, i32 9 ; <<16 x i8>> [#uses=1] 42*9880d681SAndroid Build Coastguard Worker %tmp28 = insertelement <16 x i8> %tmp27, i8 %tmp12, i32 10 ; <<16 x i8>> [#uses=1] 43*9880d681SAndroid Build Coastguard Worker %tmp29 = insertelement <16 x i8> %tmp28, i8 %tmp13, i32 11 ; <<16 x i8>> [#uses=1] 44*9880d681SAndroid Build Coastguard Worker %tmp30 = insertelement <16 x i8> %tmp29, i8 %tmp14, i32 12 ; <<16 x i8>> [#uses=1] 45*9880d681SAndroid Build Coastguard Worker %tmp31 = insertelement <16 x i8> %tmp30, i8 %tmp15, i32 13 ; <<16 x i8>> [#uses=1] 46*9880d681SAndroid Build Coastguard Worker %tmp32 = insertelement <16 x i8> %tmp31, i8 %tmp16, i32 14 ; <<16 x i8>> [#uses=1] 47*9880d681SAndroid Build Coastguard Worker %tmp33 = insertelement <16 x i8> %tmp32, i8 %tmp17, i32 15 ; <<16 x i8>> [#uses=1] 48*9880d681SAndroid Build Coastguard Worker %tmp33.upgrd.4 = bitcast <16 x i8> %tmp33 to <8 x i16> ; <<8 x i16>> [#uses=1] 49*9880d681SAndroid Build Coastguard Worker store <8 x i16> %tmp33.upgrd.4, <8 x i16>* %A 50*9880d681SAndroid Build Coastguard Worker ret void 51*9880d681SAndroid Build Coastguard Worker} 52*9880d681SAndroid Build Coastguard Worker 53*9880d681SAndroid Build Coastguard Workerdefine void @VSLDOI_xx(<8 x i16>* %A, <8 x i16>* %B) { 54*9880d681SAndroid Build Coastguard Worker %tmp = load <8 x i16>, <8 x i16>* %A ; <<8 x i16>> [#uses=1] 55*9880d681SAndroid Build Coastguard Worker %tmp2 = load <8 x i16>, <8 x i16>* %A ; <<8 x i16>> [#uses=1] 56*9880d681SAndroid Build Coastguard Worker %tmp.upgrd.5 = bitcast <8 x i16> %tmp to <16 x i8> ; <<16 x i8>> [#uses=11] 57*9880d681SAndroid Build Coastguard Worker %tmp2.upgrd.6 = bitcast <8 x i16> %tmp2 to <16 x i8> ; <<16 x i8>> [#uses=5] 58*9880d681SAndroid Build Coastguard Worker %tmp.upgrd.7 = extractelement <16 x i8> %tmp.upgrd.5, i32 5 ; <i8> [#uses=1] 59*9880d681SAndroid Build Coastguard Worker %tmp3 = extractelement <16 x i8> %tmp.upgrd.5, i32 6 ; <i8> [#uses=1] 60*9880d681SAndroid Build Coastguard Worker %tmp4 = extractelement <16 x i8> %tmp.upgrd.5, i32 7 ; <i8> [#uses=1] 61*9880d681SAndroid Build Coastguard Worker %tmp5 = extractelement <16 x i8> %tmp.upgrd.5, i32 8 ; <i8> [#uses=1] 62*9880d681SAndroid Build Coastguard Worker %tmp6 = extractelement <16 x i8> %tmp.upgrd.5, i32 9 ; <i8> [#uses=1] 63*9880d681SAndroid Build Coastguard Worker %tmp7 = extractelement <16 x i8> %tmp.upgrd.5, i32 10 ; <i8> [#uses=1] 64*9880d681SAndroid Build Coastguard Worker %tmp8 = extractelement <16 x i8> %tmp.upgrd.5, i32 11 ; <i8> [#uses=1] 65*9880d681SAndroid Build Coastguard Worker %tmp9 = extractelement <16 x i8> %tmp.upgrd.5, i32 12 ; <i8> [#uses=1] 66*9880d681SAndroid Build Coastguard Worker %tmp10 = extractelement <16 x i8> %tmp.upgrd.5, i32 13 ; <i8> [#uses=1] 67*9880d681SAndroid Build Coastguard Worker %tmp11 = extractelement <16 x i8> %tmp.upgrd.5, i32 14 ; <i8> [#uses=1] 68*9880d681SAndroid Build Coastguard Worker %tmp12 = extractelement <16 x i8> %tmp.upgrd.5, i32 15 ; <i8> [#uses=1] 69*9880d681SAndroid Build Coastguard Worker %tmp13 = extractelement <16 x i8> %tmp2.upgrd.6, i32 0 ; <i8> [#uses=1] 70*9880d681SAndroid Build Coastguard Worker %tmp14 = extractelement <16 x i8> %tmp2.upgrd.6, i32 1 ; <i8> [#uses=1] 71*9880d681SAndroid Build Coastguard Worker %tmp15 = extractelement <16 x i8> %tmp2.upgrd.6, i32 2 ; <i8> [#uses=1] 72*9880d681SAndroid Build Coastguard Worker %tmp16 = extractelement <16 x i8> %tmp2.upgrd.6, i32 3 ; <i8> [#uses=1] 73*9880d681SAndroid Build Coastguard Worker %tmp17 = extractelement <16 x i8> %tmp2.upgrd.6, i32 4 ; <i8> [#uses=1] 74*9880d681SAndroid Build Coastguard Worker %tmp18 = insertelement <16 x i8> undef, i8 %tmp.upgrd.7, i32 0 ; <<16 x i8>> [#uses=1] 75*9880d681SAndroid Build Coastguard Worker %tmp19 = insertelement <16 x i8> %tmp18, i8 %tmp3, i32 1 ; <<16 x i8>> [#uses=1] 76*9880d681SAndroid Build Coastguard Worker %tmp20 = insertelement <16 x i8> %tmp19, i8 %tmp4, i32 2 ; <<16 x i8>> [#uses=1] 77*9880d681SAndroid Build Coastguard Worker %tmp21 = insertelement <16 x i8> %tmp20, i8 %tmp5, i32 3 ; <<16 x i8>> [#uses=1] 78*9880d681SAndroid Build Coastguard Worker %tmp22 = insertelement <16 x i8> %tmp21, i8 %tmp6, i32 4 ; <<16 x i8>> [#uses=1] 79*9880d681SAndroid Build Coastguard Worker %tmp23 = insertelement <16 x i8> %tmp22, i8 %tmp7, i32 5 ; <<16 x i8>> [#uses=1] 80*9880d681SAndroid Build Coastguard Worker %tmp24 = insertelement <16 x i8> %tmp23, i8 %tmp8, i32 6 ; <<16 x i8>> [#uses=1] 81*9880d681SAndroid Build Coastguard Worker %tmp25 = insertelement <16 x i8> %tmp24, i8 %tmp9, i32 7 ; <<16 x i8>> [#uses=1] 82*9880d681SAndroid Build Coastguard Worker %tmp26 = insertelement <16 x i8> %tmp25, i8 %tmp10, i32 8 ; <<16 x i8>> [#uses=1] 83*9880d681SAndroid Build Coastguard Worker %tmp27 = insertelement <16 x i8> %tmp26, i8 %tmp11, i32 9 ; <<16 x i8>> [#uses=1] 84*9880d681SAndroid Build Coastguard Worker %tmp28 = insertelement <16 x i8> %tmp27, i8 %tmp12, i32 10 ; <<16 x i8>> [#uses=1] 85*9880d681SAndroid Build Coastguard Worker %tmp29 = insertelement <16 x i8> %tmp28, i8 %tmp13, i32 11 ; <<16 x i8>> [#uses=1] 86*9880d681SAndroid Build Coastguard Worker %tmp30 = insertelement <16 x i8> %tmp29, i8 %tmp14, i32 12 ; <<16 x i8>> [#uses=1] 87*9880d681SAndroid Build Coastguard Worker %tmp31 = insertelement <16 x i8> %tmp30, i8 %tmp15, i32 13 ; <<16 x i8>> [#uses=1] 88*9880d681SAndroid Build Coastguard Worker %tmp32 = insertelement <16 x i8> %tmp31, i8 %tmp16, i32 14 ; <<16 x i8>> [#uses=1] 89*9880d681SAndroid Build Coastguard Worker %tmp33 = insertelement <16 x i8> %tmp32, i8 %tmp17, i32 15 ; <<16 x i8>> [#uses=1] 90*9880d681SAndroid Build Coastguard Worker %tmp33.upgrd.8 = bitcast <16 x i8> %tmp33 to <8 x i16> ; <<8 x i16>> [#uses=1] 91*9880d681SAndroid Build Coastguard Worker store <8 x i16> %tmp33.upgrd.8, <8 x i16>* %A 92*9880d681SAndroid Build Coastguard Worker ret void 93*9880d681SAndroid Build Coastguard Worker} 94*9880d681SAndroid Build Coastguard Worker 95*9880d681SAndroid Build Coastguard Workerdefine void @VPERM_promote(<8 x i16>* %A, <8 x i16>* %B) { 96*9880d681SAndroid Build Coastguard Workerentry: 97*9880d681SAndroid Build Coastguard Worker %tmp = load <8 x i16>, <8 x i16>* %A ; <<8 x i16>> [#uses=1] 98*9880d681SAndroid Build Coastguard Worker %tmp.upgrd.9 = bitcast <8 x i16> %tmp to <4 x i32> ; <<4 x i32>> [#uses=1] 99*9880d681SAndroid Build Coastguard Worker %tmp2 = load <8 x i16>, <8 x i16>* %B ; <<8 x i16>> [#uses=1] 100*9880d681SAndroid Build Coastguard Worker %tmp2.upgrd.10 = bitcast <8 x i16> %tmp2 to <4 x i32> ; <<4 x i32>> [#uses=1] 101*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x i32> @llvm.ppc.altivec.vperm( <4 x i32> %tmp.upgrd.9, <4 x i32> %tmp2.upgrd.10, <16 x i8> < i8 14, i8 14, i8 14, i8 14, i8 14, i8 14, i8 14, i8 14, i8 14, i8 14, i8 14, i8 14, i8 14, i8 14, i8 14, i8 14 > ) ; <<4 x i32>> [#uses=1] 102*9880d681SAndroid Build Coastguard Worker %tmp3.upgrd.11 = bitcast <4 x i32> %tmp3 to <8 x i16> ; <<8 x i16>> [#uses=1] 103*9880d681SAndroid Build Coastguard Worker store <8 x i16> %tmp3.upgrd.11, <8 x i16>* %A 104*9880d681SAndroid Build Coastguard Worker ret void 105*9880d681SAndroid Build Coastguard Worker} 106*9880d681SAndroid Build Coastguard Worker 107*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32>, <4 x i32>, <16 x i8>) 108*9880d681SAndroid Build Coastguard Worker 109*9880d681SAndroid Build Coastguard Workerdefine void @tb_l(<16 x i8>* %A, <16 x i8>* %B) { 110*9880d681SAndroid Build Coastguard Workerentry: 111*9880d681SAndroid Build Coastguard Worker %tmp = load <16 x i8>, <16 x i8>* %A ; <<16 x i8>> [#uses=8] 112*9880d681SAndroid Build Coastguard Worker %tmp2 = load <16 x i8>, <16 x i8>* %B ; <<16 x i8>> [#uses=8] 113*9880d681SAndroid Build Coastguard Worker %tmp.upgrd.12 = extractelement <16 x i8> %tmp, i32 8 ; <i8> [#uses=1] 114*9880d681SAndroid Build Coastguard Worker %tmp3 = extractelement <16 x i8> %tmp2, i32 8 ; <i8> [#uses=1] 115*9880d681SAndroid Build Coastguard Worker %tmp4 = extractelement <16 x i8> %tmp, i32 9 ; <i8> [#uses=1] 116*9880d681SAndroid Build Coastguard Worker %tmp5 = extractelement <16 x i8> %tmp2, i32 9 ; <i8> [#uses=1] 117*9880d681SAndroid Build Coastguard Worker %tmp6 = extractelement <16 x i8> %tmp, i32 10 ; <i8> [#uses=1] 118*9880d681SAndroid Build Coastguard Worker %tmp7 = extractelement <16 x i8> %tmp2, i32 10 ; <i8> [#uses=1] 119*9880d681SAndroid Build Coastguard Worker %tmp8 = extractelement <16 x i8> %tmp, i32 11 ; <i8> [#uses=1] 120*9880d681SAndroid Build Coastguard Worker %tmp9 = extractelement <16 x i8> %tmp2, i32 11 ; <i8> [#uses=1] 121*9880d681SAndroid Build Coastguard Worker %tmp10 = extractelement <16 x i8> %tmp, i32 12 ; <i8> [#uses=1] 122*9880d681SAndroid Build Coastguard Worker %tmp11 = extractelement <16 x i8> %tmp2, i32 12 ; <i8> [#uses=1] 123*9880d681SAndroid Build Coastguard Worker %tmp12 = extractelement <16 x i8> %tmp, i32 13 ; <i8> [#uses=1] 124*9880d681SAndroid Build Coastguard Worker %tmp13 = extractelement <16 x i8> %tmp2, i32 13 ; <i8> [#uses=1] 125*9880d681SAndroid Build Coastguard Worker %tmp14 = extractelement <16 x i8> %tmp, i32 14 ; <i8> [#uses=1] 126*9880d681SAndroid Build Coastguard Worker %tmp15 = extractelement <16 x i8> %tmp2, i32 14 ; <i8> [#uses=1] 127*9880d681SAndroid Build Coastguard Worker %tmp16 = extractelement <16 x i8> %tmp, i32 15 ; <i8> [#uses=1] 128*9880d681SAndroid Build Coastguard Worker %tmp17 = extractelement <16 x i8> %tmp2, i32 15 ; <i8> [#uses=1] 129*9880d681SAndroid Build Coastguard Worker %tmp18 = insertelement <16 x i8> undef, i8 %tmp.upgrd.12, i32 0 ; <<16 x i8>> [#uses=1] 130*9880d681SAndroid Build Coastguard Worker %tmp19 = insertelement <16 x i8> %tmp18, i8 %tmp3, i32 1 ; <<16 x i8>> [#uses=1] 131*9880d681SAndroid Build Coastguard Worker %tmp20 = insertelement <16 x i8> %tmp19, i8 %tmp4, i32 2 ; <<16 x i8>> [#uses=1] 132*9880d681SAndroid Build Coastguard Worker %tmp21 = insertelement <16 x i8> %tmp20, i8 %tmp5, i32 3 ; <<16 x i8>> [#uses=1] 133*9880d681SAndroid Build Coastguard Worker %tmp22 = insertelement <16 x i8> %tmp21, i8 %tmp6, i32 4 ; <<16 x i8>> [#uses=1] 134*9880d681SAndroid Build Coastguard Worker %tmp23 = insertelement <16 x i8> %tmp22, i8 %tmp7, i32 5 ; <<16 x i8>> [#uses=1] 135*9880d681SAndroid Build Coastguard Worker %tmp24 = insertelement <16 x i8> %tmp23, i8 %tmp8, i32 6 ; <<16 x i8>> [#uses=1] 136*9880d681SAndroid Build Coastguard Worker %tmp25 = insertelement <16 x i8> %tmp24, i8 %tmp9, i32 7 ; <<16 x i8>> [#uses=1] 137*9880d681SAndroid Build Coastguard Worker %tmp26 = insertelement <16 x i8> %tmp25, i8 %tmp10, i32 8 ; <<16 x i8>> [#uses=1] 138*9880d681SAndroid Build Coastguard Worker %tmp27 = insertelement <16 x i8> %tmp26, i8 %tmp11, i32 9 ; <<16 x i8>> [#uses=1] 139*9880d681SAndroid Build Coastguard Worker %tmp28 = insertelement <16 x i8> %tmp27, i8 %tmp12, i32 10 ; <<16 x i8>> [#uses=1] 140*9880d681SAndroid Build Coastguard Worker %tmp29 = insertelement <16 x i8> %tmp28, i8 %tmp13, i32 11 ; <<16 x i8>> [#uses=1] 141*9880d681SAndroid Build Coastguard Worker %tmp30 = insertelement <16 x i8> %tmp29, i8 %tmp14, i32 12 ; <<16 x i8>> [#uses=1] 142*9880d681SAndroid Build Coastguard Worker %tmp31 = insertelement <16 x i8> %tmp30, i8 %tmp15, i32 13 ; <<16 x i8>> [#uses=1] 143*9880d681SAndroid Build Coastguard Worker %tmp32 = insertelement <16 x i8> %tmp31, i8 %tmp16, i32 14 ; <<16 x i8>> [#uses=1] 144*9880d681SAndroid Build Coastguard Worker %tmp33 = insertelement <16 x i8> %tmp32, i8 %tmp17, i32 15 ; <<16 x i8>> [#uses=1] 145*9880d681SAndroid Build Coastguard Worker store <16 x i8> %tmp33, <16 x i8>* %A 146*9880d681SAndroid Build Coastguard Worker ret void 147*9880d681SAndroid Build Coastguard Worker} 148*9880d681SAndroid Build Coastguard Worker 149*9880d681SAndroid Build Coastguard Workerdefine void @th_l(<8 x i16>* %A, <8 x i16>* %B) { 150*9880d681SAndroid Build Coastguard Workerentry: 151*9880d681SAndroid Build Coastguard Worker %tmp = load <8 x i16>, <8 x i16>* %A ; <<8 x i16>> [#uses=4] 152*9880d681SAndroid Build Coastguard Worker %tmp2 = load <8 x i16>, <8 x i16>* %B ; <<8 x i16>> [#uses=4] 153*9880d681SAndroid Build Coastguard Worker %tmp.upgrd.13 = extractelement <8 x i16> %tmp, i32 4 ; <i16> [#uses=1] 154*9880d681SAndroid Build Coastguard Worker %tmp3 = extractelement <8 x i16> %tmp2, i32 4 ; <i16> [#uses=1] 155*9880d681SAndroid Build Coastguard Worker %tmp4 = extractelement <8 x i16> %tmp, i32 5 ; <i16> [#uses=1] 156*9880d681SAndroid Build Coastguard Worker %tmp5 = extractelement <8 x i16> %tmp2, i32 5 ; <i16> [#uses=1] 157*9880d681SAndroid Build Coastguard Worker %tmp6 = extractelement <8 x i16> %tmp, i32 6 ; <i16> [#uses=1] 158*9880d681SAndroid Build Coastguard Worker %tmp7 = extractelement <8 x i16> %tmp2, i32 6 ; <i16> [#uses=1] 159*9880d681SAndroid Build Coastguard Worker %tmp8 = extractelement <8 x i16> %tmp, i32 7 ; <i16> [#uses=1] 160*9880d681SAndroid Build Coastguard Worker %tmp9 = extractelement <8 x i16> %tmp2, i32 7 ; <i16> [#uses=1] 161*9880d681SAndroid Build Coastguard Worker %tmp10 = insertelement <8 x i16> undef, i16 %tmp.upgrd.13, i32 0 ; <<8 x i16>> [#uses=1] 162*9880d681SAndroid Build Coastguard Worker %tmp11 = insertelement <8 x i16> %tmp10, i16 %tmp3, i32 1 ; <<8 x i16>> [#uses=1] 163*9880d681SAndroid Build Coastguard Worker %tmp12 = insertelement <8 x i16> %tmp11, i16 %tmp4, i32 2 ; <<8 x i16>> [#uses=1] 164*9880d681SAndroid Build Coastguard Worker %tmp13 = insertelement <8 x i16> %tmp12, i16 %tmp5, i32 3 ; <<8 x i16>> [#uses=1] 165*9880d681SAndroid Build Coastguard Worker %tmp14 = insertelement <8 x i16> %tmp13, i16 %tmp6, i32 4 ; <<8 x i16>> [#uses=1] 166*9880d681SAndroid Build Coastguard Worker %tmp15 = insertelement <8 x i16> %tmp14, i16 %tmp7, i32 5 ; <<8 x i16>> [#uses=1] 167*9880d681SAndroid Build Coastguard Worker %tmp16 = insertelement <8 x i16> %tmp15, i16 %tmp8, i32 6 ; <<8 x i16>> [#uses=1] 168*9880d681SAndroid Build Coastguard Worker %tmp17 = insertelement <8 x i16> %tmp16, i16 %tmp9, i32 7 ; <<8 x i16>> [#uses=1] 169*9880d681SAndroid Build Coastguard Worker store <8 x i16> %tmp17, <8 x i16>* %A 170*9880d681SAndroid Build Coastguard Worker ret void 171*9880d681SAndroid Build Coastguard Worker} 172*9880d681SAndroid Build Coastguard Worker 173*9880d681SAndroid Build Coastguard Workerdefine void @tw_l(<4 x i32>* %A, <4 x i32>* %B) { 174*9880d681SAndroid Build Coastguard Workerentry: 175*9880d681SAndroid Build Coastguard Worker %tmp = load <4 x i32>, <4 x i32>* %A ; <<4 x i32>> [#uses=2] 176*9880d681SAndroid Build Coastguard Worker %tmp2 = load <4 x i32>, <4 x i32>* %B ; <<4 x i32>> [#uses=2] 177*9880d681SAndroid Build Coastguard Worker %tmp.upgrd.14 = extractelement <4 x i32> %tmp, i32 2 ; <i32> [#uses=1] 178*9880d681SAndroid Build Coastguard Worker %tmp3 = extractelement <4 x i32> %tmp2, i32 2 ; <i32> [#uses=1] 179*9880d681SAndroid Build Coastguard Worker %tmp4 = extractelement <4 x i32> %tmp, i32 3 ; <i32> [#uses=1] 180*9880d681SAndroid Build Coastguard Worker %tmp5 = extractelement <4 x i32> %tmp2, i32 3 ; <i32> [#uses=1] 181*9880d681SAndroid Build Coastguard Worker %tmp6 = insertelement <4 x i32> undef, i32 %tmp.upgrd.14, i32 0 ; <<4 x i32>> [#uses=1] 182*9880d681SAndroid Build Coastguard Worker %tmp7 = insertelement <4 x i32> %tmp6, i32 %tmp3, i32 1 ; <<4 x i32>> [#uses=1] 183*9880d681SAndroid Build Coastguard Worker %tmp8 = insertelement <4 x i32> %tmp7, i32 %tmp4, i32 2 ; <<4 x i32>> [#uses=1] 184*9880d681SAndroid Build Coastguard Worker %tmp9 = insertelement <4 x i32> %tmp8, i32 %tmp5, i32 3 ; <<4 x i32>> [#uses=1] 185*9880d681SAndroid Build Coastguard Worker store <4 x i32> %tmp9, <4 x i32>* %A 186*9880d681SAndroid Build Coastguard Worker ret void 187*9880d681SAndroid Build Coastguard Worker} 188*9880d681SAndroid Build Coastguard Worker 189*9880d681SAndroid Build Coastguard Workerdefine void @tb_h(<16 x i8>* %A, <16 x i8>* %B) { 190*9880d681SAndroid Build Coastguard Workerentry: 191*9880d681SAndroid Build Coastguard Worker %tmp = load <16 x i8>, <16 x i8>* %A ; <<16 x i8>> [#uses=8] 192*9880d681SAndroid Build Coastguard Worker %tmp2 = load <16 x i8>, <16 x i8>* %B ; <<16 x i8>> [#uses=8] 193*9880d681SAndroid Build Coastguard Worker %tmp.upgrd.15 = extractelement <16 x i8> %tmp, i32 0 ; <i8> [#uses=1] 194*9880d681SAndroid Build Coastguard Worker %tmp3 = extractelement <16 x i8> %tmp2, i32 0 ; <i8> [#uses=1] 195*9880d681SAndroid Build Coastguard Worker %tmp4 = extractelement <16 x i8> %tmp, i32 1 ; <i8> [#uses=1] 196*9880d681SAndroid Build Coastguard Worker %tmp5 = extractelement <16 x i8> %tmp2, i32 1 ; <i8> [#uses=1] 197*9880d681SAndroid Build Coastguard Worker %tmp6 = extractelement <16 x i8> %tmp, i32 2 ; <i8> [#uses=1] 198*9880d681SAndroid Build Coastguard Worker %tmp7 = extractelement <16 x i8> %tmp2, i32 2 ; <i8> [#uses=1] 199*9880d681SAndroid Build Coastguard Worker %tmp8 = extractelement <16 x i8> %tmp, i32 3 ; <i8> [#uses=1] 200*9880d681SAndroid Build Coastguard Worker %tmp9 = extractelement <16 x i8> %tmp2, i32 3 ; <i8> [#uses=1] 201*9880d681SAndroid Build Coastguard Worker %tmp10 = extractelement <16 x i8> %tmp, i32 4 ; <i8> [#uses=1] 202*9880d681SAndroid Build Coastguard Worker %tmp11 = extractelement <16 x i8> %tmp2, i32 4 ; <i8> [#uses=1] 203*9880d681SAndroid Build Coastguard Worker %tmp12 = extractelement <16 x i8> %tmp, i32 5 ; <i8> [#uses=1] 204*9880d681SAndroid Build Coastguard Worker %tmp13 = extractelement <16 x i8> %tmp2, i32 5 ; <i8> [#uses=1] 205*9880d681SAndroid Build Coastguard Worker %tmp14 = extractelement <16 x i8> %tmp, i32 6 ; <i8> [#uses=1] 206*9880d681SAndroid Build Coastguard Worker %tmp15 = extractelement <16 x i8> %tmp2, i32 6 ; <i8> [#uses=1] 207*9880d681SAndroid Build Coastguard Worker %tmp16 = extractelement <16 x i8> %tmp, i32 7 ; <i8> [#uses=1] 208*9880d681SAndroid Build Coastguard Worker %tmp17 = extractelement <16 x i8> %tmp2, i32 7 ; <i8> [#uses=1] 209*9880d681SAndroid Build Coastguard Worker %tmp18 = insertelement <16 x i8> undef, i8 %tmp.upgrd.15, i32 0 ; <<16 x i8>> [#uses=1] 210*9880d681SAndroid Build Coastguard Worker %tmp19 = insertelement <16 x i8> %tmp18, i8 %tmp3, i32 1 ; <<16 x i8>> [#uses=1] 211*9880d681SAndroid Build Coastguard Worker %tmp20 = insertelement <16 x i8> %tmp19, i8 %tmp4, i32 2 ; <<16 x i8>> [#uses=1] 212*9880d681SAndroid Build Coastguard Worker %tmp21 = insertelement <16 x i8> %tmp20, i8 %tmp5, i32 3 ; <<16 x i8>> [#uses=1] 213*9880d681SAndroid Build Coastguard Worker %tmp22 = insertelement <16 x i8> %tmp21, i8 %tmp6, i32 4 ; <<16 x i8>> [#uses=1] 214*9880d681SAndroid Build Coastguard Worker %tmp23 = insertelement <16 x i8> %tmp22, i8 %tmp7, i32 5 ; <<16 x i8>> [#uses=1] 215*9880d681SAndroid Build Coastguard Worker %tmp24 = insertelement <16 x i8> %tmp23, i8 %tmp8, i32 6 ; <<16 x i8>> [#uses=1] 216*9880d681SAndroid Build Coastguard Worker %tmp25 = insertelement <16 x i8> %tmp24, i8 %tmp9, i32 7 ; <<16 x i8>> [#uses=1] 217*9880d681SAndroid Build Coastguard Worker %tmp26 = insertelement <16 x i8> %tmp25, i8 %tmp10, i32 8 ; <<16 x i8>> [#uses=1] 218*9880d681SAndroid Build Coastguard Worker %tmp27 = insertelement <16 x i8> %tmp26, i8 %tmp11, i32 9 ; <<16 x i8>> [#uses=1] 219*9880d681SAndroid Build Coastguard Worker %tmp28 = insertelement <16 x i8> %tmp27, i8 %tmp12, i32 10 ; <<16 x i8>> [#uses=1] 220*9880d681SAndroid Build Coastguard Worker %tmp29 = insertelement <16 x i8> %tmp28, i8 %tmp13, i32 11 ; <<16 x i8>> [#uses=1] 221*9880d681SAndroid Build Coastguard Worker %tmp30 = insertelement <16 x i8> %tmp29, i8 %tmp14, i32 12 ; <<16 x i8>> [#uses=1] 222*9880d681SAndroid Build Coastguard Worker %tmp31 = insertelement <16 x i8> %tmp30, i8 %tmp15, i32 13 ; <<16 x i8>> [#uses=1] 223*9880d681SAndroid Build Coastguard Worker %tmp32 = insertelement <16 x i8> %tmp31, i8 %tmp16, i32 14 ; <<16 x i8>> [#uses=1] 224*9880d681SAndroid Build Coastguard Worker %tmp33 = insertelement <16 x i8> %tmp32, i8 %tmp17, i32 15 ; <<16 x i8>> [#uses=1] 225*9880d681SAndroid Build Coastguard Worker store <16 x i8> %tmp33, <16 x i8>* %A 226*9880d681SAndroid Build Coastguard Worker ret void 227*9880d681SAndroid Build Coastguard Worker} 228*9880d681SAndroid Build Coastguard Worker 229*9880d681SAndroid Build Coastguard Workerdefine void @th_h(<8 x i16>* %A, <8 x i16>* %B) { 230*9880d681SAndroid Build Coastguard Workerentry: 231*9880d681SAndroid Build Coastguard Worker %tmp = load <8 x i16>, <8 x i16>* %A ; <<8 x i16>> [#uses=4] 232*9880d681SAndroid Build Coastguard Worker %tmp2 = load <8 x i16>, <8 x i16>* %B ; <<8 x i16>> [#uses=4] 233*9880d681SAndroid Build Coastguard Worker %tmp.upgrd.16 = extractelement <8 x i16> %tmp, i32 0 ; <i16> [#uses=1] 234*9880d681SAndroid Build Coastguard Worker %tmp3 = extractelement <8 x i16> %tmp2, i32 0 ; <i16> [#uses=1] 235*9880d681SAndroid Build Coastguard Worker %tmp4 = extractelement <8 x i16> %tmp, i32 1 ; <i16> [#uses=1] 236*9880d681SAndroid Build Coastguard Worker %tmp5 = extractelement <8 x i16> %tmp2, i32 1 ; <i16> [#uses=1] 237*9880d681SAndroid Build Coastguard Worker %tmp6 = extractelement <8 x i16> %tmp, i32 2 ; <i16> [#uses=1] 238*9880d681SAndroid Build Coastguard Worker %tmp7 = extractelement <8 x i16> %tmp2, i32 2 ; <i16> [#uses=1] 239*9880d681SAndroid Build Coastguard Worker %tmp8 = extractelement <8 x i16> %tmp, i32 3 ; <i16> [#uses=1] 240*9880d681SAndroid Build Coastguard Worker %tmp9 = extractelement <8 x i16> %tmp2, i32 3 ; <i16> [#uses=1] 241*9880d681SAndroid Build Coastguard Worker %tmp10 = insertelement <8 x i16> undef, i16 %tmp.upgrd.16, i32 0 ; <<8 x i16>> [#uses=1] 242*9880d681SAndroid Build Coastguard Worker %tmp11 = insertelement <8 x i16> %tmp10, i16 %tmp3, i32 1 ; <<8 x i16>> [#uses=1] 243*9880d681SAndroid Build Coastguard Worker %tmp12 = insertelement <8 x i16> %tmp11, i16 %tmp4, i32 2 ; <<8 x i16>> [#uses=1] 244*9880d681SAndroid Build Coastguard Worker %tmp13 = insertelement <8 x i16> %tmp12, i16 %tmp5, i32 3 ; <<8 x i16>> [#uses=1] 245*9880d681SAndroid Build Coastguard Worker %tmp14 = insertelement <8 x i16> %tmp13, i16 %tmp6, i32 4 ; <<8 x i16>> [#uses=1] 246*9880d681SAndroid Build Coastguard Worker %tmp15 = insertelement <8 x i16> %tmp14, i16 %tmp7, i32 5 ; <<8 x i16>> [#uses=1] 247*9880d681SAndroid Build Coastguard Worker %tmp16 = insertelement <8 x i16> %tmp15, i16 %tmp8, i32 6 ; <<8 x i16>> [#uses=1] 248*9880d681SAndroid Build Coastguard Worker %tmp17 = insertelement <8 x i16> %tmp16, i16 %tmp9, i32 7 ; <<8 x i16>> [#uses=1] 249*9880d681SAndroid Build Coastguard Worker store <8 x i16> %tmp17, <8 x i16>* %A 250*9880d681SAndroid Build Coastguard Worker ret void 251*9880d681SAndroid Build Coastguard Worker} 252*9880d681SAndroid Build Coastguard Worker 253*9880d681SAndroid Build Coastguard Workerdefine void @tw_h(<4 x i32>* %A, <4 x i32>* %B) { 254*9880d681SAndroid Build Coastguard Workerentry: 255*9880d681SAndroid Build Coastguard Worker %tmp = load <4 x i32>, <4 x i32>* %A ; <<4 x i32>> [#uses=2] 256*9880d681SAndroid Build Coastguard Worker %tmp2 = load <4 x i32>, <4 x i32>* %B ; <<4 x i32>> [#uses=2] 257*9880d681SAndroid Build Coastguard Worker %tmp.upgrd.17 = extractelement <4 x i32> %tmp2, i32 0 ; <i32> [#uses=1] 258*9880d681SAndroid Build Coastguard Worker %tmp3 = extractelement <4 x i32> %tmp, i32 0 ; <i32> [#uses=1] 259*9880d681SAndroid Build Coastguard Worker %tmp4 = extractelement <4 x i32> %tmp2, i32 1 ; <i32> [#uses=1] 260*9880d681SAndroid Build Coastguard Worker %tmp5 = extractelement <4 x i32> %tmp, i32 1 ; <i32> [#uses=1] 261*9880d681SAndroid Build Coastguard Worker %tmp6 = insertelement <4 x i32> undef, i32 %tmp.upgrd.17, i32 0 ; <<4 x i32>> [#uses=1] 262*9880d681SAndroid Build Coastguard Worker %tmp7 = insertelement <4 x i32> %tmp6, i32 %tmp3, i32 1 ; <<4 x i32>> [#uses=1] 263*9880d681SAndroid Build Coastguard Worker %tmp8 = insertelement <4 x i32> %tmp7, i32 %tmp4, i32 2 ; <<4 x i32>> [#uses=1] 264*9880d681SAndroid Build Coastguard Worker %tmp9 = insertelement <4 x i32> %tmp8, i32 %tmp5, i32 3 ; <<4 x i32>> [#uses=1] 265*9880d681SAndroid Build Coastguard Worker store <4 x i32> %tmp9, <4 x i32>* %A 266*9880d681SAndroid Build Coastguard Worker ret void 267*9880d681SAndroid Build Coastguard Worker} 268*9880d681SAndroid Build Coastguard Worker 269*9880d681SAndroid Build Coastguard Workerdefine void @tw_h_flop(<4 x i32>* %A, <4 x i32>* %B) { 270*9880d681SAndroid Build Coastguard Worker %tmp = load <4 x i32>, <4 x i32>* %A ; <<4 x i32>> [#uses=2] 271*9880d681SAndroid Build Coastguard Worker %tmp2 = load <4 x i32>, <4 x i32>* %B ; <<4 x i32>> [#uses=2] 272*9880d681SAndroid Build Coastguard Worker %tmp.upgrd.18 = extractelement <4 x i32> %tmp, i32 0 ; <i32> [#uses=1] 273*9880d681SAndroid Build Coastguard Worker %tmp3 = extractelement <4 x i32> %tmp2, i32 0 ; <i32> [#uses=1] 274*9880d681SAndroid Build Coastguard Worker %tmp4 = extractelement <4 x i32> %tmp, i32 1 ; <i32> [#uses=1] 275*9880d681SAndroid Build Coastguard Worker %tmp5 = extractelement <4 x i32> %tmp2, i32 1 ; <i32> [#uses=1] 276*9880d681SAndroid Build Coastguard Worker %tmp6 = insertelement <4 x i32> undef, i32 %tmp.upgrd.18, i32 0 ; <<4 x i32>> [#uses=1] 277*9880d681SAndroid Build Coastguard Worker %tmp7 = insertelement <4 x i32> %tmp6, i32 %tmp3, i32 1 ; <<4 x i32>> [#uses=1] 278*9880d681SAndroid Build Coastguard Worker %tmp8 = insertelement <4 x i32> %tmp7, i32 %tmp4, i32 2 ; <<4 x i32>> [#uses=1] 279*9880d681SAndroid Build Coastguard Worker %tmp9 = insertelement <4 x i32> %tmp8, i32 %tmp5, i32 3 ; <<4 x i32>> [#uses=1] 280*9880d681SAndroid Build Coastguard Worker store <4 x i32> %tmp9, <4 x i32>* %A 281*9880d681SAndroid Build Coastguard Worker ret void 282*9880d681SAndroid Build Coastguard Worker} 283*9880d681SAndroid Build Coastguard Worker 284*9880d681SAndroid Build Coastguard Workerdefine void @VMRG_UNARY_tb_l(<16 x i8>* %A, <16 x i8>* %B) { 285*9880d681SAndroid Build Coastguard Workerentry: 286*9880d681SAndroid Build Coastguard Worker %tmp = load <16 x i8>, <16 x i8>* %A ; <<16 x i8>> [#uses=16] 287*9880d681SAndroid Build Coastguard Worker %tmp.upgrd.19 = extractelement <16 x i8> %tmp, i32 8 ; <i8> [#uses=1] 288*9880d681SAndroid Build Coastguard Worker %tmp3 = extractelement <16 x i8> %tmp, i32 8 ; <i8> [#uses=1] 289*9880d681SAndroid Build Coastguard Worker %tmp4 = extractelement <16 x i8> %tmp, i32 9 ; <i8> [#uses=1] 290*9880d681SAndroid Build Coastguard Worker %tmp5 = extractelement <16 x i8> %tmp, i32 9 ; <i8> [#uses=1] 291*9880d681SAndroid Build Coastguard Worker %tmp6 = extractelement <16 x i8> %tmp, i32 10 ; <i8> [#uses=1] 292*9880d681SAndroid Build Coastguard Worker %tmp7 = extractelement <16 x i8> %tmp, i32 10 ; <i8> [#uses=1] 293*9880d681SAndroid Build Coastguard Worker %tmp8 = extractelement <16 x i8> %tmp, i32 11 ; <i8> [#uses=1] 294*9880d681SAndroid Build Coastguard Worker %tmp9 = extractelement <16 x i8> %tmp, i32 11 ; <i8> [#uses=1] 295*9880d681SAndroid Build Coastguard Worker %tmp10 = extractelement <16 x i8> %tmp, i32 12 ; <i8> [#uses=1] 296*9880d681SAndroid Build Coastguard Worker %tmp11 = extractelement <16 x i8> %tmp, i32 12 ; <i8> [#uses=1] 297*9880d681SAndroid Build Coastguard Worker %tmp12 = extractelement <16 x i8> %tmp, i32 13 ; <i8> [#uses=1] 298*9880d681SAndroid Build Coastguard Worker %tmp13 = extractelement <16 x i8> %tmp, i32 13 ; <i8> [#uses=1] 299*9880d681SAndroid Build Coastguard Worker %tmp14 = extractelement <16 x i8> %tmp, i32 14 ; <i8> [#uses=1] 300*9880d681SAndroid Build Coastguard Worker %tmp15 = extractelement <16 x i8> %tmp, i32 14 ; <i8> [#uses=1] 301*9880d681SAndroid Build Coastguard Worker %tmp16 = extractelement <16 x i8> %tmp, i32 15 ; <i8> [#uses=1] 302*9880d681SAndroid Build Coastguard Worker %tmp17 = extractelement <16 x i8> %tmp, i32 15 ; <i8> [#uses=1] 303*9880d681SAndroid Build Coastguard Worker %tmp18 = insertelement <16 x i8> undef, i8 %tmp.upgrd.19, i32 0 ; <<16 x i8>> [#uses=1] 304*9880d681SAndroid Build Coastguard Worker %tmp19 = insertelement <16 x i8> %tmp18, i8 %tmp3, i32 1 ; <<16 x i8>> [#uses=1] 305*9880d681SAndroid Build Coastguard Worker %tmp20 = insertelement <16 x i8> %tmp19, i8 %tmp4, i32 2 ; <<16 x i8>> [#uses=1] 306*9880d681SAndroid Build Coastguard Worker %tmp21 = insertelement <16 x i8> %tmp20, i8 %tmp5, i32 3 ; <<16 x i8>> [#uses=1] 307*9880d681SAndroid Build Coastguard Worker %tmp22 = insertelement <16 x i8> %tmp21, i8 %tmp6, i32 4 ; <<16 x i8>> [#uses=1] 308*9880d681SAndroid Build Coastguard Worker %tmp23 = insertelement <16 x i8> %tmp22, i8 %tmp7, i32 5 ; <<16 x i8>> [#uses=1] 309*9880d681SAndroid Build Coastguard Worker %tmp24 = insertelement <16 x i8> %tmp23, i8 %tmp8, i32 6 ; <<16 x i8>> [#uses=1] 310*9880d681SAndroid Build Coastguard Worker %tmp25 = insertelement <16 x i8> %tmp24, i8 %tmp9, i32 7 ; <<16 x i8>> [#uses=1] 311*9880d681SAndroid Build Coastguard Worker %tmp26 = insertelement <16 x i8> %tmp25, i8 %tmp10, i32 8 ; <<16 x i8>> [#uses=1] 312*9880d681SAndroid Build Coastguard Worker %tmp27 = insertelement <16 x i8> %tmp26, i8 %tmp11, i32 9 ; <<16 x i8>> [#uses=1] 313*9880d681SAndroid Build Coastguard Worker %tmp28 = insertelement <16 x i8> %tmp27, i8 %tmp12, i32 10 ; <<16 x i8>> [#uses=1] 314*9880d681SAndroid Build Coastguard Worker %tmp29 = insertelement <16 x i8> %tmp28, i8 %tmp13, i32 11 ; <<16 x i8>> [#uses=1] 315*9880d681SAndroid Build Coastguard Worker %tmp30 = insertelement <16 x i8> %tmp29, i8 %tmp14, i32 12 ; <<16 x i8>> [#uses=1] 316*9880d681SAndroid Build Coastguard Worker %tmp31 = insertelement <16 x i8> %tmp30, i8 %tmp15, i32 13 ; <<16 x i8>> [#uses=1] 317*9880d681SAndroid Build Coastguard Worker %tmp32 = insertelement <16 x i8> %tmp31, i8 %tmp16, i32 14 ; <<16 x i8>> [#uses=1] 318*9880d681SAndroid Build Coastguard Worker %tmp33 = insertelement <16 x i8> %tmp32, i8 %tmp17, i32 15 ; <<16 x i8>> [#uses=1] 319*9880d681SAndroid Build Coastguard Worker store <16 x i8> %tmp33, <16 x i8>* %A 320*9880d681SAndroid Build Coastguard Worker ret void 321*9880d681SAndroid Build Coastguard Worker} 322*9880d681SAndroid Build Coastguard Worker 323*9880d681SAndroid Build Coastguard Workerdefine void @VMRG_UNARY_th_l(<8 x i16>* %A, <8 x i16>* %B) { 324*9880d681SAndroid Build Coastguard Workerentry: 325*9880d681SAndroid Build Coastguard Worker %tmp = load <8 x i16>, <8 x i16>* %A ; <<8 x i16>> [#uses=8] 326*9880d681SAndroid Build Coastguard Worker %tmp.upgrd.20 = extractelement <8 x i16> %tmp, i32 4 ; <i16> [#uses=1] 327*9880d681SAndroid Build Coastguard Worker %tmp3 = extractelement <8 x i16> %tmp, i32 4 ; <i16> [#uses=1] 328*9880d681SAndroid Build Coastguard Worker %tmp4 = extractelement <8 x i16> %tmp, i32 5 ; <i16> [#uses=1] 329*9880d681SAndroid Build Coastguard Worker %tmp5 = extractelement <8 x i16> %tmp, i32 5 ; <i16> [#uses=1] 330*9880d681SAndroid Build Coastguard Worker %tmp6 = extractelement <8 x i16> %tmp, i32 6 ; <i16> [#uses=1] 331*9880d681SAndroid Build Coastguard Worker %tmp7 = extractelement <8 x i16> %tmp, i32 6 ; <i16> [#uses=1] 332*9880d681SAndroid Build Coastguard Worker %tmp8 = extractelement <8 x i16> %tmp, i32 7 ; <i16> [#uses=1] 333*9880d681SAndroid Build Coastguard Worker %tmp9 = extractelement <8 x i16> %tmp, i32 7 ; <i16> [#uses=1] 334*9880d681SAndroid Build Coastguard Worker %tmp10 = insertelement <8 x i16> undef, i16 %tmp.upgrd.20, i32 0 ; <<8 x i16>> [#uses=1] 335*9880d681SAndroid Build Coastguard Worker %tmp11 = insertelement <8 x i16> %tmp10, i16 %tmp3, i32 1 ; <<8 x i16>> [#uses=1] 336*9880d681SAndroid Build Coastguard Worker %tmp12 = insertelement <8 x i16> %tmp11, i16 %tmp4, i32 2 ; <<8 x i16>> [#uses=1] 337*9880d681SAndroid Build Coastguard Worker %tmp13 = insertelement <8 x i16> %tmp12, i16 %tmp5, i32 3 ; <<8 x i16>> [#uses=1] 338*9880d681SAndroid Build Coastguard Worker %tmp14 = insertelement <8 x i16> %tmp13, i16 %tmp6, i32 4 ; <<8 x i16>> [#uses=1] 339*9880d681SAndroid Build Coastguard Worker %tmp15 = insertelement <8 x i16> %tmp14, i16 %tmp7, i32 5 ; <<8 x i16>> [#uses=1] 340*9880d681SAndroid Build Coastguard Worker %tmp16 = insertelement <8 x i16> %tmp15, i16 %tmp8, i32 6 ; <<8 x i16>> [#uses=1] 341*9880d681SAndroid Build Coastguard Worker %tmp17 = insertelement <8 x i16> %tmp16, i16 %tmp9, i32 7 ; <<8 x i16>> [#uses=1] 342*9880d681SAndroid Build Coastguard Worker store <8 x i16> %tmp17, <8 x i16>* %A 343*9880d681SAndroid Build Coastguard Worker ret void 344*9880d681SAndroid Build Coastguard Worker} 345*9880d681SAndroid Build Coastguard Worker 346*9880d681SAndroid Build Coastguard Workerdefine void @VMRG_UNARY_tw_l(<4 x i32>* %A, <4 x i32>* %B) { 347*9880d681SAndroid Build Coastguard Workerentry: 348*9880d681SAndroid Build Coastguard Worker %tmp = load <4 x i32>, <4 x i32>* %A ; <<4 x i32>> [#uses=4] 349*9880d681SAndroid Build Coastguard Worker %tmp.upgrd.21 = extractelement <4 x i32> %tmp, i32 2 ; <i32> [#uses=1] 350*9880d681SAndroid Build Coastguard Worker %tmp3 = extractelement <4 x i32> %tmp, i32 2 ; <i32> [#uses=1] 351*9880d681SAndroid Build Coastguard Worker %tmp4 = extractelement <4 x i32> %tmp, i32 3 ; <i32> [#uses=1] 352*9880d681SAndroid Build Coastguard Worker %tmp5 = extractelement <4 x i32> %tmp, i32 3 ; <i32> [#uses=1] 353*9880d681SAndroid Build Coastguard Worker %tmp6 = insertelement <4 x i32> undef, i32 %tmp.upgrd.21, i32 0 ; <<4 x i32>> [#uses=1] 354*9880d681SAndroid Build Coastguard Worker %tmp7 = insertelement <4 x i32> %tmp6, i32 %tmp3, i32 1 ; <<4 x i32>> [#uses=1] 355*9880d681SAndroid Build Coastguard Worker %tmp8 = insertelement <4 x i32> %tmp7, i32 %tmp4, i32 2 ; <<4 x i32>> [#uses=1] 356*9880d681SAndroid Build Coastguard Worker %tmp9 = insertelement <4 x i32> %tmp8, i32 %tmp5, i32 3 ; <<4 x i32>> [#uses=1] 357*9880d681SAndroid Build Coastguard Worker store <4 x i32> %tmp9, <4 x i32>* %A 358*9880d681SAndroid Build Coastguard Worker ret void 359*9880d681SAndroid Build Coastguard Worker} 360*9880d681SAndroid Build Coastguard Worker 361*9880d681SAndroid Build Coastguard Workerdefine void @VMRG_UNARY_tb_h(<16 x i8>* %A, <16 x i8>* %B) { 362*9880d681SAndroid Build Coastguard Workerentry: 363*9880d681SAndroid Build Coastguard Worker %tmp = load <16 x i8>, <16 x i8>* %A ; <<16 x i8>> [#uses=16] 364*9880d681SAndroid Build Coastguard Worker %tmp.upgrd.22 = extractelement <16 x i8> %tmp, i32 0 ; <i8> [#uses=1] 365*9880d681SAndroid Build Coastguard Worker %tmp3 = extractelement <16 x i8> %tmp, i32 0 ; <i8> [#uses=1] 366*9880d681SAndroid Build Coastguard Worker %tmp4 = extractelement <16 x i8> %tmp, i32 1 ; <i8> [#uses=1] 367*9880d681SAndroid Build Coastguard Worker %tmp5 = extractelement <16 x i8> %tmp, i32 1 ; <i8> [#uses=1] 368*9880d681SAndroid Build Coastguard Worker %tmp6 = extractelement <16 x i8> %tmp, i32 2 ; <i8> [#uses=1] 369*9880d681SAndroid Build Coastguard Worker %tmp7 = extractelement <16 x i8> %tmp, i32 2 ; <i8> [#uses=1] 370*9880d681SAndroid Build Coastguard Worker %tmp8 = extractelement <16 x i8> %tmp, i32 3 ; <i8> [#uses=1] 371*9880d681SAndroid Build Coastguard Worker %tmp9 = extractelement <16 x i8> %tmp, i32 3 ; <i8> [#uses=1] 372*9880d681SAndroid Build Coastguard Worker %tmp10 = extractelement <16 x i8> %tmp, i32 4 ; <i8> [#uses=1] 373*9880d681SAndroid Build Coastguard Worker %tmp11 = extractelement <16 x i8> %tmp, i32 4 ; <i8> [#uses=1] 374*9880d681SAndroid Build Coastguard Worker %tmp12 = extractelement <16 x i8> %tmp, i32 5 ; <i8> [#uses=1] 375*9880d681SAndroid Build Coastguard Worker %tmp13 = extractelement <16 x i8> %tmp, i32 5 ; <i8> [#uses=1] 376*9880d681SAndroid Build Coastguard Worker %tmp14 = extractelement <16 x i8> %tmp, i32 6 ; <i8> [#uses=1] 377*9880d681SAndroid Build Coastguard Worker %tmp15 = extractelement <16 x i8> %tmp, i32 6 ; <i8> [#uses=1] 378*9880d681SAndroid Build Coastguard Worker %tmp16 = extractelement <16 x i8> %tmp, i32 7 ; <i8> [#uses=1] 379*9880d681SAndroid Build Coastguard Worker %tmp17 = extractelement <16 x i8> %tmp, i32 7 ; <i8> [#uses=1] 380*9880d681SAndroid Build Coastguard Worker %tmp18 = insertelement <16 x i8> undef, i8 %tmp.upgrd.22, i32 0 ; <<16 x i8>> [#uses=1] 381*9880d681SAndroid Build Coastguard Worker %tmp19 = insertelement <16 x i8> %tmp18, i8 %tmp3, i32 1 ; <<16 x i8>> [#uses=1] 382*9880d681SAndroid Build Coastguard Worker %tmp20 = insertelement <16 x i8> %tmp19, i8 %tmp4, i32 2 ; <<16 x i8>> [#uses=1] 383*9880d681SAndroid Build Coastguard Worker %tmp21 = insertelement <16 x i8> %tmp20, i8 %tmp5, i32 3 ; <<16 x i8>> [#uses=1] 384*9880d681SAndroid Build Coastguard Worker %tmp22 = insertelement <16 x i8> %tmp21, i8 %tmp6, i32 4 ; <<16 x i8>> [#uses=1] 385*9880d681SAndroid Build Coastguard Worker %tmp23 = insertelement <16 x i8> %tmp22, i8 %tmp7, i32 5 ; <<16 x i8>> [#uses=1] 386*9880d681SAndroid Build Coastguard Worker %tmp24 = insertelement <16 x i8> %tmp23, i8 %tmp8, i32 6 ; <<16 x i8>> [#uses=1] 387*9880d681SAndroid Build Coastguard Worker %tmp25 = insertelement <16 x i8> %tmp24, i8 %tmp9, i32 7 ; <<16 x i8>> [#uses=1] 388*9880d681SAndroid Build Coastguard Worker %tmp26 = insertelement <16 x i8> %tmp25, i8 %tmp10, i32 8 ; <<16 x i8>> [#uses=1] 389*9880d681SAndroid Build Coastguard Worker %tmp27 = insertelement <16 x i8> %tmp26, i8 %tmp11, i32 9 ; <<16 x i8>> [#uses=1] 390*9880d681SAndroid Build Coastguard Worker %tmp28 = insertelement <16 x i8> %tmp27, i8 %tmp12, i32 10 ; <<16 x i8>> [#uses=1] 391*9880d681SAndroid Build Coastguard Worker %tmp29 = insertelement <16 x i8> %tmp28, i8 %tmp13, i32 11 ; <<16 x i8>> [#uses=1] 392*9880d681SAndroid Build Coastguard Worker %tmp30 = insertelement <16 x i8> %tmp29, i8 %tmp14, i32 12 ; <<16 x i8>> [#uses=1] 393*9880d681SAndroid Build Coastguard Worker %tmp31 = insertelement <16 x i8> %tmp30, i8 %tmp15, i32 13 ; <<16 x i8>> [#uses=1] 394*9880d681SAndroid Build Coastguard Worker %tmp32 = insertelement <16 x i8> %tmp31, i8 %tmp16, i32 14 ; <<16 x i8>> [#uses=1] 395*9880d681SAndroid Build Coastguard Worker %tmp33 = insertelement <16 x i8> %tmp32, i8 %tmp17, i32 15 ; <<16 x i8>> [#uses=1] 396*9880d681SAndroid Build Coastguard Worker store <16 x i8> %tmp33, <16 x i8>* %A 397*9880d681SAndroid Build Coastguard Worker ret void 398*9880d681SAndroid Build Coastguard Worker} 399*9880d681SAndroid Build Coastguard Worker 400*9880d681SAndroid Build Coastguard Workerdefine void @VMRG_UNARY_th_h(<8 x i16>* %A, <8 x i16>* %B) { 401*9880d681SAndroid Build Coastguard Workerentry: 402*9880d681SAndroid Build Coastguard Worker %tmp = load <8 x i16>, <8 x i16>* %A ; <<8 x i16>> [#uses=8] 403*9880d681SAndroid Build Coastguard Worker %tmp.upgrd.23 = extractelement <8 x i16> %tmp, i32 0 ; <i16> [#uses=1] 404*9880d681SAndroid Build Coastguard Worker %tmp3 = extractelement <8 x i16> %tmp, i32 0 ; <i16> [#uses=1] 405*9880d681SAndroid Build Coastguard Worker %tmp4 = extractelement <8 x i16> %tmp, i32 1 ; <i16> [#uses=1] 406*9880d681SAndroid Build Coastguard Worker %tmp5 = extractelement <8 x i16> %tmp, i32 1 ; <i16> [#uses=1] 407*9880d681SAndroid Build Coastguard Worker %tmp6 = extractelement <8 x i16> %tmp, i32 2 ; <i16> [#uses=1] 408*9880d681SAndroid Build Coastguard Worker %tmp7 = extractelement <8 x i16> %tmp, i32 2 ; <i16> [#uses=1] 409*9880d681SAndroid Build Coastguard Worker %tmp8 = extractelement <8 x i16> %tmp, i32 3 ; <i16> [#uses=1] 410*9880d681SAndroid Build Coastguard Worker %tmp9 = extractelement <8 x i16> %tmp, i32 3 ; <i16> [#uses=1] 411*9880d681SAndroid Build Coastguard Worker %tmp10 = insertelement <8 x i16> undef, i16 %tmp.upgrd.23, i32 0 ; <<8 x i16>> [#uses=1] 412*9880d681SAndroid Build Coastguard Worker %tmp11 = insertelement <8 x i16> %tmp10, i16 %tmp3, i32 1 ; <<8 x i16>> [#uses=1] 413*9880d681SAndroid Build Coastguard Worker %tmp12 = insertelement <8 x i16> %tmp11, i16 %tmp4, i32 2 ; <<8 x i16>> [#uses=1] 414*9880d681SAndroid Build Coastguard Worker %tmp13 = insertelement <8 x i16> %tmp12, i16 %tmp5, i32 3 ; <<8 x i16>> [#uses=1] 415*9880d681SAndroid Build Coastguard Worker %tmp14 = insertelement <8 x i16> %tmp13, i16 %tmp6, i32 4 ; <<8 x i16>> [#uses=1] 416*9880d681SAndroid Build Coastguard Worker %tmp15 = insertelement <8 x i16> %tmp14, i16 %tmp7, i32 5 ; <<8 x i16>> [#uses=1] 417*9880d681SAndroid Build Coastguard Worker %tmp16 = insertelement <8 x i16> %tmp15, i16 %tmp8, i32 6 ; <<8 x i16>> [#uses=1] 418*9880d681SAndroid Build Coastguard Worker %tmp17 = insertelement <8 x i16> %tmp16, i16 %tmp9, i32 7 ; <<8 x i16>> [#uses=1] 419*9880d681SAndroid Build Coastguard Worker store <8 x i16> %tmp17, <8 x i16>* %A 420*9880d681SAndroid Build Coastguard Worker ret void 421*9880d681SAndroid Build Coastguard Worker} 422*9880d681SAndroid Build Coastguard Worker 423*9880d681SAndroid Build Coastguard Workerdefine void @VMRG_UNARY_tw_h(<4 x i32>* %A, <4 x i32>* %B) { 424*9880d681SAndroid Build Coastguard Workerentry: 425*9880d681SAndroid Build Coastguard Worker %tmp = load <4 x i32>, <4 x i32>* %A ; <<4 x i32>> [#uses=4] 426*9880d681SAndroid Build Coastguard Worker %tmp.upgrd.24 = extractelement <4 x i32> %tmp, i32 0 ; <i32> [#uses=1] 427*9880d681SAndroid Build Coastguard Worker %tmp3 = extractelement <4 x i32> %tmp, i32 0 ; <i32> [#uses=1] 428*9880d681SAndroid Build Coastguard Worker %tmp4 = extractelement <4 x i32> %tmp, i32 1 ; <i32> [#uses=1] 429*9880d681SAndroid Build Coastguard Worker %tmp5 = extractelement <4 x i32> %tmp, i32 1 ; <i32> [#uses=1] 430*9880d681SAndroid Build Coastguard Worker %tmp6 = insertelement <4 x i32> undef, i32 %tmp.upgrd.24, i32 0 ; <<4 x i32>> [#uses=1] 431*9880d681SAndroid Build Coastguard Worker %tmp7 = insertelement <4 x i32> %tmp6, i32 %tmp3, i32 1 ; <<4 x i32>> [#uses=1] 432*9880d681SAndroid Build Coastguard Worker %tmp8 = insertelement <4 x i32> %tmp7, i32 %tmp4, i32 2 ; <<4 x i32>> [#uses=1] 433*9880d681SAndroid Build Coastguard Worker %tmp9 = insertelement <4 x i32> %tmp8, i32 %tmp5, i32 3 ; <<4 x i32>> [#uses=1] 434*9880d681SAndroid Build Coastguard Worker store <4 x i32> %tmp9, <4 x i32>* %A 435*9880d681SAndroid Build Coastguard Worker ret void 436*9880d681SAndroid Build Coastguard Worker} 437*9880d681SAndroid Build Coastguard Worker 438*9880d681SAndroid Build Coastguard Workerdefine void @VPCKUHUM_unary(<8 x i16>* %A, <8 x i16>* %B) { 439*9880d681SAndroid Build Coastguard Workerentry: 440*9880d681SAndroid Build Coastguard Worker %tmp = load <8 x i16>, <8 x i16>* %A ; <<8 x i16>> [#uses=2] 441*9880d681SAndroid Build Coastguard Worker %tmp.upgrd.25 = bitcast <8 x i16> %tmp to <16 x i8> ; <<16 x i8>> [#uses=8] 442*9880d681SAndroid Build Coastguard Worker %tmp3 = bitcast <8 x i16> %tmp to <16 x i8> ; <<16 x i8>> [#uses=8] 443*9880d681SAndroid Build Coastguard Worker %tmp.upgrd.26 = extractelement <16 x i8> %tmp.upgrd.25, i32 1 ; <i8> [#uses=1] 444*9880d681SAndroid Build Coastguard Worker %tmp4 = extractelement <16 x i8> %tmp.upgrd.25, i32 3 ; <i8> [#uses=1] 445*9880d681SAndroid Build Coastguard Worker %tmp5 = extractelement <16 x i8> %tmp.upgrd.25, i32 5 ; <i8> [#uses=1] 446*9880d681SAndroid Build Coastguard Worker %tmp6 = extractelement <16 x i8> %tmp.upgrd.25, i32 7 ; <i8> [#uses=1] 447*9880d681SAndroid Build Coastguard Worker %tmp7 = extractelement <16 x i8> %tmp.upgrd.25, i32 9 ; <i8> [#uses=1] 448*9880d681SAndroid Build Coastguard Worker %tmp8 = extractelement <16 x i8> %tmp.upgrd.25, i32 11 ; <i8> [#uses=1] 449*9880d681SAndroid Build Coastguard Worker %tmp9 = extractelement <16 x i8> %tmp.upgrd.25, i32 13 ; <i8> [#uses=1] 450*9880d681SAndroid Build Coastguard Worker %tmp10 = extractelement <16 x i8> %tmp.upgrd.25, i32 15 ; <i8> [#uses=1] 451*9880d681SAndroid Build Coastguard Worker %tmp11 = extractelement <16 x i8> %tmp3, i32 1 ; <i8> [#uses=1] 452*9880d681SAndroid Build Coastguard Worker %tmp12 = extractelement <16 x i8> %tmp3, i32 3 ; <i8> [#uses=1] 453*9880d681SAndroid Build Coastguard Worker %tmp13 = extractelement <16 x i8> %tmp3, i32 5 ; <i8> [#uses=1] 454*9880d681SAndroid Build Coastguard Worker %tmp14 = extractelement <16 x i8> %tmp3, i32 7 ; <i8> [#uses=1] 455*9880d681SAndroid Build Coastguard Worker %tmp15 = extractelement <16 x i8> %tmp3, i32 9 ; <i8> [#uses=1] 456*9880d681SAndroid Build Coastguard Worker %tmp16 = extractelement <16 x i8> %tmp3, i32 11 ; <i8> [#uses=1] 457*9880d681SAndroid Build Coastguard Worker %tmp17 = extractelement <16 x i8> %tmp3, i32 13 ; <i8> [#uses=1] 458*9880d681SAndroid Build Coastguard Worker %tmp18 = extractelement <16 x i8> %tmp3, i32 15 ; <i8> [#uses=1] 459*9880d681SAndroid Build Coastguard Worker %tmp19 = insertelement <16 x i8> undef, i8 %tmp.upgrd.26, i32 0 ; <<16 x i8>> [#uses=1] 460*9880d681SAndroid Build Coastguard Worker %tmp20 = insertelement <16 x i8> %tmp19, i8 %tmp4, i32 1 ; <<16 x i8>> [#uses=1] 461*9880d681SAndroid Build Coastguard Worker %tmp21 = insertelement <16 x i8> %tmp20, i8 %tmp5, i32 2 ; <<16 x i8>> [#uses=1] 462*9880d681SAndroid Build Coastguard Worker %tmp22 = insertelement <16 x i8> %tmp21, i8 %tmp6, i32 3 ; <<16 x i8>> [#uses=1] 463*9880d681SAndroid Build Coastguard Worker %tmp23 = insertelement <16 x i8> %tmp22, i8 %tmp7, i32 4 ; <<16 x i8>> [#uses=1] 464*9880d681SAndroid Build Coastguard Worker %tmp24 = insertelement <16 x i8> %tmp23, i8 %tmp8, i32 5 ; <<16 x i8>> [#uses=1] 465*9880d681SAndroid Build Coastguard Worker %tmp25 = insertelement <16 x i8> %tmp24, i8 %tmp9, i32 6 ; <<16 x i8>> [#uses=1] 466*9880d681SAndroid Build Coastguard Worker %tmp26 = insertelement <16 x i8> %tmp25, i8 %tmp10, i32 7 ; <<16 x i8>> [#uses=1] 467*9880d681SAndroid Build Coastguard Worker %tmp27 = insertelement <16 x i8> %tmp26, i8 %tmp11, i32 8 ; <<16 x i8>> [#uses=1] 468*9880d681SAndroid Build Coastguard Worker %tmp28 = insertelement <16 x i8> %tmp27, i8 %tmp12, i32 9 ; <<16 x i8>> [#uses=1] 469*9880d681SAndroid Build Coastguard Worker %tmp29 = insertelement <16 x i8> %tmp28, i8 %tmp13, i32 10 ; <<16 x i8>> [#uses=1] 470*9880d681SAndroid Build Coastguard Worker %tmp30 = insertelement <16 x i8> %tmp29, i8 %tmp14, i32 11 ; <<16 x i8>> [#uses=1] 471*9880d681SAndroid Build Coastguard Worker %tmp31 = insertelement <16 x i8> %tmp30, i8 %tmp15, i32 12 ; <<16 x i8>> [#uses=1] 472*9880d681SAndroid Build Coastguard Worker %tmp32 = insertelement <16 x i8> %tmp31, i8 %tmp16, i32 13 ; <<16 x i8>> [#uses=1] 473*9880d681SAndroid Build Coastguard Worker %tmp33 = insertelement <16 x i8> %tmp32, i8 %tmp17, i32 14 ; <<16 x i8>> [#uses=1] 474*9880d681SAndroid Build Coastguard Worker %tmp34 = insertelement <16 x i8> %tmp33, i8 %tmp18, i32 15 ; <<16 x i8>> [#uses=1] 475*9880d681SAndroid Build Coastguard Worker %tmp34.upgrd.27 = bitcast <16 x i8> %tmp34 to <8 x i16> ; <<8 x i16>> [#uses=1] 476*9880d681SAndroid Build Coastguard Worker store <8 x i16> %tmp34.upgrd.27, <8 x i16>* %A 477*9880d681SAndroid Build Coastguard Worker ret void 478*9880d681SAndroid Build Coastguard Worker} 479*9880d681SAndroid Build Coastguard Worker 480*9880d681SAndroid Build Coastguard Workerdefine void @VPCKUWUM_unary(<4 x i32>* %A, <4 x i32>* %B) { 481*9880d681SAndroid Build Coastguard Workerentry: 482*9880d681SAndroid Build Coastguard Worker %tmp = load <4 x i32>, <4 x i32>* %A ; <<4 x i32>> [#uses=2] 483*9880d681SAndroid Build Coastguard Worker %tmp.upgrd.28 = bitcast <4 x i32> %tmp to <8 x i16> ; <<8 x i16>> [#uses=4] 484*9880d681SAndroid Build Coastguard Worker %tmp3 = bitcast <4 x i32> %tmp to <8 x i16> ; <<8 x i16>> [#uses=4] 485*9880d681SAndroid Build Coastguard Worker %tmp.upgrd.29 = extractelement <8 x i16> %tmp.upgrd.28, i32 1 ; <i16> [#uses=1] 486*9880d681SAndroid Build Coastguard Worker %tmp4 = extractelement <8 x i16> %tmp.upgrd.28, i32 3 ; <i16> [#uses=1] 487*9880d681SAndroid Build Coastguard Worker %tmp5 = extractelement <8 x i16> %tmp.upgrd.28, i32 5 ; <i16> [#uses=1] 488*9880d681SAndroid Build Coastguard Worker %tmp6 = extractelement <8 x i16> %tmp.upgrd.28, i32 7 ; <i16> [#uses=1] 489*9880d681SAndroid Build Coastguard Worker %tmp7 = extractelement <8 x i16> %tmp3, i32 1 ; <i16> [#uses=1] 490*9880d681SAndroid Build Coastguard Worker %tmp8 = extractelement <8 x i16> %tmp3, i32 3 ; <i16> [#uses=1] 491*9880d681SAndroid Build Coastguard Worker %tmp9 = extractelement <8 x i16> %tmp3, i32 5 ; <i16> [#uses=1] 492*9880d681SAndroid Build Coastguard Worker %tmp10 = extractelement <8 x i16> %tmp3, i32 7 ; <i16> [#uses=1] 493*9880d681SAndroid Build Coastguard Worker %tmp11 = insertelement <8 x i16> undef, i16 %tmp.upgrd.29, i32 0 ; <<8 x i16>> [#uses=1] 494*9880d681SAndroid Build Coastguard Worker %tmp12 = insertelement <8 x i16> %tmp11, i16 %tmp4, i32 1 ; <<8 x i16>> [#uses=1] 495*9880d681SAndroid Build Coastguard Worker %tmp13 = insertelement <8 x i16> %tmp12, i16 %tmp5, i32 2 ; <<8 x i16>> [#uses=1] 496*9880d681SAndroid Build Coastguard Worker %tmp14 = insertelement <8 x i16> %tmp13, i16 %tmp6, i32 3 ; <<8 x i16>> [#uses=1] 497*9880d681SAndroid Build Coastguard Worker %tmp15 = insertelement <8 x i16> %tmp14, i16 %tmp7, i32 4 ; <<8 x i16>> [#uses=1] 498*9880d681SAndroid Build Coastguard Worker %tmp16 = insertelement <8 x i16> %tmp15, i16 %tmp8, i32 5 ; <<8 x i16>> [#uses=1] 499*9880d681SAndroid Build Coastguard Worker %tmp17 = insertelement <8 x i16> %tmp16, i16 %tmp9, i32 6 ; <<8 x i16>> [#uses=1] 500*9880d681SAndroid Build Coastguard Worker %tmp18 = insertelement <8 x i16> %tmp17, i16 %tmp10, i32 7 ; <<8 x i16>> [#uses=1] 501*9880d681SAndroid Build Coastguard Worker %tmp18.upgrd.30 = bitcast <8 x i16> %tmp18 to <4 x i32> ; <<4 x i32>> [#uses=1] 502*9880d681SAndroid Build Coastguard Worker store <4 x i32> %tmp18.upgrd.30, <4 x i32>* %A 503*9880d681SAndroid Build Coastguard Worker ret void 504*9880d681SAndroid Build Coastguard Worker} 505