xref: /aosp_15_r20/external/llvm/test/CodeGen/PowerPC/vec_shuffle.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
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