xref: /aosp_15_r20/external/llvm/test/CodeGen/PowerPC/p9-xxinsertw-xxextractuw.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mcpu=pwr9 -mtriple=powerpc64le-unknown-linux-gnu \
2*9880d681SAndroid Build Coastguard Worker; RUN:   -verify-machineinstrs < %s | FileCheck %s
3*9880d681SAndroid Build Coastguard Worker; RUN: llc -mcpu=pwr9 -mtriple=powerpc64-unknown-linux-gnu \
4*9880d681SAndroid Build Coastguard Worker; RUN:   -verify-machineinstrs < %s | FileCheck %s --check-prefix=CHECK-BE
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj0ELj0EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) {
7*9880d681SAndroid Build Coastguard Workerentry:
8*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj0EDv4_fET1_S1_S1_
9*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2
10*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12
11*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj0EDv4_fET1_S1_S1_
12*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3
13*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0
14*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 4, i32 1, i32 2, i32 3>
15*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
16*9880d681SAndroid Build Coastguard Worker}
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj0ELj1EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) {
19*9880d681SAndroid Build Coastguard Workerentry:
20*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj1EDv4_fET1_S1_S1_
21*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1
22*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12
23*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj1EDv4_fET1_S1_S1_
24*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi
25*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 0
26*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 5, i32 1, i32 2, i32 3>
27*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
28*9880d681SAndroid Build Coastguard Worker}
29*9880d681SAndroid Build Coastguard Worker
30*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj0ELj2EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) {
31*9880d681SAndroid Build Coastguard Workerentry:
32*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj2EDv4_fET1_S1_S1_
33*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi
34*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 12
35*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj2EDv4_fET1_S1_S1_
36*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1
37*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0
38*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 6, i32 1, i32 2, i32 3>
39*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
40*9880d681SAndroid Build Coastguard Worker}
41*9880d681SAndroid Build Coastguard Worker
42*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj0ELj3EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) {
43*9880d681SAndroid Build Coastguard Workerentry:
44*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj3EDv4_fET1_S1_S1_
45*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3
46*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12
47*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj3EDv4_fET1_S1_S1_
48*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2
49*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0
50*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 7, i32 1, i32 2, i32 3>
51*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
52*9880d681SAndroid Build Coastguard Worker}
53*9880d681SAndroid Build Coastguard Worker
54*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj1ELj0EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) {
55*9880d681SAndroid Build Coastguard Workerentry:
56*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj0EDv4_fET1_S1_S1_
57*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2
58*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8
59*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj0EDv4_fET1_S1_S1_
60*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3
61*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4
62*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 4, i32 2, i32 3>
63*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
64*9880d681SAndroid Build Coastguard Worker}
65*9880d681SAndroid Build Coastguard Worker
66*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj1ELj1EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) {
67*9880d681SAndroid Build Coastguard Workerentry:
68*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj1EDv4_fET1_S1_S1_
69*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1
70*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8
71*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj1EDv4_fET1_S1_S1_
72*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi
73*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 4
74*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 5, i32 2, i32 3>
75*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
76*9880d681SAndroid Build Coastguard Worker}
77*9880d681SAndroid Build Coastguard Worker
78*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj1ELj2EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) {
79*9880d681SAndroid Build Coastguard Workerentry:
80*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj2EDv4_fET1_S1_S1_
81*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi
82*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 8
83*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj2EDv4_fET1_S1_S1_
84*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1
85*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4
86*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 6, i32 2, i32 3>
87*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
88*9880d681SAndroid Build Coastguard Worker}
89*9880d681SAndroid Build Coastguard Worker
90*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj1ELj3EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) {
91*9880d681SAndroid Build Coastguard Workerentry:
92*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj3EDv4_fET1_S1_S1_
93*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3
94*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8
95*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj3EDv4_fET1_S1_S1_
96*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2
97*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4
98*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 7, i32 2, i32 3>
99*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
100*9880d681SAndroid Build Coastguard Worker}
101*9880d681SAndroid Build Coastguard Worker
102*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj2ELj0EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) {
103*9880d681SAndroid Build Coastguard Workerentry:
104*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj0EDv4_fET1_S1_S1_
105*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2
106*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4
107*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj0EDv4_fET1_S1_S1_
108*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3
109*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8
110*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 1, i32 4, i32 3>
111*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
112*9880d681SAndroid Build Coastguard Worker}
113*9880d681SAndroid Build Coastguard Worker
114*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj2ELj1EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) {
115*9880d681SAndroid Build Coastguard Workerentry:
116*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj1EDv4_fET1_S1_S1_
117*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1
118*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4
119*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj1EDv4_fET1_S1_S1_
120*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi
121*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 8
122*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 1, i32 5, i32 3>
123*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
124*9880d681SAndroid Build Coastguard Worker}
125*9880d681SAndroid Build Coastguard Worker
126*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj2ELj2EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) {
127*9880d681SAndroid Build Coastguard Workerentry:
128*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj2EDv4_fET1_S1_S1_
129*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi
130*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 4
131*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj2EDv4_fET1_S1_S1_
132*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1
133*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8
134*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 1, i32 6, i32 3>
135*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
136*9880d681SAndroid Build Coastguard Worker}
137*9880d681SAndroid Build Coastguard Worker
138*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj2ELj3EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) {
139*9880d681SAndroid Build Coastguard Workerentry:
140*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj3EDv4_fET1_S1_S1_
141*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3
142*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4
143*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj3EDv4_fET1_S1_S1_
144*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2
145*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8
146*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 1, i32 7, i32 3>
147*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
148*9880d681SAndroid Build Coastguard Worker}
149*9880d681SAndroid Build Coastguard Worker
150*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj3ELj0EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) {
151*9880d681SAndroid Build Coastguard Workerentry:
152*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj0EDv4_fET1_S1_S1_
153*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2
154*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0
155*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj0EDv4_fET1_S1_S1_
156*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3
157*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12
158*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 1, i32 2, i32 4>
159*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
160*9880d681SAndroid Build Coastguard Worker}
161*9880d681SAndroid Build Coastguard Worker
162*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj3ELj1EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) {
163*9880d681SAndroid Build Coastguard Workerentry:
164*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj1EDv4_fET1_S1_S1_
165*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1
166*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0
167*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj1EDv4_fET1_S1_S1_
168*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi
169*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 12
170*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 1, i32 2, i32 5>
171*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
172*9880d681SAndroid Build Coastguard Worker}
173*9880d681SAndroid Build Coastguard Worker
174*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj3ELj2EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) {
175*9880d681SAndroid Build Coastguard Workerentry:
176*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj2EDv4_fET1_S1_S1_
177*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi
178*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 0
179*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj2EDv4_fET1_S1_S1_
180*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1
181*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12
182*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 1, i32 2, i32 6>
183*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
184*9880d681SAndroid Build Coastguard Worker}
185*9880d681SAndroid Build Coastguard Worker
186*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj3ELj3EDv4_fET1_S1_S1_(<4 x float> %a, <4 x float> %b) {
187*9880d681SAndroid Build Coastguard Workerentry:
188*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj3EDv4_fET1_S1_S1_
189*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3
190*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0
191*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj3EDv4_fET1_S1_S1_
192*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2
193*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12
194*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 1, i32 2, i32 7>
195*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
196*9880d681SAndroid Build Coastguard Worker}
197*9880d681SAndroid Build Coastguard Worker
198*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj0ELj0EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) {
199*9880d681SAndroid Build Coastguard Workerentry:
200*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj0EDv4_jET1_S1_S1_
201*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2
202*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12
203*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj0EDv4_jET1_S1_S1_
204*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3
205*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0
206*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 4, i32 1, i32 2, i32 3>
207*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
208*9880d681SAndroid Build Coastguard Worker}
209*9880d681SAndroid Build Coastguard Worker
210*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj0ELj1EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) {
211*9880d681SAndroid Build Coastguard Workerentry:
212*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj1EDv4_jET1_S1_S1_
213*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1
214*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12
215*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj1EDv4_jET1_S1_S1_
216*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi
217*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 0
218*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 5, i32 1, i32 2, i32 3>
219*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
220*9880d681SAndroid Build Coastguard Worker}
221*9880d681SAndroid Build Coastguard Worker
222*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj0ELj2EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) {
223*9880d681SAndroid Build Coastguard Workerentry:
224*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj2EDv4_jET1_S1_S1_
225*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi
226*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 12
227*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj2EDv4_jET1_S1_S1_
228*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1
229*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0
230*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 6, i32 1, i32 2, i32 3>
231*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
232*9880d681SAndroid Build Coastguard Worker}
233*9880d681SAndroid Build Coastguard Worker
234*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj0ELj3EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) {
235*9880d681SAndroid Build Coastguard Workerentry:
236*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj3EDv4_jET1_S1_S1_
237*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3
238*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12
239*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj3EDv4_jET1_S1_S1_
240*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2
241*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0
242*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 7, i32 1, i32 2, i32 3>
243*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
244*9880d681SAndroid Build Coastguard Worker}
245*9880d681SAndroid Build Coastguard Worker
246*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj1ELj0EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) {
247*9880d681SAndroid Build Coastguard Workerentry:
248*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj0EDv4_jET1_S1_S1_
249*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2
250*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8
251*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj0EDv4_jET1_S1_S1_
252*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3
253*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4
254*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 4, i32 2, i32 3>
255*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
256*9880d681SAndroid Build Coastguard Worker}
257*9880d681SAndroid Build Coastguard Worker
258*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj1ELj1EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) {
259*9880d681SAndroid Build Coastguard Workerentry:
260*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj1EDv4_jET1_S1_S1_
261*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1
262*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8
263*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj1EDv4_jET1_S1_S1_
264*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi
265*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 4
266*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 5, i32 2, i32 3>
267*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
268*9880d681SAndroid Build Coastguard Worker}
269*9880d681SAndroid Build Coastguard Worker
270*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj1ELj2EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) {
271*9880d681SAndroid Build Coastguard Workerentry:
272*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj2EDv4_jET1_S1_S1_
273*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi
274*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 8
275*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj2EDv4_jET1_S1_S1_
276*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1
277*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4
278*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 6, i32 2, i32 3>
279*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
280*9880d681SAndroid Build Coastguard Worker}
281*9880d681SAndroid Build Coastguard Worker
282*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj1ELj3EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) {
283*9880d681SAndroid Build Coastguard Workerentry:
284*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj3EDv4_jET1_S1_S1_
285*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3
286*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8
287*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj3EDv4_jET1_S1_S1_
288*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2
289*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4
290*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 7, i32 2, i32 3>
291*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
292*9880d681SAndroid Build Coastguard Worker}
293*9880d681SAndroid Build Coastguard Worker
294*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj2ELj0EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) {
295*9880d681SAndroid Build Coastguard Workerentry:
296*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj0EDv4_jET1_S1_S1_
297*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2
298*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4
299*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj0EDv4_jET1_S1_S1_
300*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3
301*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8
302*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 1, i32 4, i32 3>
303*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
304*9880d681SAndroid Build Coastguard Worker}
305*9880d681SAndroid Build Coastguard Worker
306*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj2ELj1EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) {
307*9880d681SAndroid Build Coastguard Workerentry:
308*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj1EDv4_jET1_S1_S1_
309*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1
310*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4
311*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj1EDv4_jET1_S1_S1_
312*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi
313*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 8
314*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 1, i32 5, i32 3>
315*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
316*9880d681SAndroid Build Coastguard Worker}
317*9880d681SAndroid Build Coastguard Worker
318*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj2ELj2EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) {
319*9880d681SAndroid Build Coastguard Workerentry:
320*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj2EDv4_jET1_S1_S1_
321*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi
322*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 4
323*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj2EDv4_jET1_S1_S1_
324*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1
325*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8
326*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 1, i32 6, i32 3>
327*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
328*9880d681SAndroid Build Coastguard Worker}
329*9880d681SAndroid Build Coastguard Worker
330*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj2ELj3EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) {
331*9880d681SAndroid Build Coastguard Workerentry:
332*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj3EDv4_jET1_S1_S1_
333*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3
334*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4
335*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj3EDv4_jET1_S1_S1_
336*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2
337*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8
338*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 1, i32 7, i32 3>
339*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
340*9880d681SAndroid Build Coastguard Worker}
341*9880d681SAndroid Build Coastguard Worker
342*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj3ELj0EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) {
343*9880d681SAndroid Build Coastguard Workerentry:
344*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj0EDv4_jET1_S1_S1_
345*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2
346*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0
347*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj0EDv4_jET1_S1_S1_
348*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3
349*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12
350*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 1, i32 2, i32 4>
351*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
352*9880d681SAndroid Build Coastguard Worker}
353*9880d681SAndroid Build Coastguard Worker
354*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj3ELj1EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) {
355*9880d681SAndroid Build Coastguard Workerentry:
356*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj1EDv4_jET1_S1_S1_
357*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1
358*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0
359*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj1EDv4_jET1_S1_S1_
360*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi
361*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 12
362*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 1, i32 2, i32 5>
363*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
364*9880d681SAndroid Build Coastguard Worker}
365*9880d681SAndroid Build Coastguard Worker
366*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj3ELj2EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) {
367*9880d681SAndroid Build Coastguard Workerentry:
368*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj2EDv4_jET1_S1_S1_
369*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi
370*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 0
371*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj2EDv4_jET1_S1_S1_
372*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1
373*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12
374*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 1, i32 2, i32 6>
375*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
376*9880d681SAndroid Build Coastguard Worker}
377*9880d681SAndroid Build Coastguard Worker
378*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj3ELj3EDv4_jET1_S1_S1_(<4 x i32> %a, <4 x i32> %b) {
379*9880d681SAndroid Build Coastguard Workerentry:
380*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj3EDv4_jET1_S1_S1_
381*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3
382*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0
383*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj3EDv4_jET1_S1_S1_
384*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2
385*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12
386*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 1, i32 2, i32 7>
387*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
388*9880d681SAndroid Build Coastguard Worker}
389*9880d681SAndroid Build Coastguard Worker
390*9880d681SAndroid Build Coastguard Workerdefine float @_Z13testUiToFpExtILj0EEfDv4_j(<4 x i32> %a) {
391*9880d681SAndroid Build Coastguard Workerentry:
392*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z13testUiToFpExtILj0EEfDv4_j
393*9880d681SAndroid Build Coastguard Worker; CHECK: xxextractuw 0, 34, 12
394*9880d681SAndroid Build Coastguard Worker; CHECK: xscvuxdsp 1, 0
395*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z13testUiToFpExtILj0EEfDv4_j
396*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxextractuw 0, 34, 0
397*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xscvuxdsp 1, 0
398*9880d681SAndroid Build Coastguard Worker  %vecext = extractelement <4 x i32> %a, i32 0
399*9880d681SAndroid Build Coastguard Worker  %conv = uitofp i32 %vecext to float
400*9880d681SAndroid Build Coastguard Worker  ret float %conv
401*9880d681SAndroid Build Coastguard Worker}
402*9880d681SAndroid Build Coastguard Worker
403*9880d681SAndroid Build Coastguard Workerdefine float @_Z13testUiToFpExtILj1EEfDv4_j(<4 x i32> %a) {
404*9880d681SAndroid Build Coastguard Workerentry:
405*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z13testUiToFpExtILj1EEfDv4_j
406*9880d681SAndroid Build Coastguard Worker; CHECK: xxextractuw 0, 34, 8
407*9880d681SAndroid Build Coastguard Worker; CHECK: xscvuxdsp 1, 0
408*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z13testUiToFpExtILj1EEfDv4_j
409*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxextractuw 0, 34, 4
410*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xscvuxdsp 1, 0
411*9880d681SAndroid Build Coastguard Worker  %vecext = extractelement <4 x i32> %a, i32 1
412*9880d681SAndroid Build Coastguard Worker  %conv = uitofp i32 %vecext to float
413*9880d681SAndroid Build Coastguard Worker  ret float %conv
414*9880d681SAndroid Build Coastguard Worker}
415*9880d681SAndroid Build Coastguard Worker
416*9880d681SAndroid Build Coastguard Workerdefine float @_Z13testUiToFpExtILj2EEfDv4_j(<4 x i32> %a) {
417*9880d681SAndroid Build Coastguard Workerentry:
418*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z13testUiToFpExtILj2EEfDv4_j
419*9880d681SAndroid Build Coastguard Worker; CHECK: xxextractuw 0, 34, 4
420*9880d681SAndroid Build Coastguard Worker; CHECK: xscvuxdsp 1, 0
421*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z13testUiToFpExtILj2EEfDv4_j
422*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxextractuw 0, 34, 8
423*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xscvuxdsp 1, 0
424*9880d681SAndroid Build Coastguard Worker  %vecext = extractelement <4 x i32> %a, i32 2
425*9880d681SAndroid Build Coastguard Worker  %conv = uitofp i32 %vecext to float
426*9880d681SAndroid Build Coastguard Worker  ret float %conv
427*9880d681SAndroid Build Coastguard Worker}
428*9880d681SAndroid Build Coastguard Worker
429*9880d681SAndroid Build Coastguard Workerdefine float @_Z13testUiToFpExtILj3EEfDv4_j(<4 x i32> %a) {
430*9880d681SAndroid Build Coastguard Workerentry:
431*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z13testUiToFpExtILj3EEfDv4_j
432*9880d681SAndroid Build Coastguard Worker; CHECK: xxextractuw 0, 34, 0
433*9880d681SAndroid Build Coastguard Worker; CHECK: xscvuxdsp 1, 0
434*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z13testUiToFpExtILj3EEfDv4_j
435*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxextractuw 0, 34, 12
436*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xscvuxdsp 1, 0
437*9880d681SAndroid Build Coastguard Worker  %vecext = extractelement <4 x i32> %a, i32 3
438*9880d681SAndroid Build Coastguard Worker  %conv = uitofp i32 %vecext to float
439*9880d681SAndroid Build Coastguard Worker  ret float %conv
440*9880d681SAndroid Build Coastguard Worker}
441*9880d681SAndroid Build Coastguard Worker
442*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z10testInsEltILj0EDv4_ffET0_S1_T1_(<4 x float> %a, float %b) {
443*9880d681SAndroid Build Coastguard Workerentry:
444*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z10testInsEltILj0EDv4_ffET0_S1_T1_
445*9880d681SAndroid Build Coastguard Worker; CHECK: xscvdpspn 0, 1
446*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 0, 0, 3
447*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12
448*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z10testInsEltILj0EDv4_ffET0_S1_T1_
449*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xscvdpspn 0, 1
450*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 0, 0, 3
451*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0
452*9880d681SAndroid Build Coastguard Worker  %vecins = insertelement <4 x float> %a, float %b, i32 0
453*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
454*9880d681SAndroid Build Coastguard Worker}
455*9880d681SAndroid Build Coastguard Worker
456*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z10testInsEltILj1EDv4_ffET0_S1_T1_(<4 x float> %a, float %b) {
457*9880d681SAndroid Build Coastguard Workerentry:
458*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z10testInsEltILj1EDv4_ffET0_S1_T1_
459*9880d681SAndroid Build Coastguard Worker; CHECK: xscvdpspn 0, 1
460*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 0, 0, 3
461*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8
462*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z10testInsEltILj1EDv4_ffET0_S1_T1_
463*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xscvdpspn 0, 1
464*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 0, 0, 3
465*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4
466*9880d681SAndroid Build Coastguard Worker  %vecins = insertelement <4 x float> %a, float %b, i32 1
467*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
468*9880d681SAndroid Build Coastguard Worker}
469*9880d681SAndroid Build Coastguard Worker
470*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z10testInsEltILj2EDv4_ffET0_S1_T1_(<4 x float> %a, float %b) {
471*9880d681SAndroid Build Coastguard Workerentry:
472*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z10testInsEltILj2EDv4_ffET0_S1_T1_
473*9880d681SAndroid Build Coastguard Worker; CHECK: xscvdpspn 0, 1
474*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 0, 0, 3
475*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4
476*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z10testInsEltILj2EDv4_ffET0_S1_T1_
477*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xscvdpspn 0, 1
478*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 0, 0, 3
479*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8
480*9880d681SAndroid Build Coastguard Worker  %vecins = insertelement <4 x float> %a, float %b, i32 2
481*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
482*9880d681SAndroid Build Coastguard Worker}
483*9880d681SAndroid Build Coastguard Worker
484*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z10testInsEltILj3EDv4_ffET0_S1_T1_(<4 x float> %a, float %b) {
485*9880d681SAndroid Build Coastguard Workerentry:
486*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z10testInsEltILj3EDv4_ffET0_S1_T1_
487*9880d681SAndroid Build Coastguard Worker; CHECK: xscvdpspn 0, 1
488*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 0, 0, 3
489*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0
490*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z10testInsEltILj3EDv4_ffET0_S1_T1_
491*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xscvdpspn 0, 1
492*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 0, 0, 3
493*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12
494*9880d681SAndroid Build Coastguard Worker  %vecins = insertelement <4 x float> %a, float %b, i32 3
495*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
496*9880d681SAndroid Build Coastguard Worker}
497*9880d681SAndroid Build Coastguard Worker
498*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z10testInsEltILj0EDv4_jjET0_S1_T1_(<4 x i32> %a, i32 zeroext %b) {
499*9880d681SAndroid Build Coastguard Workerentry:
500*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z10testInsEltILj0EDv4_jjET0_S1_T1_
501*9880d681SAndroid Build Coastguard Worker; CHECK: mtvsrwz 0, 5
502*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12
503*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z10testInsEltILj0EDv4_jjET0_S1_T1_
504*9880d681SAndroid Build Coastguard Worker; CHECK-BE: mtvsrwz 0, 5
505*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0
506*9880d681SAndroid Build Coastguard Worker  %vecins = insertelement <4 x i32> %a, i32 %b, i32 0
507*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
508*9880d681SAndroid Build Coastguard Worker}
509*9880d681SAndroid Build Coastguard Worker
510*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z10testInsEltILj1EDv4_jjET0_S1_T1_(<4 x i32> %a, i32 zeroext %b) {
511*9880d681SAndroid Build Coastguard Workerentry:
512*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z10testInsEltILj1EDv4_jjET0_S1_T1_
513*9880d681SAndroid Build Coastguard Worker; CHECK: mtvsrwz 0, 5
514*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8
515*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z10testInsEltILj1EDv4_jjET0_S1_T1_
516*9880d681SAndroid Build Coastguard Worker; CHECK-BE: mtvsrwz 0, 5
517*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4
518*9880d681SAndroid Build Coastguard Worker  %vecins = insertelement <4 x i32> %a, i32 %b, i32 1
519*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
520*9880d681SAndroid Build Coastguard Worker}
521*9880d681SAndroid Build Coastguard Worker
522*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z10testInsEltILj2EDv4_jjET0_S1_T1_(<4 x i32> %a, i32 zeroext %b) {
523*9880d681SAndroid Build Coastguard Workerentry:
524*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z10testInsEltILj2EDv4_jjET0_S1_T1_
525*9880d681SAndroid Build Coastguard Worker; CHECK: mtvsrwz 0, 5
526*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4
527*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z10testInsEltILj2EDv4_jjET0_S1_T1_
528*9880d681SAndroid Build Coastguard Worker; CHECK-BE: mtvsrwz 0, 5
529*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8
530*9880d681SAndroid Build Coastguard Worker  %vecins = insertelement <4 x i32> %a, i32 %b, i32 2
531*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
532*9880d681SAndroid Build Coastguard Worker}
533*9880d681SAndroid Build Coastguard Worker
534*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z10testInsEltILj3EDv4_jjET0_S1_T1_(<4 x i32> %a, i32 zeroext %b) {
535*9880d681SAndroid Build Coastguard Workerentry:
536*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z10testInsEltILj3EDv4_jjET0_S1_T1_
537*9880d681SAndroid Build Coastguard Worker; CHECK: mtvsrwz 0, 5
538*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0
539*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z10testInsEltILj3EDv4_jjET0_S1_T1_
540*9880d681SAndroid Build Coastguard Worker; CHECK-BE: mtvsrwz 0, 5
541*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12
542*9880d681SAndroid Build Coastguard Worker  %vecins = insertelement <4 x i32> %a, i32 %b, i32 3
543*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
544*9880d681SAndroid Build Coastguard Worker}
545*9880d681SAndroid Build Coastguard Worker
546*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj0ELj0EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) {
547*9880d681SAndroid Build Coastguard Workerentry:
548*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj0EDv4_fET1_S1_S1_
549*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2
550*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12
551*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj0EDv4_fET1_S1_S1_
552*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3
553*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0
554*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 0, i32 5, i32 6, i32 7>
555*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
556*9880d681SAndroid Build Coastguard Worker}
557*9880d681SAndroid Build Coastguard Worker
558*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj0ELj1EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) {
559*9880d681SAndroid Build Coastguard Workerentry:
560*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj1EDv4_fET1_S1_S1_
561*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1
562*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12
563*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj1EDv4_fET1_S1_S1_
564*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi
565*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 0
566*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 1, i32 5, i32 6, i32 7>
567*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
568*9880d681SAndroid Build Coastguard Worker}
569*9880d681SAndroid Build Coastguard Worker
570*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj0ELj2EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) {
571*9880d681SAndroid Build Coastguard Workerentry:
572*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj2EDv4_fET1_S1_S1_
573*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi
574*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 12
575*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj2EDv4_fET1_S1_S1_
576*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1
577*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0
578*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 2, i32 5, i32 6, i32 7>
579*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
580*9880d681SAndroid Build Coastguard Worker}
581*9880d681SAndroid Build Coastguard Worker
582*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj0ELj3EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) {
583*9880d681SAndroid Build Coastguard Workerentry:
584*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj3EDv4_fET1_S1_S1_
585*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3
586*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12
587*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj3EDv4_fET1_S1_S1_
588*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2
589*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0
590*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 3, i32 5, i32 6, i32 7>
591*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
592*9880d681SAndroid Build Coastguard Worker}
593*9880d681SAndroid Build Coastguard Worker
594*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj1ELj0EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) {
595*9880d681SAndroid Build Coastguard Workerentry:
596*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj0EDv4_fET1_S1_S1_
597*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2
598*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8
599*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj0EDv4_fET1_S1_S1_
600*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3
601*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4
602*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 4, i32 0, i32 6, i32 7>
603*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
604*9880d681SAndroid Build Coastguard Worker}
605*9880d681SAndroid Build Coastguard Worker
606*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj1ELj1EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) {
607*9880d681SAndroid Build Coastguard Workerentry:
608*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj1EDv4_fET1_S1_S1_
609*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1
610*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8
611*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj1EDv4_fET1_S1_S1_
612*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi
613*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 4
614*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 4, i32 1, i32 6, i32 7>
615*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
616*9880d681SAndroid Build Coastguard Worker}
617*9880d681SAndroid Build Coastguard Worker
618*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj1ELj2EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) {
619*9880d681SAndroid Build Coastguard Workerentry:
620*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj2EDv4_fET1_S1_S1_
621*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi
622*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 8
623*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj2EDv4_fET1_S1_S1_
624*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1
625*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4
626*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 4, i32 2, i32 6, i32 7>
627*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
628*9880d681SAndroid Build Coastguard Worker}
629*9880d681SAndroid Build Coastguard Worker
630*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj1ELj3EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) {
631*9880d681SAndroid Build Coastguard Workerentry:
632*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj3EDv4_fET1_S1_S1_
633*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3
634*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8
635*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj3EDv4_fET1_S1_S1_
636*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2
637*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4
638*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 4, i32 3, i32 6, i32 7>
639*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
640*9880d681SAndroid Build Coastguard Worker}
641*9880d681SAndroid Build Coastguard Worker
642*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj2ELj0EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) {
643*9880d681SAndroid Build Coastguard Workerentry:
644*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj0EDv4_fET1_S1_S1_
645*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2
646*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4
647*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj0EDv4_fET1_S1_S1_
648*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3
649*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8
650*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 4, i32 5, i32 0, i32 7>
651*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
652*9880d681SAndroid Build Coastguard Worker}
653*9880d681SAndroid Build Coastguard Worker
654*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj2ELj1EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) {
655*9880d681SAndroid Build Coastguard Workerentry:
656*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj1EDv4_fET1_S1_S1_
657*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1
658*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4
659*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj1EDv4_fET1_S1_S1_
660*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi
661*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 8
662*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 4, i32 5, i32 1, i32 7>
663*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
664*9880d681SAndroid Build Coastguard Worker}
665*9880d681SAndroid Build Coastguard Worker
666*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj2ELj2EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) {
667*9880d681SAndroid Build Coastguard Workerentry:
668*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj2EDv4_fET1_S1_S1_
669*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi
670*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 4
671*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj2EDv4_fET1_S1_S1_
672*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1
673*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8
674*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 4, i32 5, i32 2, i32 7>
675*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
676*9880d681SAndroid Build Coastguard Worker}
677*9880d681SAndroid Build Coastguard Worker
678*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj2ELj3EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) {
679*9880d681SAndroid Build Coastguard Workerentry:
680*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj3EDv4_fET1_S1_S1_
681*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3
682*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4
683*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj3EDv4_fET1_S1_S1_
684*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2
685*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8
686*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 4, i32 5, i32 3, i32 7>
687*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
688*9880d681SAndroid Build Coastguard Worker}
689*9880d681SAndroid Build Coastguard Worker
690*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj3ELj0EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) {
691*9880d681SAndroid Build Coastguard Workerentry:
692*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj0EDv4_fET1_S1_S1_
693*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2
694*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0
695*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj0EDv4_fET1_S1_S1_
696*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3
697*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12
698*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 4, i32 5, i32 6, i32 0>
699*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
700*9880d681SAndroid Build Coastguard Worker}
701*9880d681SAndroid Build Coastguard Worker
702*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj3ELj1EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) {
703*9880d681SAndroid Build Coastguard Workerentry:
704*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj1EDv4_fET1_S1_S1_
705*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1
706*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0
707*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj1EDv4_fET1_S1_S1_
708*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi
709*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 12
710*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 4, i32 5, i32 6, i32 1>
711*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
712*9880d681SAndroid Build Coastguard Worker}
713*9880d681SAndroid Build Coastguard Worker
714*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj3ELj2EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) {
715*9880d681SAndroid Build Coastguard Workerentry:
716*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj2EDv4_fET1_S1_S1_
717*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi
718*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 0
719*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj2EDv4_fET1_S1_S1_
720*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1
721*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12
722*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 4, i32 5, i32 6, i32 2>
723*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
724*9880d681SAndroid Build Coastguard Worker}
725*9880d681SAndroid Build Coastguard Worker
726*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @_Z7testInsILj3ELj3EDv4_fET1_S1_S1_r(<4 x float> %a, <4 x float> %b) {
727*9880d681SAndroid Build Coastguard Workerentry:
728*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj3EDv4_fET1_S1_S1_
729*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3
730*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0
731*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj3EDv4_fET1_S1_S1_
732*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2
733*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12
734*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %b, <4 x float> %a, <4 x i32> <i32 4, i32 5, i32 6, i32 3>
735*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
736*9880d681SAndroid Build Coastguard Worker}
737*9880d681SAndroid Build Coastguard Worker
738*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj0ELj0EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) {
739*9880d681SAndroid Build Coastguard Workerentry:
740*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj0EDv4_jET1_S1_S1_
741*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2
742*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12
743*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj0EDv4_jET1_S1_S1_
744*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3
745*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0
746*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 0, i32 5, i32 6, i32 7>
747*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
748*9880d681SAndroid Build Coastguard Worker}
749*9880d681SAndroid Build Coastguard Worker
750*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj0ELj1EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) {
751*9880d681SAndroid Build Coastguard Workerentry:
752*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj1EDv4_jET1_S1_S1_
753*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1
754*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12
755*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj1EDv4_jET1_S1_S1_
756*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi
757*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 0
758*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 1, i32 5, i32 6, i32 7>
759*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
760*9880d681SAndroid Build Coastguard Worker}
761*9880d681SAndroid Build Coastguard Worker
762*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj0ELj2EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) {
763*9880d681SAndroid Build Coastguard Workerentry:
764*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj2EDv4_jET1_S1_S1_
765*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi
766*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 12
767*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj2EDv4_jET1_S1_S1_
768*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1
769*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0
770*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 2, i32 5, i32 6, i32 7>
771*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
772*9880d681SAndroid Build Coastguard Worker}
773*9880d681SAndroid Build Coastguard Worker
774*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj0ELj3EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) {
775*9880d681SAndroid Build Coastguard Workerentry:
776*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj0ELj3EDv4_jET1_S1_S1_
777*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3
778*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 12
779*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj0ELj3EDv4_jET1_S1_S1_
780*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2
781*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 0
782*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 3, i32 5, i32 6, i32 7>
783*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
784*9880d681SAndroid Build Coastguard Worker}
785*9880d681SAndroid Build Coastguard Worker
786*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj1ELj0EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) {
787*9880d681SAndroid Build Coastguard Workerentry:
788*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj0EDv4_jET1_S1_S1_
789*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2
790*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8
791*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj0EDv4_jET1_S1_S1_
792*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3
793*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4
794*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 4, i32 0, i32 6, i32 7>
795*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
796*9880d681SAndroid Build Coastguard Worker}
797*9880d681SAndroid Build Coastguard Worker
798*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj1ELj1EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) {
799*9880d681SAndroid Build Coastguard Workerentry:
800*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj1EDv4_jET1_S1_S1_
801*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1
802*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8
803*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj1EDv4_jET1_S1_S1_
804*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi
805*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 4
806*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 4, i32 1, i32 6, i32 7>
807*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
808*9880d681SAndroid Build Coastguard Worker}
809*9880d681SAndroid Build Coastguard Worker
810*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj1ELj2EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) {
811*9880d681SAndroid Build Coastguard Workerentry:
812*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj2EDv4_jET1_S1_S1_
813*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi
814*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 8
815*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj2EDv4_jET1_S1_S1_
816*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1
817*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4
818*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 4, i32 2, i32 6, i32 7>
819*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
820*9880d681SAndroid Build Coastguard Worker}
821*9880d681SAndroid Build Coastguard Worker
822*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj1ELj3EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) {
823*9880d681SAndroid Build Coastguard Workerentry:
824*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj1ELj3EDv4_jET1_S1_S1_
825*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3
826*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 8
827*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj1ELj3EDv4_jET1_S1_S1_
828*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2
829*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 4
830*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 4, i32 3, i32 6, i32 7>
831*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
832*9880d681SAndroid Build Coastguard Worker}
833*9880d681SAndroid Build Coastguard Worker
834*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj2ELj0EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) {
835*9880d681SAndroid Build Coastguard Workerentry:
836*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj0EDv4_jET1_S1_S1_
837*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2
838*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4
839*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj0EDv4_jET1_S1_S1_
840*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3
841*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8
842*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 4, i32 5, i32 0, i32 7>
843*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
844*9880d681SAndroid Build Coastguard Worker}
845*9880d681SAndroid Build Coastguard Worker
846*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj2ELj1EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) {
847*9880d681SAndroid Build Coastguard Workerentry:
848*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj1EDv4_jET1_S1_S1_
849*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1
850*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4
851*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj1EDv4_jET1_S1_S1_
852*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi
853*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 8
854*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 4, i32 5, i32 1, i32 7>
855*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
856*9880d681SAndroid Build Coastguard Worker}
857*9880d681SAndroid Build Coastguard Worker
858*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj2ELj2EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) {
859*9880d681SAndroid Build Coastguard Workerentry:
860*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj2EDv4_jET1_S1_S1_
861*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi
862*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 4
863*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj2EDv4_jET1_S1_S1_
864*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1
865*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8
866*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 4, i32 5, i32 2, i32 7>
867*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
868*9880d681SAndroid Build Coastguard Worker}
869*9880d681SAndroid Build Coastguard Worker
870*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj2ELj3EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) {
871*9880d681SAndroid Build Coastguard Workerentry:
872*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj2ELj3EDv4_jET1_S1_S1_
873*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3
874*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 4
875*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj2ELj3EDv4_jET1_S1_S1_
876*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2
877*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 8
878*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 4, i32 5, i32 3, i32 7>
879*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
880*9880d681SAndroid Build Coastguard Worker}
881*9880d681SAndroid Build Coastguard Worker
882*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj3ELj0EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) {
883*9880d681SAndroid Build Coastguard Workerentry:
884*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj0EDv4_jET1_S1_S1_
885*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 2
886*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0
887*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj0EDv4_jET1_S1_S1_
888*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 3
889*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12
890*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 4, i32 5, i32 6, i32 0>
891*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
892*9880d681SAndroid Build Coastguard Worker}
893*9880d681SAndroid Build Coastguard Worker
894*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj3ELj1EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) {
895*9880d681SAndroid Build Coastguard Workerentry:
896*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj1EDv4_jET1_S1_S1_
897*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 1
898*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0
899*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj1EDv4_jET1_S1_S1_
900*9880d681SAndroid Build Coastguard Worker; CHECK-BE-NOT: xxsldwi
901*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 35, 12
902*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 4, i32 5, i32 6, i32 1>
903*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
904*9880d681SAndroid Build Coastguard Worker}
905*9880d681SAndroid Build Coastguard Worker
906*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj3ELj2EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) {
907*9880d681SAndroid Build Coastguard Workerentry:
908*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj2EDv4_jET1_S1_S1_
909*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: xxsldwi
910*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 35, 0
911*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj2EDv4_jET1_S1_S1_
912*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 1
913*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12
914*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 4, i32 5, i32 6, i32 2>
915*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
916*9880d681SAndroid Build Coastguard Worker}
917*9880d681SAndroid Build Coastguard Worker
918*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @_Z7testInsILj3ELj3EDv4_jET1_S1_S1_r(<4 x i32> %a, <4 x i32> %b) {
919*9880d681SAndroid Build Coastguard Workerentry:
920*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: _Z7testInsILj3ELj3EDv4_jET1_S1_S1_
921*9880d681SAndroid Build Coastguard Worker; CHECK: xxsldwi 0, 35, 35, 3
922*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 0, 0
923*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: _Z7testInsILj3ELj3EDv4_jET1_S1_S1_
924*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxsldwi 0, 35, 35, 2
925*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 0, 12
926*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x i32> %b, <4 x i32> %a, <4 x i32> <i32 4, i32 5, i32 6, i32 3>
927*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %vecins
928*9880d681SAndroid Build Coastguard Worker}
929*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @testSameVecEl0BE(<4 x float> %a) {
930*9880d681SAndroid Build Coastguard Workerentry:
931*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: testSameVecEl0BE
932*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 34, 0
933*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %a, <4 x float> %a, <4 x i32> <i32 5, i32 1, i32 2, i32 3>
934*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
935*9880d681SAndroid Build Coastguard Worker}
936*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @testSameVecEl2BE(<4 x float> %a) {
937*9880d681SAndroid Build Coastguard Workerentry:
938*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: testSameVecEl2BE
939*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 34, 8
940*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %a, <4 x float> %a, <4 x i32> <i32 0, i32 1, i32 5, i32 3>
941*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
942*9880d681SAndroid Build Coastguard Worker}
943*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @testSameVecEl3BE(<4 x float> %a) {
944*9880d681SAndroid Build Coastguard Workerentry:
945*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: testSameVecEl3BE
946*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxinsertw 34, 34, 12
947*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %a, <4 x float> %a, <4 x i32> <i32 0, i32 1, i32 2, i32 5>
948*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
949*9880d681SAndroid Build Coastguard Worker}
950*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @testSameVecEl0LE(<4 x float> %a) {
951*9880d681SAndroid Build Coastguard Workerentry:
952*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testSameVecEl0LE
953*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 34, 12
954*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %a, <4 x float> %a, <4 x i32> <i32 6, i32 1, i32 2, i32 3>
955*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
956*9880d681SAndroid Build Coastguard Worker}
957*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @testSameVecEl1LE(<4 x float> %a) {
958*9880d681SAndroid Build Coastguard Workerentry:
959*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testSameVecEl1LE
960*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 34, 8
961*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %a, <4 x float> %a, <4 x i32> <i32 0, i32 6, i32 2, i32 3>
962*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
963*9880d681SAndroid Build Coastguard Worker}
964*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @testSameVecEl3LE(<4 x float> %a) {
965*9880d681SAndroid Build Coastguard Workerentry:
966*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testSameVecEl3LE
967*9880d681SAndroid Build Coastguard Worker; CHECK: xxinsertw 34, 34, 0
968*9880d681SAndroid Build Coastguard Worker  %vecins = shufflevector <4 x float> %a, <4 x float> %a, <4 x i32> <i32 0, i32 1, i32 2, i32 6>
969*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vecins
970*9880d681SAndroid Build Coastguard Worker}
971