xref: /aosp_15_r20/external/llvm/test/CodeGen/PowerPC/unal-vec-ldst.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Workertarget datalayout = "E-m:e-i64:64-n32:64"
3*9880d681SAndroid Build Coastguard Workertarget triple = "powerpc64-unknown-linux-gnu"
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_l_v16i8(<16 x i8>* %p) #0 {
6*9880d681SAndroid Build Coastguard Workerentry:
7*9880d681SAndroid Build Coastguard Worker  %r = load <16 x i8>, <16 x i8>* %p, align 1
8*9880d681SAndroid Build Coastguard Worker  ret <16 x i8> %r
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_v16i8
11*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 15
12*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvsl [[REG2:[0-9]+]], 0, 3
13*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvx [[REG3:[0-9]+]], 3, [[REG1]]
14*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvx [[REG4:[0-9]+]], 0, 3
15*9880d681SAndroid Build Coastguard Worker; CHECK: vperm 2, [[REG4]], [[REG3]], [[REG2]]
16*9880d681SAndroid Build Coastguard Worker; CHECK: blr
17*9880d681SAndroid Build Coastguard Worker}
18*9880d681SAndroid Build Coastguard Worker
19*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_l_v32i8(<32 x i8>* %p) #0 {
20*9880d681SAndroid Build Coastguard Workerentry:
21*9880d681SAndroid Build Coastguard Worker  %r = load <32 x i8>, <32 x i8>* %p, align 1
22*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %r
23*9880d681SAndroid Build Coastguard Worker
24*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_v32i8
25*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 31
26*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG2:[0-9]+]], 16
27*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvsl [[REG3:[0-9]+]], 0, 3
28*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvx [[REG4:[0-9]+]], 3, [[REG1]]
29*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvx [[REG5:[0-9]+]], 3, [[REG2]]
30*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvx [[REG6:[0-9]+]], 0, 3
31*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: vperm 3, [[REG5]], [[REG4]], [[REG3]]
32*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: vperm 2, [[REG6]], [[REG5]], [[REG3]]
33*9880d681SAndroid Build Coastguard Worker; CHECK: blr
34*9880d681SAndroid Build Coastguard Worker}
35*9880d681SAndroid Build Coastguard Worker
36*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_l_v8i16(<8 x i16>* %p) #0 {
37*9880d681SAndroid Build Coastguard Workerentry:
38*9880d681SAndroid Build Coastguard Worker  %r = load <8 x i16>, <8 x i16>* %p, align 2
39*9880d681SAndroid Build Coastguard Worker  ret <8 x i16> %r
40*9880d681SAndroid Build Coastguard Worker
41*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_v8i16
42*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 15
43*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvsl [[REG2:[0-9]+]], 0, 3
44*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvx [[REG3:[0-9]+]], 3, [[REG1]]
45*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvx [[REG4:[0-9]+]], 0, 3
46*9880d681SAndroid Build Coastguard Worker; CHECK: vperm 2, [[REG4]], [[REG3]], [[REG2]]
47*9880d681SAndroid Build Coastguard Worker; CHECK: blr
48*9880d681SAndroid Build Coastguard Worker}
49*9880d681SAndroid Build Coastguard Worker
50*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_l_v16i16(<16 x i16>* %p) #0 {
51*9880d681SAndroid Build Coastguard Workerentry:
52*9880d681SAndroid Build Coastguard Worker  %r = load <16 x i16>, <16 x i16>* %p, align 2
53*9880d681SAndroid Build Coastguard Worker  ret <16 x i16> %r
54*9880d681SAndroid Build Coastguard Worker
55*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_v16i16
56*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 31
57*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG2:[0-9]+]], 16
58*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvsl [[REG3:[0-9]+]], 0, 3
59*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvx [[REG4:[0-9]+]], 3, [[REG1]]
60*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvx [[REG5:[0-9]+]], 3, [[REG2]]
61*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvx [[REG6:[0-9]+]], 0, 3
62*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: vperm 3, [[REG5]], [[REG4]], [[REG3]]
63*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: vperm 2, [[REG6]], [[REG5]], [[REG3]]
64*9880d681SAndroid Build Coastguard Worker; CHECK: blr
65*9880d681SAndroid Build Coastguard Worker}
66*9880d681SAndroid Build Coastguard Worker
67*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_l_v4i32(<4 x i32>* %p) #0 {
68*9880d681SAndroid Build Coastguard Workerentry:
69*9880d681SAndroid Build Coastguard Worker  %r = load <4 x i32>, <4 x i32>* %p, align 4
70*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %r
71*9880d681SAndroid Build Coastguard Worker
72*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_v4i32
73*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 15
74*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvsl [[REG2:[0-9]+]], 0, 3
75*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvx [[REG3:[0-9]+]], 3, [[REG1]]
76*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvx [[REG4:[0-9]+]], 0, 3
77*9880d681SAndroid Build Coastguard Worker; CHECK: vperm 2, [[REG4]], [[REG3]], [[REG2]]
78*9880d681SAndroid Build Coastguard Worker; CHECK: blr
79*9880d681SAndroid Build Coastguard Worker}
80*9880d681SAndroid Build Coastguard Worker
81*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_l_v8i32(<8 x i32>* %p) #0 {
82*9880d681SAndroid Build Coastguard Workerentry:
83*9880d681SAndroid Build Coastguard Worker  %r = load <8 x i32>, <8 x i32>* %p, align 4
84*9880d681SAndroid Build Coastguard Worker  ret <8 x i32> %r
85*9880d681SAndroid Build Coastguard Worker
86*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_v8i32
87*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 31
88*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG2:[0-9]+]], 16
89*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvsl [[REG3:[0-9]+]], 0, 3
90*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvx [[REG4:[0-9]+]], 3, [[REG1]]
91*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvx [[REG5:[0-9]+]], 3, [[REG2]]
92*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvx [[REG6:[0-9]+]], 0, 3
93*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: vperm 3, [[REG5]], [[REG4]], [[REG3]]
94*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: vperm 2, [[REG6]], [[REG5]], [[REG3]]
95*9880d681SAndroid Build Coastguard Worker; CHECK: blr
96*9880d681SAndroid Build Coastguard Worker}
97*9880d681SAndroid Build Coastguard Worker
98*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_l_v2i64(<2 x i64>* %p) #0 {
99*9880d681SAndroid Build Coastguard Workerentry:
100*9880d681SAndroid Build Coastguard Worker  %r = load <2 x i64>, <2 x i64>* %p, align 8
101*9880d681SAndroid Build Coastguard Worker  ret <2 x i64> %r
102*9880d681SAndroid Build Coastguard Worker
103*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_v2i64
104*9880d681SAndroid Build Coastguard Worker; CHECK: lxvd2x 34, 0, 3
105*9880d681SAndroid Build Coastguard Worker; CHECK: blr
106*9880d681SAndroid Build Coastguard Worker}
107*9880d681SAndroid Build Coastguard Worker
108*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test_l_v4i64(<4 x i64>* %p) #0 {
109*9880d681SAndroid Build Coastguard Workerentry:
110*9880d681SAndroid Build Coastguard Worker  %r = load <4 x i64>, <4 x i64>* %p, align 8
111*9880d681SAndroid Build Coastguard Worker  ret <4 x i64> %r
112*9880d681SAndroid Build Coastguard Worker
113*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_v4i64
114*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 16
115*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lxvd2x 34, 0, 3
116*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lxvd2x 35, 3, [[REG1]]
117*9880d681SAndroid Build Coastguard Worker; CHECK: blr
118*9880d681SAndroid Build Coastguard Worker}
119*9880d681SAndroid Build Coastguard Worker
120*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_l_v4float(<4 x float>* %p) #0 {
121*9880d681SAndroid Build Coastguard Workerentry:
122*9880d681SAndroid Build Coastguard Worker  %r = load <4 x float>, <4 x float>* %p, align 4
123*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %r
124*9880d681SAndroid Build Coastguard Worker
125*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_v4float
126*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 15
127*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvsl [[REG2:[0-9]+]], 0, 3
128*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvx [[REG3:[0-9]+]], 3, [[REG1]]
129*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvx [[REG4:[0-9]+]], 0, 3
130*9880d681SAndroid Build Coastguard Worker; CHECK: vperm 2, [[REG4]], [[REG3]], [[REG2]]
131*9880d681SAndroid Build Coastguard Worker; CHECK: blr
132*9880d681SAndroid Build Coastguard Worker}
133*9880d681SAndroid Build Coastguard Worker
134*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_l_v8float(<8 x float>* %p) #0 {
135*9880d681SAndroid Build Coastguard Workerentry:
136*9880d681SAndroid Build Coastguard Worker  %r = load <8 x float>, <8 x float>* %p, align 4
137*9880d681SAndroid Build Coastguard Worker  ret <8 x float> %r
138*9880d681SAndroid Build Coastguard Worker
139*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_v8float
140*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 31
141*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG2:[0-9]+]], 16
142*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvsl [[REG3:[0-9]+]], 0, 3
143*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvx [[REG4:[0-9]+]], 3, [[REG1]]
144*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvx [[REG5:[0-9]+]], 3, [[REG2]]
145*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lvx [[REG6:[0-9]+]], 0, 3
146*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: vperm 3, [[REG5]], [[REG4]], [[REG3]]
147*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: vperm 2, [[REG6]], [[REG5]], [[REG3]]
148*9880d681SAndroid Build Coastguard Worker; CHECK: blr
149*9880d681SAndroid Build Coastguard Worker}
150*9880d681SAndroid Build Coastguard Worker
151*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @test_l_v2double(<2 x double>* %p) #0 {
152*9880d681SAndroid Build Coastguard Workerentry:
153*9880d681SAndroid Build Coastguard Worker  %r = load <2 x double>, <2 x double>* %p, align 8
154*9880d681SAndroid Build Coastguard Worker  ret <2 x double> %r
155*9880d681SAndroid Build Coastguard Worker
156*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_v2double
157*9880d681SAndroid Build Coastguard Worker; CHECK: lxvd2x 34, 0, 3
158*9880d681SAndroid Build Coastguard Worker; CHECK: blr
159*9880d681SAndroid Build Coastguard Worker}
160*9880d681SAndroid Build Coastguard Worker
161*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @test_l_v4double(<4 x double>* %p) #0 {
162*9880d681SAndroid Build Coastguard Workerentry:
163*9880d681SAndroid Build Coastguard Worker  %r = load <4 x double>, <4 x double>* %p, align 8
164*9880d681SAndroid Build Coastguard Worker  ret <4 x double> %r
165*9880d681SAndroid Build Coastguard Worker
166*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_v4double
167*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 16
168*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lxvd2x 34, 0, 3
169*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lxvd2x 35, 3, [[REG1]]
170*9880d681SAndroid Build Coastguard Worker; CHECK: blr
171*9880d681SAndroid Build Coastguard Worker}
172*9880d681SAndroid Build Coastguard Worker
173*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_l_p8v16i8(<16 x i8>* %p) #2 {
174*9880d681SAndroid Build Coastguard Workerentry:
175*9880d681SAndroid Build Coastguard Worker  %r = load <16 x i8>, <16 x i8>* %p, align 1
176*9880d681SAndroid Build Coastguard Worker  ret <16 x i8> %r
177*9880d681SAndroid Build Coastguard Worker
178*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_p8v16i8
179*9880d681SAndroid Build Coastguard Worker; CHECK: lxvw4x 34, 0, 3
180*9880d681SAndroid Build Coastguard Worker; CHECK: blr
181*9880d681SAndroid Build Coastguard Worker}
182*9880d681SAndroid Build Coastguard Worker
183*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_l_p8v32i8(<32 x i8>* %p) #2 {
184*9880d681SAndroid Build Coastguard Workerentry:
185*9880d681SAndroid Build Coastguard Worker  %r = load <32 x i8>, <32 x i8>* %p, align 1
186*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %r
187*9880d681SAndroid Build Coastguard Worker
188*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_p8v32i8
189*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 16
190*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lxvw4x 34, 0, 3
191*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lxvw4x 35, 3, [[REG1]]
192*9880d681SAndroid Build Coastguard Worker; CHECK: blr
193*9880d681SAndroid Build Coastguard Worker}
194*9880d681SAndroid Build Coastguard Worker
195*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_l_p8v8i16(<8 x i16>* %p) #2 {
196*9880d681SAndroid Build Coastguard Workerentry:
197*9880d681SAndroid Build Coastguard Worker  %r = load <8 x i16>, <8 x i16>* %p, align 2
198*9880d681SAndroid Build Coastguard Worker  ret <8 x i16> %r
199*9880d681SAndroid Build Coastguard Worker
200*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_p8v8i16
201*9880d681SAndroid Build Coastguard Worker; CHECK: lxvw4x 34, 0, 3
202*9880d681SAndroid Build Coastguard Worker; CHECK: blr
203*9880d681SAndroid Build Coastguard Worker}
204*9880d681SAndroid Build Coastguard Worker
205*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_l_p8v16i16(<16 x i16>* %p) #2 {
206*9880d681SAndroid Build Coastguard Workerentry:
207*9880d681SAndroid Build Coastguard Worker  %r = load <16 x i16>, <16 x i16>* %p, align 2
208*9880d681SAndroid Build Coastguard Worker  ret <16 x i16> %r
209*9880d681SAndroid Build Coastguard Worker
210*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_p8v16i16
211*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 16
212*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lxvw4x 34, 0, 3
213*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lxvw4x 35, 3, [[REG1]]
214*9880d681SAndroid Build Coastguard Worker; CHECK: blr
215*9880d681SAndroid Build Coastguard Worker}
216*9880d681SAndroid Build Coastguard Worker
217*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_l_p8v4i32(<4 x i32>* %p) #2 {
218*9880d681SAndroid Build Coastguard Workerentry:
219*9880d681SAndroid Build Coastguard Worker  %r = load <4 x i32>, <4 x i32>* %p, align 4
220*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %r
221*9880d681SAndroid Build Coastguard Worker
222*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_p8v4i32
223*9880d681SAndroid Build Coastguard Worker; CHECK: lxvw4x 34, 0, 3
224*9880d681SAndroid Build Coastguard Worker; CHECK: blr
225*9880d681SAndroid Build Coastguard Worker}
226*9880d681SAndroid Build Coastguard Worker
227*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_l_p8v8i32(<8 x i32>* %p) #2 {
228*9880d681SAndroid Build Coastguard Workerentry:
229*9880d681SAndroid Build Coastguard Worker  %r = load <8 x i32>, <8 x i32>* %p, align 4
230*9880d681SAndroid Build Coastguard Worker  ret <8 x i32> %r
231*9880d681SAndroid Build Coastguard Worker
232*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_p8v8i32
233*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 16
234*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lxvw4x 34, 0, 3
235*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lxvw4x 35, 3, [[REG1]]
236*9880d681SAndroid Build Coastguard Worker; CHECK: blr
237*9880d681SAndroid Build Coastguard Worker}
238*9880d681SAndroid Build Coastguard Worker
239*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_l_p8v2i64(<2 x i64>* %p) #2 {
240*9880d681SAndroid Build Coastguard Workerentry:
241*9880d681SAndroid Build Coastguard Worker  %r = load <2 x i64>, <2 x i64>* %p, align 8
242*9880d681SAndroid Build Coastguard Worker  ret <2 x i64> %r
243*9880d681SAndroid Build Coastguard Worker
244*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_p8v2i64
245*9880d681SAndroid Build Coastguard Worker; CHECK: lxvd2x 34, 0, 3
246*9880d681SAndroid Build Coastguard Worker; CHECK: blr
247*9880d681SAndroid Build Coastguard Worker}
248*9880d681SAndroid Build Coastguard Worker
249*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test_l_p8v4i64(<4 x i64>* %p) #2 {
250*9880d681SAndroid Build Coastguard Workerentry:
251*9880d681SAndroid Build Coastguard Worker  %r = load <4 x i64>, <4 x i64>* %p, align 8
252*9880d681SAndroid Build Coastguard Worker  ret <4 x i64> %r
253*9880d681SAndroid Build Coastguard Worker
254*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_p8v4i64
255*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 16
256*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lxvd2x 34, 0, 3
257*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lxvd2x 35, 3, [[REG1]]
258*9880d681SAndroid Build Coastguard Worker; CHECK: blr
259*9880d681SAndroid Build Coastguard Worker}
260*9880d681SAndroid Build Coastguard Worker
261*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_l_p8v4float(<4 x float>* %p) #2 {
262*9880d681SAndroid Build Coastguard Workerentry:
263*9880d681SAndroid Build Coastguard Worker  %r = load <4 x float>, <4 x float>* %p, align 4
264*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %r
265*9880d681SAndroid Build Coastguard Worker
266*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_p8v4float
267*9880d681SAndroid Build Coastguard Worker; CHECK: lxvw4x 34, 0, 3
268*9880d681SAndroid Build Coastguard Worker; CHECK: blr
269*9880d681SAndroid Build Coastguard Worker}
270*9880d681SAndroid Build Coastguard Worker
271*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_l_p8v8float(<8 x float>* %p) #2 {
272*9880d681SAndroid Build Coastguard Workerentry:
273*9880d681SAndroid Build Coastguard Worker  %r = load <8 x float>, <8 x float>* %p, align 4
274*9880d681SAndroid Build Coastguard Worker  ret <8 x float> %r
275*9880d681SAndroid Build Coastguard Worker
276*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_p8v8float
277*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 16
278*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lxvw4x 34, 0, 3
279*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lxvw4x 35, 3, [[REG1]]
280*9880d681SAndroid Build Coastguard Worker; CHECK: blr
281*9880d681SAndroid Build Coastguard Worker}
282*9880d681SAndroid Build Coastguard Worker
283*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @test_l_p8v2double(<2 x double>* %p) #2 {
284*9880d681SAndroid Build Coastguard Workerentry:
285*9880d681SAndroid Build Coastguard Worker  %r = load <2 x double>, <2 x double>* %p, align 8
286*9880d681SAndroid Build Coastguard Worker  ret <2 x double> %r
287*9880d681SAndroid Build Coastguard Worker
288*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_p8v2double
289*9880d681SAndroid Build Coastguard Worker; CHECK: lxvd2x 34, 0, 3
290*9880d681SAndroid Build Coastguard Worker; CHECK: blr
291*9880d681SAndroid Build Coastguard Worker}
292*9880d681SAndroid Build Coastguard Worker
293*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @test_l_p8v4double(<4 x double>* %p) #2 {
294*9880d681SAndroid Build Coastguard Workerentry:
295*9880d681SAndroid Build Coastguard Worker  %r = load <4 x double>, <4 x double>* %p, align 8
296*9880d681SAndroid Build Coastguard Worker  ret <4 x double> %r
297*9880d681SAndroid Build Coastguard Worker
298*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_p8v4double
299*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 16
300*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lxvd2x 34, 0, 3
301*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lxvd2x 35, 3, [[REG1]]
302*9880d681SAndroid Build Coastguard Worker; CHECK: blr
303*9880d681SAndroid Build Coastguard Worker}
304*9880d681SAndroid Build Coastguard Worker
305*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_l_qv4float(<4 x float>* %p) #1 {
306*9880d681SAndroid Build Coastguard Workerentry:
307*9880d681SAndroid Build Coastguard Worker  %r = load <4 x float>, <4 x float>* %p, align 4
308*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %r
309*9880d681SAndroid Build Coastguard Worker
310*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_qv4float
311*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 15
312*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvlpclsx 0, 0, 3
313*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvlfsx [[REG2:[0-9]+]], 3, [[REG1]]
314*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvlfsx [[REG3:[0-9]+]], 0, 3
315*9880d681SAndroid Build Coastguard Worker; CHECK: qvfperm 1, [[REG3]], [[REG2]], 0
316*9880d681SAndroid Build Coastguard Worker; CHECK: blr
317*9880d681SAndroid Build Coastguard Worker}
318*9880d681SAndroid Build Coastguard Worker
319*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_l_qv8float(<8 x float>* %p) #1 {
320*9880d681SAndroid Build Coastguard Workerentry:
321*9880d681SAndroid Build Coastguard Worker  %r = load <8 x float>, <8 x float>* %p, align 4
322*9880d681SAndroid Build Coastguard Worker  ret <8 x float> %r
323*9880d681SAndroid Build Coastguard Worker
324*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_qv8float
325*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 31
326*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG2:[0-9]+]], 16
327*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvlfsx [[REG3:[0-9]+]], 3, [[REG1]]
328*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvlfsx [[REG4:[0-9]+]], 3, [[REG2]]
329*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvlpclsx [[REG5:[0-5]+]], 0, 3
330*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvlfsx [[REG6:[0-9]+]], 0, 3
331*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvfperm 2, [[REG4]], [[REG3]], [[REG5]]
332*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvfperm 1, [[REG6]], [[REG4]], [[REG5]]
333*9880d681SAndroid Build Coastguard Worker; CHECK: blr
334*9880d681SAndroid Build Coastguard Worker}
335*9880d681SAndroid Build Coastguard Worker
336*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @test_l_qv4double(<4 x double>* %p) #1 {
337*9880d681SAndroid Build Coastguard Workerentry:
338*9880d681SAndroid Build Coastguard Worker  %r = load <4 x double>, <4 x double>* %p, align 8
339*9880d681SAndroid Build Coastguard Worker  ret <4 x double> %r
340*9880d681SAndroid Build Coastguard Worker
341*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_qv4double
342*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 31
343*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvlpcldx 0, 0, 3
344*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvlfdx [[REG2:[0-9]+]], 3, [[REG1]]
345*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvlfdx [[REG3:[0-9]+]], 0, 3
346*9880d681SAndroid Build Coastguard Worker; CHECK: qvfperm 1, [[REG3]], [[REG2]], 0
347*9880d681SAndroid Build Coastguard Worker; CHECK: blr
348*9880d681SAndroid Build Coastguard Worker}
349*9880d681SAndroid Build Coastguard Worker
350*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_l_qv8double(<8 x double>* %p) #1 {
351*9880d681SAndroid Build Coastguard Workerentry:
352*9880d681SAndroid Build Coastguard Worker  %r = load <8 x double>, <8 x double>* %p, align 8
353*9880d681SAndroid Build Coastguard Worker  ret <8 x double> %r
354*9880d681SAndroid Build Coastguard Worker
355*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_l_qv8double
356*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 63
357*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG2:[0-9]+]], 32
358*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvlfdx [[REG3:[0-9]+]], 3, [[REG1]]
359*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvlfdx [[REG4:[0-9]+]], 3, [[REG2]]
360*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvlpcldx [[REG5:[0-5]+]], 0, 3
361*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvlfdx [[REG6:[0-9]+]], 0, 3
362*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvfperm 2, [[REG4]], [[REG3]], [[REG5]]
363*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvfperm 1, [[REG6]], [[REG4]], [[REG5]]
364*9880d681SAndroid Build Coastguard Worker; CHECK: blr
365*9880d681SAndroid Build Coastguard Worker}
366*9880d681SAndroid Build Coastguard Worker
367*9880d681SAndroid Build Coastguard Workerdefine void @test_s_v16i8(<16 x i8>* %p, <16 x i8> %v) #0 {
368*9880d681SAndroid Build Coastguard Workerentry:
369*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %v, <16 x i8>* %p, align 1
370*9880d681SAndroid Build Coastguard Worker  ret void
371*9880d681SAndroid Build Coastguard Worker
372*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_s_v16i8
373*9880d681SAndroid Build Coastguard Worker; CHECK: stxvw4x 34, 0, 3
374*9880d681SAndroid Build Coastguard Worker; CHECK: blr
375*9880d681SAndroid Build Coastguard Worker}
376*9880d681SAndroid Build Coastguard Worker
377*9880d681SAndroid Build Coastguard Workerdefine void @test_s_v32i8(<32 x i8>* %p, <32 x i8> %v) #0 {
378*9880d681SAndroid Build Coastguard Workerentry:
379*9880d681SAndroid Build Coastguard Worker  store <32 x i8> %v, <32 x i8>* %p, align 1
380*9880d681SAndroid Build Coastguard Worker  ret void
381*9880d681SAndroid Build Coastguard Worker
382*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_s_v32i8
383*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 16
384*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stxvw4x 35, 3, [[REG1]]
385*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stxvw4x 34, 0, 3
386*9880d681SAndroid Build Coastguard Worker; CHECK: blr
387*9880d681SAndroid Build Coastguard Worker}
388*9880d681SAndroid Build Coastguard Worker
389*9880d681SAndroid Build Coastguard Workerdefine void @test_s_v8i16(<8 x i16>* %p, <8 x i16> %v) #0 {
390*9880d681SAndroid Build Coastguard Workerentry:
391*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %v, <8 x i16>* %p, align 2
392*9880d681SAndroid Build Coastguard Worker  ret void
393*9880d681SAndroid Build Coastguard Worker
394*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_s_v8i16
395*9880d681SAndroid Build Coastguard Worker; CHECK: stxvw4x 34, 0, 3
396*9880d681SAndroid Build Coastguard Worker; CHECK: blr
397*9880d681SAndroid Build Coastguard Worker}
398*9880d681SAndroid Build Coastguard Worker
399*9880d681SAndroid Build Coastguard Workerdefine void @test_s_v16i16(<16 x i16>* %p, <16 x i16> %v) #0 {
400*9880d681SAndroid Build Coastguard Workerentry:
401*9880d681SAndroid Build Coastguard Worker  store <16 x i16> %v, <16 x i16>* %p, align 2
402*9880d681SAndroid Build Coastguard Worker  ret void
403*9880d681SAndroid Build Coastguard Worker
404*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_s_v16i16
405*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 16
406*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stxvw4x 35, 3, [[REG1]]
407*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stxvw4x 34, 0, 3
408*9880d681SAndroid Build Coastguard Worker; CHECK: blr
409*9880d681SAndroid Build Coastguard Worker}
410*9880d681SAndroid Build Coastguard Worker
411*9880d681SAndroid Build Coastguard Workerdefine void @test_s_v4i32(<4 x i32>* %p, <4 x i32> %v) #0 {
412*9880d681SAndroid Build Coastguard Workerentry:
413*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %v, <4 x i32>* %p, align 4
414*9880d681SAndroid Build Coastguard Worker  ret void
415*9880d681SAndroid Build Coastguard Worker
416*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_s_v4i32
417*9880d681SAndroid Build Coastguard Worker; CHECK: stxvw4x 34, 0, 3
418*9880d681SAndroid Build Coastguard Worker; CHECK: blr
419*9880d681SAndroid Build Coastguard Worker}
420*9880d681SAndroid Build Coastguard Worker
421*9880d681SAndroid Build Coastguard Workerdefine void @test_s_v8i32(<8 x i32>* %p, <8 x i32> %v) #0 {
422*9880d681SAndroid Build Coastguard Workerentry:
423*9880d681SAndroid Build Coastguard Worker  store <8 x i32> %v, <8 x i32>* %p, align 4
424*9880d681SAndroid Build Coastguard Worker  ret void
425*9880d681SAndroid Build Coastguard Worker
426*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_s_v8i32
427*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 16
428*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stxvw4x 35, 3, [[REG1]]
429*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stxvw4x 34, 0, 3
430*9880d681SAndroid Build Coastguard Worker; CHECK: blr
431*9880d681SAndroid Build Coastguard Worker}
432*9880d681SAndroid Build Coastguard Worker
433*9880d681SAndroid Build Coastguard Workerdefine void @test_s_v2i64(<2 x i64>* %p, <2 x i64> %v) #0 {
434*9880d681SAndroid Build Coastguard Workerentry:
435*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %v, <2 x i64>* %p, align 8
436*9880d681SAndroid Build Coastguard Worker  ret void
437*9880d681SAndroid Build Coastguard Worker
438*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_s_v2i64
439*9880d681SAndroid Build Coastguard Worker; CHECK: stxvd2x 34, 0, 3
440*9880d681SAndroid Build Coastguard Worker; CHECK: blr
441*9880d681SAndroid Build Coastguard Worker}
442*9880d681SAndroid Build Coastguard Worker
443*9880d681SAndroid Build Coastguard Workerdefine void @test_s_v4i64(<4 x i64>* %p, <4 x i64> %v) #0 {
444*9880d681SAndroid Build Coastguard Workerentry:
445*9880d681SAndroid Build Coastguard Worker  store <4 x i64> %v, <4 x i64>* %p, align 8
446*9880d681SAndroid Build Coastguard Worker  ret void
447*9880d681SAndroid Build Coastguard Worker
448*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_s_v4i64
449*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 16
450*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stxvd2x 35, 3, [[REG1]]
451*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stxvd2x 34, 0, 3
452*9880d681SAndroid Build Coastguard Worker; CHECK: blr
453*9880d681SAndroid Build Coastguard Worker}
454*9880d681SAndroid Build Coastguard Worker
455*9880d681SAndroid Build Coastguard Workerdefine void @test_s_v4float(<4 x float>* %p, <4 x float> %v) #0 {
456*9880d681SAndroid Build Coastguard Workerentry:
457*9880d681SAndroid Build Coastguard Worker  store <4 x float> %v, <4 x float>* %p, align 4
458*9880d681SAndroid Build Coastguard Worker  ret void
459*9880d681SAndroid Build Coastguard Worker
460*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_s_v4float
461*9880d681SAndroid Build Coastguard Worker; CHECK: stxvw4x 34, 0, 3
462*9880d681SAndroid Build Coastguard Worker; CHECK: blr
463*9880d681SAndroid Build Coastguard Worker}
464*9880d681SAndroid Build Coastguard Worker
465*9880d681SAndroid Build Coastguard Workerdefine void @test_s_v8float(<8 x float>* %p, <8 x float> %v) #0 {
466*9880d681SAndroid Build Coastguard Workerentry:
467*9880d681SAndroid Build Coastguard Worker  store <8 x float> %v, <8 x float>* %p, align 4
468*9880d681SAndroid Build Coastguard Worker  ret void
469*9880d681SAndroid Build Coastguard Worker
470*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_s_v8float
471*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 16
472*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stxvw4x 35, 3, [[REG1]]
473*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stxvw4x 34, 0, 3
474*9880d681SAndroid Build Coastguard Worker; CHECK: blr
475*9880d681SAndroid Build Coastguard Worker}
476*9880d681SAndroid Build Coastguard Worker
477*9880d681SAndroid Build Coastguard Workerdefine void @test_s_v2double(<2 x double>* %p, <2 x double> %v) #0 {
478*9880d681SAndroid Build Coastguard Workerentry:
479*9880d681SAndroid Build Coastguard Worker  store <2 x double> %v, <2 x double>* %p, align 8
480*9880d681SAndroid Build Coastguard Worker  ret void
481*9880d681SAndroid Build Coastguard Worker
482*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_s_v2double
483*9880d681SAndroid Build Coastguard Worker; CHECK: stxvd2x 34, 0, 3
484*9880d681SAndroid Build Coastguard Worker; CHECK: blr
485*9880d681SAndroid Build Coastguard Worker}
486*9880d681SAndroid Build Coastguard Worker
487*9880d681SAndroid Build Coastguard Workerdefine void @test_s_v4double(<4 x double>* %p, <4 x double> %v) #0 {
488*9880d681SAndroid Build Coastguard Workerentry:
489*9880d681SAndroid Build Coastguard Worker  store <4 x double> %v, <4 x double>* %p, align 8
490*9880d681SAndroid Build Coastguard Worker  ret void
491*9880d681SAndroid Build Coastguard Worker
492*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_s_v4double
493*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li [[REG1:[0-9]+]], 16
494*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stxvd2x 35, 3, [[REG1]]
495*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stxvd2x 34, 0, 3
496*9880d681SAndroid Build Coastguard Worker; CHECK: blr
497*9880d681SAndroid Build Coastguard Worker}
498*9880d681SAndroid Build Coastguard Worker
499*9880d681SAndroid Build Coastguard Workerdefine void @test_s_qv4float(<4 x float>* %p, <4 x float> %v) #1 {
500*9880d681SAndroid Build Coastguard Workerentry:
501*9880d681SAndroid Build Coastguard Worker  store <4 x float> %v, <4 x float>* %p, align 4
502*9880d681SAndroid Build Coastguard Worker  ret void
503*9880d681SAndroid Build Coastguard Worker
504*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_s_qv4float
505*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvesplati [[REG1:[0-9]+]], 1, 3
506*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvesplati [[REG2:[0-9]+]], 1, 2
507*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvesplati [[REG3:[0-9]+]], 1, 1
508*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stfs 1, 0(3)
509*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stfs [[REG1]], 12(3)
510*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stfs [[REG2]], 8(3)
511*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stfs [[REG3]], 4(3)
512*9880d681SAndroid Build Coastguard Worker; CHECK: blr
513*9880d681SAndroid Build Coastguard Worker}
514*9880d681SAndroid Build Coastguard Worker
515*9880d681SAndroid Build Coastguard Workerdefine void @test_s_qv8float(<8 x float>* %p, <8 x float> %v) #1 {
516*9880d681SAndroid Build Coastguard Workerentry:
517*9880d681SAndroid Build Coastguard Worker  store <8 x float> %v, <8 x float>* %p, align 4
518*9880d681SAndroid Build Coastguard Worker  ret void
519*9880d681SAndroid Build Coastguard Worker
520*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_s_qv8float
521*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvesplati [[REG1:[0-9]+]], 2, 3
522*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvesplati [[REG2:[0-9]+]], 2, 2
523*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvesplati [[REG3:[0-9]+]], 2, 1
524*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvesplati [[REG4:[0-9]+]], 1, 3
525*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvesplati [[REG5:[0-9]+]], 1, 2
526*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvesplati [[REG6:[0-9]+]], 1, 1
527*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stfs 2, 16(3)
528*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stfs 1, 0(3)
529*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stfs [[REG1]], 28(3)
530*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stfs [[REG2]], 24(3)
531*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stfs [[REG3]], 20(3)
532*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stfs [[REG4]], 12(3)
533*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stfs [[REG5]], 8(3)
534*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stfs [[REG6]], 4(3)
535*9880d681SAndroid Build Coastguard Worker; CHECK: blr
536*9880d681SAndroid Build Coastguard Worker}
537*9880d681SAndroid Build Coastguard Worker
538*9880d681SAndroid Build Coastguard Workerdefine void @test_s_qv4double(<4 x double>* %p, <4 x double> %v) #1 {
539*9880d681SAndroid Build Coastguard Workerentry:
540*9880d681SAndroid Build Coastguard Worker  store <4 x double> %v, <4 x double>* %p, align 8
541*9880d681SAndroid Build Coastguard Worker  ret void
542*9880d681SAndroid Build Coastguard Worker
543*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_s_qv4double
544*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvesplati [[REG1:[0-9]+]], 1, 3
545*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvesplati [[REG2:[0-9]+]], 1, 2
546*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvesplati [[REG3:[0-9]+]], 1, 1
547*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stfd 1, 0(3)
548*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stfd [[REG1]], 24(3)
549*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stfd [[REG2]], 16(3)
550*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stfd [[REG3]], 8(3)
551*9880d681SAndroid Build Coastguard Worker; CHECK: blr
552*9880d681SAndroid Build Coastguard Worker}
553*9880d681SAndroid Build Coastguard Worker
554*9880d681SAndroid Build Coastguard Workerdefine void @test_s_qv8double(<8 x double>* %p, <8 x double> %v) #1 {
555*9880d681SAndroid Build Coastguard Workerentry:
556*9880d681SAndroid Build Coastguard Worker  store <8 x double> %v, <8 x double>* %p, align 8
557*9880d681SAndroid Build Coastguard Worker  ret void
558*9880d681SAndroid Build Coastguard Worker
559*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_s_qv8double
560*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvesplati [[REG1:[0-9]+]], 2, 3
561*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvesplati [[REG2:[0-9]+]], 2, 2
562*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvesplati [[REG3:[0-9]+]], 2, 1
563*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvesplati [[REG4:[0-9]+]], 1, 3
564*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvesplati [[REG5:[0-9]+]], 1, 2
565*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: qvesplati [[REG6:[0-9]+]], 1, 1
566*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stfd 2, 32(3)
567*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stfd 1, 0(3)
568*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stfd [[REG1]], 56(3)
569*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stfd [[REG2]], 48(3)
570*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stfd [[REG3]], 40(3)
571*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stfd [[REG4]], 24(3)
572*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stfd [[REG5]], 16(3)
573*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: stfd [[REG6]], 8(3)
574*9880d681SAndroid Build Coastguard Worker; CHECK: blr
575*9880d681SAndroid Build Coastguard Worker}
576*9880d681SAndroid Build Coastguard Worker
577*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind "target-cpu"="pwr7" }
578*9880d681SAndroid Build Coastguard Workerattributes #1 = { nounwind "target-cpu"="a2q" }
579*9880d681SAndroid Build Coastguard Workerattributes #2 = { nounwind "target-cpu"="pwr8" }
580*9880d681SAndroid Build Coastguard Worker
581