xref: /aosp_15_r20/external/llvm/test/Analysis/CostModel/PowerPC/unal-vec-ldst.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s  -cost-model -analyze | 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: cost of 2 for instruction:   %r = load <16 x i8>, <16 x i8>* %p, align 1
12*9880d681SAndroid Build Coastguard Worker}
13*9880d681SAndroid Build Coastguard Worker
14*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_l_v32i8(<32 x i8>* %p) #0 {
15*9880d681SAndroid Build Coastguard Workerentry:
16*9880d681SAndroid Build Coastguard Worker  %r = load <32 x i8>, <32 x i8>* %p, align 1
17*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %r
18*9880d681SAndroid Build Coastguard Worker
19*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_v32i8
20*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 4 for instruction:   %r = load <32 x i8>, <32 x i8>* %p, align 1
21*9880d681SAndroid Build Coastguard Worker}
22*9880d681SAndroid Build Coastguard Worker
23*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_l_v8i16(<8 x i16>* %p) #0 {
24*9880d681SAndroid Build Coastguard Workerentry:
25*9880d681SAndroid Build Coastguard Worker  %r = load <8 x i16>, <8 x i16>* %p, align 2
26*9880d681SAndroid Build Coastguard Worker  ret <8 x i16> %r
27*9880d681SAndroid Build Coastguard Worker
28*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_v8i16
29*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 2 for instruction:   %r = load <8 x i16>, <8 x i16>* %p, align 2
30*9880d681SAndroid Build Coastguard Worker}
31*9880d681SAndroid Build Coastguard Worker
32*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_l_v16i16(<16 x i16>* %p) #0 {
33*9880d681SAndroid Build Coastguard Workerentry:
34*9880d681SAndroid Build Coastguard Worker  %r = load <16 x i16>, <16 x i16>* %p, align 2
35*9880d681SAndroid Build Coastguard Worker  ret <16 x i16> %r
36*9880d681SAndroid Build Coastguard Worker
37*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_v16i16
38*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 4 for instruction:   %r = load <16 x i16>, <16 x i16>* %p, align 2
39*9880d681SAndroid Build Coastguard Worker}
40*9880d681SAndroid Build Coastguard Worker
41*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_l_v4i32(<4 x i32>* %p) #0 {
42*9880d681SAndroid Build Coastguard Workerentry:
43*9880d681SAndroid Build Coastguard Worker  %r = load <4 x i32>, <4 x i32>* %p, align 4
44*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %r
45*9880d681SAndroid Build Coastguard Worker
46*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_v4i32
47*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 2 for instruction:   %r = load <4 x i32>, <4 x i32>* %p, align 4
48*9880d681SAndroid Build Coastguard Worker}
49*9880d681SAndroid Build Coastguard Worker
50*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_l_v8i32(<8 x i32>* %p) #0 {
51*9880d681SAndroid Build Coastguard Workerentry:
52*9880d681SAndroid Build Coastguard Worker  %r = load <8 x i32>, <8 x i32>* %p, align 4
53*9880d681SAndroid Build Coastguard Worker  ret <8 x i32> %r
54*9880d681SAndroid Build Coastguard Worker
55*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_v8i32
56*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 4 for instruction:   %r = load <8 x i32>, <8 x i32>* %p, align 4
57*9880d681SAndroid Build Coastguard Worker}
58*9880d681SAndroid Build Coastguard Worker
59*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_l_v2i64(<2 x i64>* %p) #0 {
60*9880d681SAndroid Build Coastguard Workerentry:
61*9880d681SAndroid Build Coastguard Worker  %r = load <2 x i64>, <2 x i64>* %p, align 8
62*9880d681SAndroid Build Coastguard Worker  ret <2 x i64> %r
63*9880d681SAndroid Build Coastguard Worker
64*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_v2i64
65*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 1 for instruction:   %r = load <2 x i64>, <2 x i64>* %p, align 8
66*9880d681SAndroid Build Coastguard Worker}
67*9880d681SAndroid Build Coastguard Worker
68*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test_l_v4i64(<4 x i64>* %p) #0 {
69*9880d681SAndroid Build Coastguard Workerentry:
70*9880d681SAndroid Build Coastguard Worker  %r = load <4 x i64>, <4 x i64>* %p, align 8
71*9880d681SAndroid Build Coastguard Worker  ret <4 x i64> %r
72*9880d681SAndroid Build Coastguard Worker
73*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_v4i64
74*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 2 for instruction:   %r = load <4 x i64>, <4 x i64>* %p, align 8
75*9880d681SAndroid Build Coastguard Worker}
76*9880d681SAndroid Build Coastguard Worker
77*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_l_v4float(<4 x float>* %p) #0 {
78*9880d681SAndroid Build Coastguard Workerentry:
79*9880d681SAndroid Build Coastguard Worker  %r = load <4 x float>, <4 x float>* %p, align 4
80*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %r
81*9880d681SAndroid Build Coastguard Worker
82*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_v4float
83*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 2 for instruction:   %r = load <4 x float>, <4 x float>* %p, align 4
84*9880d681SAndroid Build Coastguard Worker}
85*9880d681SAndroid Build Coastguard Worker
86*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_l_v8float(<8 x float>* %p) #0 {
87*9880d681SAndroid Build Coastguard Workerentry:
88*9880d681SAndroid Build Coastguard Worker  %r = load <8 x float>, <8 x float>* %p, align 4
89*9880d681SAndroid Build Coastguard Worker  ret <8 x float> %r
90*9880d681SAndroid Build Coastguard Worker
91*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_v8float
92*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 4 for instruction:   %r = load <8 x float>, <8 x float>* %p, align 4
93*9880d681SAndroid Build Coastguard Worker}
94*9880d681SAndroid Build Coastguard Worker
95*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @test_l_v2double(<2 x double>* %p) #0 {
96*9880d681SAndroid Build Coastguard Workerentry:
97*9880d681SAndroid Build Coastguard Worker  %r = load <2 x double>, <2 x double>* %p, align 8
98*9880d681SAndroid Build Coastguard Worker  ret <2 x double> %r
99*9880d681SAndroid Build Coastguard Worker
100*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_v2double
101*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 1 for instruction:   %r = load <2 x double>, <2 x double>* %p, align 8
102*9880d681SAndroid Build Coastguard Worker}
103*9880d681SAndroid Build Coastguard Worker
104*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @test_l_v4double(<4 x double>* %p) #0 {
105*9880d681SAndroid Build Coastguard Workerentry:
106*9880d681SAndroid Build Coastguard Worker  %r = load <4 x double>, <4 x double>* %p, align 8
107*9880d681SAndroid Build Coastguard Worker  ret <4 x double> %r
108*9880d681SAndroid Build Coastguard Worker
109*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_v4double
110*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 2 for instruction:   %r = load <4 x double>, <4 x double>* %p, align 8
111*9880d681SAndroid Build Coastguard Worker}
112*9880d681SAndroid Build Coastguard Worker
113*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test_l_p8v16i8(<16 x i8>* %p) #2 {
114*9880d681SAndroid Build Coastguard Workerentry:
115*9880d681SAndroid Build Coastguard Worker  %r = load <16 x i8>, <16 x i8>* %p, align 1
116*9880d681SAndroid Build Coastguard Worker  ret <16 x i8> %r
117*9880d681SAndroid Build Coastguard Worker
118*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_p8v16i8
119*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 1 for instruction:   %r = load <16 x i8>, <16 x i8>* %p, align 1
120*9880d681SAndroid Build Coastguard Worker}
121*9880d681SAndroid Build Coastguard Worker
122*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test_l_p8v32i8(<32 x i8>* %p) #2 {
123*9880d681SAndroid Build Coastguard Workerentry:
124*9880d681SAndroid Build Coastguard Worker  %r = load <32 x i8>, <32 x i8>* %p, align 1
125*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %r
126*9880d681SAndroid Build Coastguard Worker
127*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_p8v32i8
128*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 2 for instruction:   %r = load <32 x i8>, <32 x i8>* %p, align 1
129*9880d681SAndroid Build Coastguard Worker}
130*9880d681SAndroid Build Coastguard Worker
131*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_l_p8v8i16(<8 x i16>* %p) #2 {
132*9880d681SAndroid Build Coastguard Workerentry:
133*9880d681SAndroid Build Coastguard Worker  %r = load <8 x i16>, <8 x i16>* %p, align 2
134*9880d681SAndroid Build Coastguard Worker  ret <8 x i16> %r
135*9880d681SAndroid Build Coastguard Worker
136*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_p8v8i16
137*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 1 for instruction:   %r = load <8 x i16>, <8 x i16>* %p, align 2
138*9880d681SAndroid Build Coastguard Worker}
139*9880d681SAndroid Build Coastguard Worker
140*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test_l_p8v16i16(<16 x i16>* %p) #2 {
141*9880d681SAndroid Build Coastguard Workerentry:
142*9880d681SAndroid Build Coastguard Worker  %r = load <16 x i16>, <16 x i16>* %p, align 2
143*9880d681SAndroid Build Coastguard Worker  ret <16 x i16> %r
144*9880d681SAndroid Build Coastguard Worker
145*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_p8v16i16
146*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 2 for instruction:   %r = load <16 x i16>, <16 x i16>* %p, align 2
147*9880d681SAndroid Build Coastguard Worker}
148*9880d681SAndroid Build Coastguard Worker
149*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_l_p8v4i32(<4 x i32>* %p) #2 {
150*9880d681SAndroid Build Coastguard Workerentry:
151*9880d681SAndroid Build Coastguard Worker  %r = load <4 x i32>, <4 x i32>* %p, align 4
152*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %r
153*9880d681SAndroid Build Coastguard Worker
154*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_p8v4i32
155*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 1 for instruction:   %r = load <4 x i32>, <4 x i32>* %p, align 4
156*9880d681SAndroid Build Coastguard Worker}
157*9880d681SAndroid Build Coastguard Worker
158*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test_l_p8v8i32(<8 x i32>* %p) #2 {
159*9880d681SAndroid Build Coastguard Workerentry:
160*9880d681SAndroid Build Coastguard Worker  %r = load <8 x i32>, <8 x i32>* %p, align 4
161*9880d681SAndroid Build Coastguard Worker  ret <8 x i32> %r
162*9880d681SAndroid Build Coastguard Worker
163*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_p8v8i32
164*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 2 for instruction:   %r = load <8 x i32>, <8 x i32>* %p, align 4
165*9880d681SAndroid Build Coastguard Worker}
166*9880d681SAndroid Build Coastguard Worker
167*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_l_p8v2i64(<2 x i64>* %p) #2 {
168*9880d681SAndroid Build Coastguard Workerentry:
169*9880d681SAndroid Build Coastguard Worker  %r = load <2 x i64>, <2 x i64>* %p, align 8
170*9880d681SAndroid Build Coastguard Worker  ret <2 x i64> %r
171*9880d681SAndroid Build Coastguard Worker
172*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_p8v2i64
173*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 1 for instruction:   %r = load <2 x i64>, <2 x i64>* %p, align 8
174*9880d681SAndroid Build Coastguard Worker}
175*9880d681SAndroid Build Coastguard Worker
176*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test_l_p8v4i64(<4 x i64>* %p) #2 {
177*9880d681SAndroid Build Coastguard Workerentry:
178*9880d681SAndroid Build Coastguard Worker  %r = load <4 x i64>, <4 x i64>* %p, align 8
179*9880d681SAndroid Build Coastguard Worker  ret <4 x i64> %r
180*9880d681SAndroid Build Coastguard Worker
181*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_p8v4i64
182*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 2 for instruction:   %r = load <4 x i64>, <4 x i64>* %p, align 8
183*9880d681SAndroid Build Coastguard Worker}
184*9880d681SAndroid Build Coastguard Worker
185*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_l_p8v4float(<4 x float>* %p) #2 {
186*9880d681SAndroid Build Coastguard Workerentry:
187*9880d681SAndroid Build Coastguard Worker  %r = load <4 x float>, <4 x float>* %p, align 4
188*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %r
189*9880d681SAndroid Build Coastguard Worker
190*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_p8v4float
191*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 1 for instruction:   %r = load <4 x float>, <4 x float>* %p, align 4
192*9880d681SAndroid Build Coastguard Worker}
193*9880d681SAndroid Build Coastguard Worker
194*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_l_p8v8float(<8 x float>* %p) #2 {
195*9880d681SAndroid Build Coastguard Workerentry:
196*9880d681SAndroid Build Coastguard Worker  %r = load <8 x float>, <8 x float>* %p, align 4
197*9880d681SAndroid Build Coastguard Worker  ret <8 x float> %r
198*9880d681SAndroid Build Coastguard Worker
199*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_p8v8float
200*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 2 for instruction:   %r = load <8 x float>, <8 x float>* %p, align 4
201*9880d681SAndroid Build Coastguard Worker}
202*9880d681SAndroid Build Coastguard Worker
203*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @test_l_p8v2double(<2 x double>* %p) #2 {
204*9880d681SAndroid Build Coastguard Workerentry:
205*9880d681SAndroid Build Coastguard Worker  %r = load <2 x double>, <2 x double>* %p, align 8
206*9880d681SAndroid Build Coastguard Worker  ret <2 x double> %r
207*9880d681SAndroid Build Coastguard Worker
208*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_p8v2double
209*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 1 for instruction:   %r = load <2 x double>, <2 x double>* %p, align 8
210*9880d681SAndroid Build Coastguard Worker}
211*9880d681SAndroid Build Coastguard Worker
212*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @test_l_p8v4double(<4 x double>* %p) #2 {
213*9880d681SAndroid Build Coastguard Workerentry:
214*9880d681SAndroid Build Coastguard Worker  %r = load <4 x double>, <4 x double>* %p, align 8
215*9880d681SAndroid Build Coastguard Worker  ret <4 x double> %r
216*9880d681SAndroid Build Coastguard Worker
217*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_p8v4double
218*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 2 for instruction:   %r = load <4 x double>, <4 x double>* %p, align 8
219*9880d681SAndroid Build Coastguard Worker}
220*9880d681SAndroid Build Coastguard Worker
221*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_l_qv4float(<4 x float>* %p) #1 {
222*9880d681SAndroid Build Coastguard Workerentry:
223*9880d681SAndroid Build Coastguard Worker  %r = load <4 x float>, <4 x float>* %p, align 4
224*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %r
225*9880d681SAndroid Build Coastguard Worker
226*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_qv4float
227*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 2 for instruction:   %r = load <4 x float>, <4 x float>* %p, align 4
228*9880d681SAndroid Build Coastguard Worker}
229*9880d681SAndroid Build Coastguard Worker
230*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @test_l_qv8float(<8 x float>* %p) #1 {
231*9880d681SAndroid Build Coastguard Workerentry:
232*9880d681SAndroid Build Coastguard Worker  %r = load <8 x float>, <8 x float>* %p, align 4
233*9880d681SAndroid Build Coastguard Worker  ret <8 x float> %r
234*9880d681SAndroid Build Coastguard Worker
235*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_qv8float
236*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 4 for instruction:   %r = load <8 x float>, <8 x float>* %p, align 4
237*9880d681SAndroid Build Coastguard Worker}
238*9880d681SAndroid Build Coastguard Worker
239*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @test_l_qv4double(<4 x double>* %p) #1 {
240*9880d681SAndroid Build Coastguard Workerentry:
241*9880d681SAndroid Build Coastguard Worker  %r = load <4 x double>, <4 x double>* %p, align 8
242*9880d681SAndroid Build Coastguard Worker  ret <4 x double> %r
243*9880d681SAndroid Build Coastguard Worker
244*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_qv4double
245*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 2 for instruction:   %r = load <4 x double>, <4 x double>* %p, align 8
246*9880d681SAndroid Build Coastguard Worker}
247*9880d681SAndroid Build Coastguard Worker
248*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @test_l_qv8double(<8 x double>* %p) #1 {
249*9880d681SAndroid Build Coastguard Workerentry:
250*9880d681SAndroid Build Coastguard Worker  %r = load <8 x double>, <8 x double>* %p, align 8
251*9880d681SAndroid Build Coastguard Worker  ret <8 x double> %r
252*9880d681SAndroid Build Coastguard Worker
253*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_l_qv8double
254*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 4 for instruction:   %r = load <8 x double>, <8 x double>* %p, align 8
255*9880d681SAndroid Build Coastguard Worker}
256*9880d681SAndroid Build Coastguard Worker
257*9880d681SAndroid Build Coastguard Workerdefine void @test_s_v16i8(<16 x i8>* %p, <16 x i8> %v) #0 {
258*9880d681SAndroid Build Coastguard Workerentry:
259*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %v, <16 x i8>* %p, align 1
260*9880d681SAndroid Build Coastguard Worker  ret void
261*9880d681SAndroid Build Coastguard Worker
262*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_s_v16i8
263*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 1 for instruction:   store <16 x i8> %v, <16 x i8>* %p, align 1
264*9880d681SAndroid Build Coastguard Worker}
265*9880d681SAndroid Build Coastguard Worker
266*9880d681SAndroid Build Coastguard Workerdefine void @test_s_v32i8(<32 x i8>* %p, <32 x i8> %v) #0 {
267*9880d681SAndroid Build Coastguard Workerentry:
268*9880d681SAndroid Build Coastguard Worker  store <32 x i8> %v, <32 x i8>* %p, align 1
269*9880d681SAndroid Build Coastguard Worker  ret void
270*9880d681SAndroid Build Coastguard Worker
271*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_s_v32i8
272*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 2 for instruction:   store <32 x i8> %v, <32 x i8>* %p, align 1
273*9880d681SAndroid Build Coastguard Worker}
274*9880d681SAndroid Build Coastguard Worker
275*9880d681SAndroid Build Coastguard Workerdefine void @test_s_v8i16(<8 x i16>* %p, <8 x i16> %v) #0 {
276*9880d681SAndroid Build Coastguard Workerentry:
277*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %v, <8 x i16>* %p, align 2
278*9880d681SAndroid Build Coastguard Worker  ret void
279*9880d681SAndroid Build Coastguard Worker
280*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_s_v8i16
281*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 1 for instruction:   store <8 x i16> %v, <8 x i16>* %p, align 2
282*9880d681SAndroid Build Coastguard Worker}
283*9880d681SAndroid Build Coastguard Worker
284*9880d681SAndroid Build Coastguard Workerdefine void @test_s_v16i16(<16 x i16>* %p, <16 x i16> %v) #0 {
285*9880d681SAndroid Build Coastguard Workerentry:
286*9880d681SAndroid Build Coastguard Worker  store <16 x i16> %v, <16 x i16>* %p, align 2
287*9880d681SAndroid Build Coastguard Worker  ret void
288*9880d681SAndroid Build Coastguard Worker
289*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_s_v16i16
290*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 2 for instruction:   store <16 x i16> %v, <16 x i16>* %p, align 2
291*9880d681SAndroid Build Coastguard Worker}
292*9880d681SAndroid Build Coastguard Worker
293*9880d681SAndroid Build Coastguard Workerdefine void @test_s_v4i32(<4 x i32>* %p, <4 x i32> %v) #0 {
294*9880d681SAndroid Build Coastguard Workerentry:
295*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %v, <4 x i32>* %p, align 4
296*9880d681SAndroid Build Coastguard Worker  ret void
297*9880d681SAndroid Build Coastguard Worker
298*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_s_v4i32
299*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 1 for instruction:   store <4 x i32> %v, <4 x i32>* %p, align 4
300*9880d681SAndroid Build Coastguard Worker}
301*9880d681SAndroid Build Coastguard Worker
302*9880d681SAndroid Build Coastguard Workerdefine void @test_s_v8i32(<8 x i32>* %p, <8 x i32> %v) #0 {
303*9880d681SAndroid Build Coastguard Workerentry:
304*9880d681SAndroid Build Coastguard Worker  store <8 x i32> %v, <8 x i32>* %p, align 4
305*9880d681SAndroid Build Coastguard Worker  ret void
306*9880d681SAndroid Build Coastguard Worker
307*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_s_v8i32
308*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 2 for instruction:   store <8 x i32> %v, <8 x i32>* %p, align 4
309*9880d681SAndroid Build Coastguard Worker}
310*9880d681SAndroid Build Coastguard Worker
311*9880d681SAndroid Build Coastguard Workerdefine void @test_s_v2i64(<2 x i64>* %p, <2 x i64> %v) #0 {
312*9880d681SAndroid Build Coastguard Workerentry:
313*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %v, <2 x i64>* %p, align 8
314*9880d681SAndroid Build Coastguard Worker  ret void
315*9880d681SAndroid Build Coastguard Worker
316*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_s_v2i64
317*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 1 for instruction:   store <2 x i64> %v, <2 x i64>* %p, align 8
318*9880d681SAndroid Build Coastguard Worker}
319*9880d681SAndroid Build Coastguard Worker
320*9880d681SAndroid Build Coastguard Workerdefine void @test_s_v4i64(<4 x i64>* %p, <4 x i64> %v) #0 {
321*9880d681SAndroid Build Coastguard Workerentry:
322*9880d681SAndroid Build Coastguard Worker  store <4 x i64> %v, <4 x i64>* %p, align 8
323*9880d681SAndroid Build Coastguard Worker  ret void
324*9880d681SAndroid Build Coastguard Worker
325*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_s_v4i64
326*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 2 for instruction:   store <4 x i64> %v, <4 x i64>* %p, align 8
327*9880d681SAndroid Build Coastguard Worker}
328*9880d681SAndroid Build Coastguard Worker
329*9880d681SAndroid Build Coastguard Workerdefine void @test_s_v4float(<4 x float>* %p, <4 x float> %v) #0 {
330*9880d681SAndroid Build Coastguard Workerentry:
331*9880d681SAndroid Build Coastguard Worker  store <4 x float> %v, <4 x float>* %p, align 4
332*9880d681SAndroid Build Coastguard Worker  ret void
333*9880d681SAndroid Build Coastguard Worker
334*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_s_v4float
335*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 1 for instruction:   store <4 x float> %v, <4 x float>* %p, align 4
336*9880d681SAndroid Build Coastguard Worker}
337*9880d681SAndroid Build Coastguard Worker
338*9880d681SAndroid Build Coastguard Workerdefine void @test_s_v8float(<8 x float>* %p, <8 x float> %v) #0 {
339*9880d681SAndroid Build Coastguard Workerentry:
340*9880d681SAndroid Build Coastguard Worker  store <8 x float> %v, <8 x float>* %p, align 4
341*9880d681SAndroid Build Coastguard Worker  ret void
342*9880d681SAndroid Build Coastguard Worker
343*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_s_v8float
344*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 2 for instruction:   store <8 x float> %v, <8 x float>* %p, align 4
345*9880d681SAndroid Build Coastguard Worker}
346*9880d681SAndroid Build Coastguard Worker
347*9880d681SAndroid Build Coastguard Workerdefine void @test_s_v2double(<2 x double>* %p, <2 x double> %v) #0 {
348*9880d681SAndroid Build Coastguard Workerentry:
349*9880d681SAndroid Build Coastguard Worker  store <2 x double> %v, <2 x double>* %p, align 8
350*9880d681SAndroid Build Coastguard Worker  ret void
351*9880d681SAndroid Build Coastguard Worker
352*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_s_v2double
353*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 1 for instruction:   store <2 x double> %v, <2 x double>* %p, align 8
354*9880d681SAndroid Build Coastguard Worker}
355*9880d681SAndroid Build Coastguard Worker
356*9880d681SAndroid Build Coastguard Workerdefine void @test_s_v4double(<4 x double>* %p, <4 x double> %v) #0 {
357*9880d681SAndroid Build Coastguard Workerentry:
358*9880d681SAndroid Build Coastguard Worker  store <4 x double> %v, <4 x double>* %p, align 8
359*9880d681SAndroid Build Coastguard Worker  ret void
360*9880d681SAndroid Build Coastguard Worker
361*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_s_v4double
362*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 2 for instruction:   store <4 x double> %v, <4 x double>* %p, align 8
363*9880d681SAndroid Build Coastguard Worker}
364*9880d681SAndroid Build Coastguard Worker
365*9880d681SAndroid Build Coastguard Workerdefine void @test_s_qv4float(<4 x float>* %p, <4 x float> %v) #1 {
366*9880d681SAndroid Build Coastguard Workerentry:
367*9880d681SAndroid Build Coastguard Worker  store <4 x float> %v, <4 x float>* %p, align 4
368*9880d681SAndroid Build Coastguard Worker  ret void
369*9880d681SAndroid Build Coastguard Worker
370*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_s_qv4float
371*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 7 for instruction:   store <4 x float> %v, <4 x float>* %p, align 4
372*9880d681SAndroid Build Coastguard Worker}
373*9880d681SAndroid Build Coastguard Worker
374*9880d681SAndroid Build Coastguard Workerdefine void @test_s_qv8float(<8 x float>* %p, <8 x float> %v) #1 {
375*9880d681SAndroid Build Coastguard Workerentry:
376*9880d681SAndroid Build Coastguard Worker  store <8 x float> %v, <8 x float>* %p, align 4
377*9880d681SAndroid Build Coastguard Worker  ret void
378*9880d681SAndroid Build Coastguard Worker
379*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_s_qv8float
380*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 15 for instruction:   store <8 x float> %v, <8 x float>* %p, align 4
381*9880d681SAndroid Build Coastguard Worker}
382*9880d681SAndroid Build Coastguard Worker
383*9880d681SAndroid Build Coastguard Workerdefine void @test_s_qv4double(<4 x double>* %p, <4 x double> %v) #1 {
384*9880d681SAndroid Build Coastguard Workerentry:
385*9880d681SAndroid Build Coastguard Worker  store <4 x double> %v, <4 x double>* %p, align 8
386*9880d681SAndroid Build Coastguard Worker  ret void
387*9880d681SAndroid Build Coastguard Worker
388*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_s_qv4double
389*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 7 for instruction:   store <4 x double> %v, <4 x double>* %p, align 8
390*9880d681SAndroid Build Coastguard Worker}
391*9880d681SAndroid Build Coastguard Worker
392*9880d681SAndroid Build Coastguard Workerdefine void @test_s_qv8double(<8 x double>* %p, <8 x double> %v) #1 {
393*9880d681SAndroid Build Coastguard Workerentry:
394*9880d681SAndroid Build Coastguard Worker  store <8 x double> %v, <8 x double>* %p, align 8
395*9880d681SAndroid Build Coastguard Worker  ret void
396*9880d681SAndroid Build Coastguard Worker
397*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_s_qv8double
398*9880d681SAndroid Build Coastguard Worker; CHECK: cost of 15 for instruction:   store <8 x double> %v, <8 x double>* %p, align 8
399*9880d681SAndroid Build Coastguard Worker}
400*9880d681SAndroid Build Coastguard Worker
401*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind "target-cpu"="pwr7" }
402*9880d681SAndroid Build Coastguard Workerattributes #1 = { nounwind "target-cpu"="a2q" }
403*9880d681SAndroid Build Coastguard Workerattributes #2 = { nounwind "target-cpu"="pwr8" }
404*9880d681SAndroid Build Coastguard Worker
405