xref: /aosp_15_r20/external/llvm/test/CodeGen/AArch64/arm64-st1.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=arm64 -aarch64-neon-syntax=apple -verify-machineinstrs | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_16b(<16 x i8> %A, i8* %D) {
4*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_16b
5*9880d681SAndroid Build Coastguard Worker; CHECK: st1.b
6*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <16 x i8> %A, i32 1
7*9880d681SAndroid Build Coastguard Worker  store i8 %tmp, i8* %D
8*9880d681SAndroid Build Coastguard Worker  ret void
9*9880d681SAndroid Build Coastguard Worker}
10*9880d681SAndroid Build Coastguard Worker
11*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_ro_16b(<16 x i8> %A, i8* %D, i64 %offset) {
12*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_ro_16b
13*9880d681SAndroid Build Coastguard Worker; CHECK: add x[[XREG:[0-9]+]], x0, x1
14*9880d681SAndroid Build Coastguard Worker; CHECK: st1.b { v0 }[1], [x[[XREG]]]
15*9880d681SAndroid Build Coastguard Worker  %ptr = getelementptr i8, i8* %D, i64 %offset
16*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <16 x i8> %A, i32 1
17*9880d681SAndroid Build Coastguard Worker  store i8 %tmp, i8* %ptr
18*9880d681SAndroid Build Coastguard Worker  ret void
19*9880d681SAndroid Build Coastguard Worker}
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Workerdefine void @st1lane0_ro_16b(<16 x i8> %A, i8* %D, i64 %offset) {
22*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane0_ro_16b
23*9880d681SAndroid Build Coastguard Worker; CHECK: add x[[XREG:[0-9]+]], x0, x1
24*9880d681SAndroid Build Coastguard Worker; CHECK: st1.b { v0 }[0], [x[[XREG]]]
25*9880d681SAndroid Build Coastguard Worker  %ptr = getelementptr i8, i8* %D, i64 %offset
26*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <16 x i8> %A, i32 0
27*9880d681SAndroid Build Coastguard Worker  store i8 %tmp, i8* %ptr
28*9880d681SAndroid Build Coastguard Worker  ret void
29*9880d681SAndroid Build Coastguard Worker}
30*9880d681SAndroid Build Coastguard Worker
31*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_8h(<8 x i16> %A, i16* %D) {
32*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_8h
33*9880d681SAndroid Build Coastguard Worker; CHECK: st1.h
34*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <8 x i16> %A, i32 1
35*9880d681SAndroid Build Coastguard Worker  store i16 %tmp, i16* %D
36*9880d681SAndroid Build Coastguard Worker  ret void
37*9880d681SAndroid Build Coastguard Worker}
38*9880d681SAndroid Build Coastguard Worker
39*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_ro_8h(<8 x i16> %A, i16* %D, i64 %offset) {
40*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_ro_8h
41*9880d681SAndroid Build Coastguard Worker; CHECK: add x[[XREG:[0-9]+]], x0, x1
42*9880d681SAndroid Build Coastguard Worker; CHECK: st1.h { v0 }[1], [x[[XREG]]]
43*9880d681SAndroid Build Coastguard Worker  %ptr = getelementptr i16, i16* %D, i64 %offset
44*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <8 x i16> %A, i32 1
45*9880d681SAndroid Build Coastguard Worker  store i16 %tmp, i16* %ptr
46*9880d681SAndroid Build Coastguard Worker  ret void
47*9880d681SAndroid Build Coastguard Worker}
48*9880d681SAndroid Build Coastguard Worker
49*9880d681SAndroid Build Coastguard Workerdefine void @st1lane0_ro_8h(<8 x i16> %A, i16* %D, i64 %offset) {
50*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane0_ro_8h
51*9880d681SAndroid Build Coastguard Worker; CHECK: str h0, [x0, x1, lsl #1]
52*9880d681SAndroid Build Coastguard Worker  %ptr = getelementptr i16, i16* %D, i64 %offset
53*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <8 x i16> %A, i32 0
54*9880d681SAndroid Build Coastguard Worker  store i16 %tmp, i16* %ptr
55*9880d681SAndroid Build Coastguard Worker  ret void
56*9880d681SAndroid Build Coastguard Worker}
57*9880d681SAndroid Build Coastguard Worker
58*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_4s(<4 x i32> %A, i32* %D) {
59*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_4s
60*9880d681SAndroid Build Coastguard Worker; CHECK: st1.s
61*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <4 x i32> %A, i32 1
62*9880d681SAndroid Build Coastguard Worker  store i32 %tmp, i32* %D
63*9880d681SAndroid Build Coastguard Worker  ret void
64*9880d681SAndroid Build Coastguard Worker}
65*9880d681SAndroid Build Coastguard Worker
66*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_ro_4s(<4 x i32> %A, i32* %D, i64 %offset) {
67*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_ro_4s
68*9880d681SAndroid Build Coastguard Worker; CHECK: add x[[XREG:[0-9]+]], x0, x1
69*9880d681SAndroid Build Coastguard Worker; CHECK: st1.s { v0 }[1], [x[[XREG]]]
70*9880d681SAndroid Build Coastguard Worker  %ptr = getelementptr i32, i32* %D, i64 %offset
71*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <4 x i32> %A, i32 1
72*9880d681SAndroid Build Coastguard Worker  store i32 %tmp, i32* %ptr
73*9880d681SAndroid Build Coastguard Worker  ret void
74*9880d681SAndroid Build Coastguard Worker}
75*9880d681SAndroid Build Coastguard Worker
76*9880d681SAndroid Build Coastguard Workerdefine void @st1lane0_ro_4s(<4 x i32> %A, i32* %D, i64 %offset) {
77*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane0_ro_4s
78*9880d681SAndroid Build Coastguard Worker; CHECK: str s0, [x0, x1, lsl #2]
79*9880d681SAndroid Build Coastguard Worker  %ptr = getelementptr i32, i32* %D, i64 %offset
80*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <4 x i32> %A, i32 0
81*9880d681SAndroid Build Coastguard Worker  store i32 %tmp, i32* %ptr
82*9880d681SAndroid Build Coastguard Worker  ret void
83*9880d681SAndroid Build Coastguard Worker}
84*9880d681SAndroid Build Coastguard Worker
85*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_4s_float(<4 x float> %A, float* %D) {
86*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_4s_float
87*9880d681SAndroid Build Coastguard Worker; CHECK: st1.s
88*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <4 x float> %A, i32 1
89*9880d681SAndroid Build Coastguard Worker  store float %tmp, float* %D
90*9880d681SAndroid Build Coastguard Worker  ret void
91*9880d681SAndroid Build Coastguard Worker}
92*9880d681SAndroid Build Coastguard Worker
93*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_ro_4s_float(<4 x float> %A, float* %D, i64 %offset) {
94*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_ro_4s_float
95*9880d681SAndroid Build Coastguard Worker; CHECK: add x[[XREG:[0-9]+]], x0, x1
96*9880d681SAndroid Build Coastguard Worker; CHECK: st1.s { v0 }[1], [x[[XREG]]]
97*9880d681SAndroid Build Coastguard Worker  %ptr = getelementptr float, float* %D, i64 %offset
98*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <4 x float> %A, i32 1
99*9880d681SAndroid Build Coastguard Worker  store float %tmp, float* %ptr
100*9880d681SAndroid Build Coastguard Worker  ret void
101*9880d681SAndroid Build Coastguard Worker}
102*9880d681SAndroid Build Coastguard Worker
103*9880d681SAndroid Build Coastguard Workerdefine void @st1lane0_ro_4s_float(<4 x float> %A, float* %D, i64 %offset) {
104*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane0_ro_4s_float
105*9880d681SAndroid Build Coastguard Worker; CHECK: str s0, [x0, x1, lsl #2]
106*9880d681SAndroid Build Coastguard Worker  %ptr = getelementptr float, float* %D, i64 %offset
107*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <4 x float> %A, i32 0
108*9880d681SAndroid Build Coastguard Worker  store float %tmp, float* %ptr
109*9880d681SAndroid Build Coastguard Worker  ret void
110*9880d681SAndroid Build Coastguard Worker}
111*9880d681SAndroid Build Coastguard Worker
112*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_2d(<2 x i64> %A, i64* %D) {
113*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_2d
114*9880d681SAndroid Build Coastguard Worker; CHECK: st1.d
115*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <2 x i64> %A, i32 1
116*9880d681SAndroid Build Coastguard Worker  store i64 %tmp, i64* %D
117*9880d681SAndroid Build Coastguard Worker  ret void
118*9880d681SAndroid Build Coastguard Worker}
119*9880d681SAndroid Build Coastguard Worker
120*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_ro_2d(<2 x i64> %A, i64* %D, i64 %offset) {
121*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_ro_2d
122*9880d681SAndroid Build Coastguard Worker; CHECK: add x[[XREG:[0-9]+]], x0, x1
123*9880d681SAndroid Build Coastguard Worker; CHECK: st1.d { v0 }[1], [x[[XREG]]]
124*9880d681SAndroid Build Coastguard Worker  %ptr = getelementptr i64, i64* %D, i64 %offset
125*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <2 x i64> %A, i32 1
126*9880d681SAndroid Build Coastguard Worker  store i64 %tmp, i64* %ptr
127*9880d681SAndroid Build Coastguard Worker  ret void
128*9880d681SAndroid Build Coastguard Worker}
129*9880d681SAndroid Build Coastguard Worker
130*9880d681SAndroid Build Coastguard Workerdefine void @st1lane0_ro_2d(<2 x i64> %A, i64* %D, i64 %offset) {
131*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane0_ro_2d
132*9880d681SAndroid Build Coastguard Worker; CHECK: str d0, [x0, x1, lsl #3]
133*9880d681SAndroid Build Coastguard Worker  %ptr = getelementptr i64, i64* %D, i64 %offset
134*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <2 x i64> %A, i32 0
135*9880d681SAndroid Build Coastguard Worker  store i64 %tmp, i64* %ptr
136*9880d681SAndroid Build Coastguard Worker  ret void
137*9880d681SAndroid Build Coastguard Worker}
138*9880d681SAndroid Build Coastguard Worker
139*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_2d_double(<2 x double> %A, double* %D) {
140*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_2d_double
141*9880d681SAndroid Build Coastguard Worker; CHECK: st1.d
142*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <2 x double> %A, i32 1
143*9880d681SAndroid Build Coastguard Worker  store double %tmp, double* %D
144*9880d681SAndroid Build Coastguard Worker  ret void
145*9880d681SAndroid Build Coastguard Worker}
146*9880d681SAndroid Build Coastguard Worker
147*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_ro_2d_double(<2 x double> %A, double* %D, i64 %offset) {
148*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_ro_2d_double
149*9880d681SAndroid Build Coastguard Worker; CHECK: add x[[XREG:[0-9]+]], x0, x1
150*9880d681SAndroid Build Coastguard Worker; CHECK: st1.d { v0 }[1], [x[[XREG]]]
151*9880d681SAndroid Build Coastguard Worker  %ptr = getelementptr double, double* %D, i64 %offset
152*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <2 x double> %A, i32 1
153*9880d681SAndroid Build Coastguard Worker  store double %tmp, double* %ptr
154*9880d681SAndroid Build Coastguard Worker  ret void
155*9880d681SAndroid Build Coastguard Worker}
156*9880d681SAndroid Build Coastguard Worker
157*9880d681SAndroid Build Coastguard Workerdefine void @st1lane0_ro_2d_double(<2 x double> %A, double* %D, i64 %offset) {
158*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane0_ro_2d_double
159*9880d681SAndroid Build Coastguard Worker; CHECK: str d0, [x0, x1, lsl #3]
160*9880d681SAndroid Build Coastguard Worker  %ptr = getelementptr double, double* %D, i64 %offset
161*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <2 x double> %A, i32 0
162*9880d681SAndroid Build Coastguard Worker  store double %tmp, double* %ptr
163*9880d681SAndroid Build Coastguard Worker  ret void
164*9880d681SAndroid Build Coastguard Worker}
165*9880d681SAndroid Build Coastguard Worker
166*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_8b(<8 x i8> %A, i8* %D) {
167*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_8b
168*9880d681SAndroid Build Coastguard Worker; CHECK: st1.b
169*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <8 x i8> %A, i32 1
170*9880d681SAndroid Build Coastguard Worker  store i8 %tmp, i8* %D
171*9880d681SAndroid Build Coastguard Worker  ret void
172*9880d681SAndroid Build Coastguard Worker}
173*9880d681SAndroid Build Coastguard Worker
174*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_ro_8b(<8 x i8> %A, i8* %D, i64 %offset) {
175*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_ro_8b
176*9880d681SAndroid Build Coastguard Worker; CHECK: add x[[XREG:[0-9]+]], x0, x1
177*9880d681SAndroid Build Coastguard Worker; CHECK: st1.b { v0 }[1], [x[[XREG]]]
178*9880d681SAndroid Build Coastguard Worker  %ptr = getelementptr i8, i8* %D, i64 %offset
179*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <8 x i8> %A, i32 1
180*9880d681SAndroid Build Coastguard Worker  store i8 %tmp, i8* %ptr
181*9880d681SAndroid Build Coastguard Worker  ret void
182*9880d681SAndroid Build Coastguard Worker}
183*9880d681SAndroid Build Coastguard Worker
184*9880d681SAndroid Build Coastguard Workerdefine void @st1lane0_ro_8b(<8 x i8> %A, i8* %D, i64 %offset) {
185*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane0_ro_8b
186*9880d681SAndroid Build Coastguard Worker; CHECK: add x[[XREG:[0-9]+]], x0, x1
187*9880d681SAndroid Build Coastguard Worker; CHECK: st1.b { v0 }[0], [x[[XREG]]]
188*9880d681SAndroid Build Coastguard Worker  %ptr = getelementptr i8, i8* %D, i64 %offset
189*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <8 x i8> %A, i32 0
190*9880d681SAndroid Build Coastguard Worker  store i8 %tmp, i8* %ptr
191*9880d681SAndroid Build Coastguard Worker  ret void
192*9880d681SAndroid Build Coastguard Worker}
193*9880d681SAndroid Build Coastguard Worker
194*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_4h(<4 x i16> %A, i16* %D) {
195*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_4h
196*9880d681SAndroid Build Coastguard Worker; CHECK: st1.h
197*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <4 x i16> %A, i32 1
198*9880d681SAndroid Build Coastguard Worker  store i16 %tmp, i16* %D
199*9880d681SAndroid Build Coastguard Worker  ret void
200*9880d681SAndroid Build Coastguard Worker}
201*9880d681SAndroid Build Coastguard Worker
202*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_ro_4h(<4 x i16> %A, i16* %D, i64 %offset) {
203*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_ro_4h
204*9880d681SAndroid Build Coastguard Worker; CHECK: add x[[XREG:[0-9]+]], x0, x1
205*9880d681SAndroid Build Coastguard Worker; CHECK: st1.h { v0 }[1], [x[[XREG]]]
206*9880d681SAndroid Build Coastguard Worker  %ptr = getelementptr i16, i16* %D, i64 %offset
207*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <4 x i16> %A, i32 1
208*9880d681SAndroid Build Coastguard Worker  store i16 %tmp, i16* %ptr
209*9880d681SAndroid Build Coastguard Worker  ret void
210*9880d681SAndroid Build Coastguard Worker}
211*9880d681SAndroid Build Coastguard Worker
212*9880d681SAndroid Build Coastguard Workerdefine void @st1lane0_ro_4h(<4 x i16> %A, i16* %D, i64 %offset) {
213*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane0_ro_4h
214*9880d681SAndroid Build Coastguard Worker; CHECK: str h0, [x0, x1, lsl #1]
215*9880d681SAndroid Build Coastguard Worker  %ptr = getelementptr i16, i16* %D, i64 %offset
216*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <4 x i16> %A, i32 0
217*9880d681SAndroid Build Coastguard Worker  store i16 %tmp, i16* %ptr
218*9880d681SAndroid Build Coastguard Worker  ret void
219*9880d681SAndroid Build Coastguard Worker}
220*9880d681SAndroid Build Coastguard Worker
221*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_2s(<2 x i32> %A, i32* %D) {
222*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_2s
223*9880d681SAndroid Build Coastguard Worker; CHECK: st1.s
224*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <2 x i32> %A, i32 1
225*9880d681SAndroid Build Coastguard Worker  store i32 %tmp, i32* %D
226*9880d681SAndroid Build Coastguard Worker  ret void
227*9880d681SAndroid Build Coastguard Worker}
228*9880d681SAndroid Build Coastguard Worker
229*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_ro_2s(<2 x i32> %A, i32* %D, i64 %offset) {
230*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_ro_2s
231*9880d681SAndroid Build Coastguard Worker; CHECK: add x[[XREG:[0-9]+]], x0, x1
232*9880d681SAndroid Build Coastguard Worker; CHECK: st1.s { v0 }[1], [x[[XREG]]]
233*9880d681SAndroid Build Coastguard Worker  %ptr = getelementptr i32, i32* %D, i64 %offset
234*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <2 x i32> %A, i32 1
235*9880d681SAndroid Build Coastguard Worker  store i32 %tmp, i32* %ptr
236*9880d681SAndroid Build Coastguard Worker  ret void
237*9880d681SAndroid Build Coastguard Worker}
238*9880d681SAndroid Build Coastguard Worker
239*9880d681SAndroid Build Coastguard Workerdefine void @st1lane0_ro_2s(<2 x i32> %A, i32* %D, i64 %offset) {
240*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane0_ro_2s
241*9880d681SAndroid Build Coastguard Worker; CHECK: str s0, [x0, x1, lsl #2]
242*9880d681SAndroid Build Coastguard Worker  %ptr = getelementptr i32, i32* %D, i64 %offset
243*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <2 x i32> %A, i32 0
244*9880d681SAndroid Build Coastguard Worker  store i32 %tmp, i32* %ptr
245*9880d681SAndroid Build Coastguard Worker  ret void
246*9880d681SAndroid Build Coastguard Worker}
247*9880d681SAndroid Build Coastguard Worker
248*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_2s_float(<2 x float> %A, float* %D) {
249*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_2s_float
250*9880d681SAndroid Build Coastguard Worker; CHECK: st1.s
251*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <2 x float> %A, i32 1
252*9880d681SAndroid Build Coastguard Worker  store float %tmp, float* %D
253*9880d681SAndroid Build Coastguard Worker  ret void
254*9880d681SAndroid Build Coastguard Worker}
255*9880d681SAndroid Build Coastguard Worker
256*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_ro_2s_float(<2 x float> %A, float* %D, i64 %offset) {
257*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_ro_2s_float
258*9880d681SAndroid Build Coastguard Worker; CHECK: add x[[XREG:[0-9]+]], x0, x1
259*9880d681SAndroid Build Coastguard Worker; CHECK: st1.s { v0 }[1], [x[[XREG]]]
260*9880d681SAndroid Build Coastguard Worker  %ptr = getelementptr float, float* %D, i64 %offset
261*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <2 x float> %A, i32 1
262*9880d681SAndroid Build Coastguard Worker  store float %tmp, float* %ptr
263*9880d681SAndroid Build Coastguard Worker  ret void
264*9880d681SAndroid Build Coastguard Worker}
265*9880d681SAndroid Build Coastguard Worker
266*9880d681SAndroid Build Coastguard Workerdefine void @st1lane0_ro_2s_float(<2 x float> %A, float* %D, i64 %offset) {
267*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane0_ro_2s_float
268*9880d681SAndroid Build Coastguard Worker; CHECK: str s0, [x0, x1, lsl #2]
269*9880d681SAndroid Build Coastguard Worker  %ptr = getelementptr float, float* %D, i64 %offset
270*9880d681SAndroid Build Coastguard Worker  %tmp = extractelement <2 x float> %A, i32 0
271*9880d681SAndroid Build Coastguard Worker  store float %tmp, float* %ptr
272*9880d681SAndroid Build Coastguard Worker  ret void
273*9880d681SAndroid Build Coastguard Worker}
274*9880d681SAndroid Build Coastguard Worker
275*9880d681SAndroid Build Coastguard Workerdefine void @st2lane_16b(<16 x i8> %A, <16 x i8> %B, i8* %D) {
276*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st2lane_16b
277*9880d681SAndroid Build Coastguard Worker; CHECK: st2.b
278*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st2lane.v16i8.p0i8(<16 x i8> %A, <16 x i8> %B, i64 1, i8* %D)
279*9880d681SAndroid Build Coastguard Worker  ret void
280*9880d681SAndroid Build Coastguard Worker}
281*9880d681SAndroid Build Coastguard Worker
282*9880d681SAndroid Build Coastguard Workerdefine void @st2lane_8h(<8 x i16> %A, <8 x i16> %B, i16* %D) {
283*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st2lane_8h
284*9880d681SAndroid Build Coastguard Worker; CHECK: st2.h
285*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st2lane.v8i16.p0i16(<8 x i16> %A, <8 x i16> %B, i64 1, i16* %D)
286*9880d681SAndroid Build Coastguard Worker  ret void
287*9880d681SAndroid Build Coastguard Worker}
288*9880d681SAndroid Build Coastguard Worker
289*9880d681SAndroid Build Coastguard Workerdefine void @st2lane_4s(<4 x i32> %A, <4 x i32> %B, i32* %D) {
290*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st2lane_4s
291*9880d681SAndroid Build Coastguard Worker; CHECK: st2.s
292*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st2lane.v4i32.p0i32(<4 x i32> %A, <4 x i32> %B, i64 1, i32* %D)
293*9880d681SAndroid Build Coastguard Worker  ret void
294*9880d681SAndroid Build Coastguard Worker}
295*9880d681SAndroid Build Coastguard Worker
296*9880d681SAndroid Build Coastguard Workerdefine void @st2lane_2d(<2 x i64> %A, <2 x i64> %B, i64* %D) {
297*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st2lane_2d
298*9880d681SAndroid Build Coastguard Worker; CHECK: st2.d
299*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st2lane.v2i64.p0i64(<2 x i64> %A, <2 x i64> %B, i64 1, i64* %D)
300*9880d681SAndroid Build Coastguard Worker  ret void
301*9880d681SAndroid Build Coastguard Worker}
302*9880d681SAndroid Build Coastguard Worker
303*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st2lane.v16i8.p0i8(<16 x i8>, <16 x i8>, i64, i8*) nounwind readnone
304*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st2lane.v8i16.p0i16(<8 x i16>, <8 x i16>, i64, i16*) nounwind readnone
305*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st2lane.v4i32.p0i32(<4 x i32>, <4 x i32>, i64, i32*) nounwind readnone
306*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st2lane.v2i64.p0i64(<2 x i64>, <2 x i64>, i64, i64*) nounwind readnone
307*9880d681SAndroid Build Coastguard Worker
308*9880d681SAndroid Build Coastguard Workerdefine void @st3lane_16b(<16 x i8> %A, <16 x i8> %B, <16 x i8> %C, i8* %D) {
309*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st3lane_16b
310*9880d681SAndroid Build Coastguard Worker; CHECK: st3.b
311*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st3lane.v16i8.p0i8(<16 x i8> %A, <16 x i8> %B, <16 x i8> %C, i64 1, i8* %D)
312*9880d681SAndroid Build Coastguard Worker  ret void
313*9880d681SAndroid Build Coastguard Worker}
314*9880d681SAndroid Build Coastguard Worker
315*9880d681SAndroid Build Coastguard Workerdefine void @st3lane_8h(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, i16* %D) {
316*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st3lane_8h
317*9880d681SAndroid Build Coastguard Worker; CHECK: st3.h
318*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st3lane.v8i16.p0i16(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, i64 1, i16* %D)
319*9880d681SAndroid Build Coastguard Worker  ret void
320*9880d681SAndroid Build Coastguard Worker}
321*9880d681SAndroid Build Coastguard Worker
322*9880d681SAndroid Build Coastguard Workerdefine void @st3lane_4s(<4 x i32> %A, <4 x i32> %B, <4 x i32> %C, i32* %D) {
323*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st3lane_4s
324*9880d681SAndroid Build Coastguard Worker; CHECK: st3.s
325*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st3lane.v4i32.p0i32(<4 x i32> %A, <4 x i32> %B, <4 x i32> %C, i64 1, i32* %D)
326*9880d681SAndroid Build Coastguard Worker  ret void
327*9880d681SAndroid Build Coastguard Worker}
328*9880d681SAndroid Build Coastguard Worker
329*9880d681SAndroid Build Coastguard Workerdefine void @st3lane_2d(<2 x i64> %A, <2 x i64> %B, <2 x i64> %C, i64* %D) {
330*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st3lane_2d
331*9880d681SAndroid Build Coastguard Worker; CHECK: st3.d
332*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st3lane.v2i64.p0i64(<2 x i64> %A, <2 x i64> %B, <2 x i64> %C, i64 1, i64* %D)
333*9880d681SAndroid Build Coastguard Worker  ret void
334*9880d681SAndroid Build Coastguard Worker}
335*9880d681SAndroid Build Coastguard Worker
336*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st3lane.v16i8.p0i8(<16 x i8>, <16 x i8>, <16 x i8>, i64, i8*) nounwind readnone
337*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st3lane.v8i16.p0i16(<8 x i16>, <8 x i16>, <8 x i16>, i64, i16*) nounwind readnone
338*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st3lane.v4i32.p0i32(<4 x i32>, <4 x i32>, <4 x i32>, i64, i32*) nounwind readnone
339*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st3lane.v2i64.p0i64(<2 x i64>, <2 x i64>, <2 x i64>, i64, i64*) nounwind readnone
340*9880d681SAndroid Build Coastguard Worker
341*9880d681SAndroid Build Coastguard Workerdefine void @st4lane_16b(<16 x i8> %A, <16 x i8> %B, <16 x i8> %C, <16 x i8> %D, i8* %E) {
342*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st4lane_16b
343*9880d681SAndroid Build Coastguard Worker; CHECK: st4.b
344*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st4lane.v16i8.p0i8(<16 x i8> %A, <16 x i8> %B, <16 x i8> %C, <16 x i8> %D, i64 1, i8* %E)
345*9880d681SAndroid Build Coastguard Worker  ret void
346*9880d681SAndroid Build Coastguard Worker}
347*9880d681SAndroid Build Coastguard Worker
348*9880d681SAndroid Build Coastguard Workerdefine void @st4lane_8h(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, <8 x i16> %D, i16* %E) {
349*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st4lane_8h
350*9880d681SAndroid Build Coastguard Worker; CHECK: st4.h
351*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st4lane.v8i16.p0i16(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, <8 x i16> %D, i64 1, i16* %E)
352*9880d681SAndroid Build Coastguard Worker  ret void
353*9880d681SAndroid Build Coastguard Worker}
354*9880d681SAndroid Build Coastguard Worker
355*9880d681SAndroid Build Coastguard Workerdefine void @st4lane_4s(<4 x i32> %A, <4 x i32> %B, <4 x i32> %C, <4 x i32> %D, i32* %E) {
356*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st4lane_4s
357*9880d681SAndroid Build Coastguard Worker; CHECK: st4.s
358*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st4lane.v4i32.p0i32(<4 x i32> %A, <4 x i32> %B, <4 x i32> %C, <4 x i32> %D, i64 1, i32* %E)
359*9880d681SAndroid Build Coastguard Worker  ret void
360*9880d681SAndroid Build Coastguard Worker}
361*9880d681SAndroid Build Coastguard Worker
362*9880d681SAndroid Build Coastguard Workerdefine void @st4lane_2d(<2 x i64> %A, <2 x i64> %B, <2 x i64> %C, <2 x i64> %D, i64* %E) {
363*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st4lane_2d
364*9880d681SAndroid Build Coastguard Worker; CHECK: st4.d
365*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st4lane.v2i64.p0i64(<2 x i64> %A, <2 x i64> %B, <2 x i64> %C, <2 x i64> %D, i64 1, i64* %E)
366*9880d681SAndroid Build Coastguard Worker  ret void
367*9880d681SAndroid Build Coastguard Worker}
368*9880d681SAndroid Build Coastguard Worker
369*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st4lane.v16i8.p0i8(<16 x i8>, <16 x i8>, <16 x i8>, <16 x i8>, i64, i8*) nounwind readnone
370*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st4lane.v8i16.p0i16(<8 x i16>, <8 x i16>, <8 x i16>, <8 x i16>, i64, i16*) nounwind readnone
371*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st4lane.v4i32.p0i32(<4 x i32>, <4 x i32>, <4 x i32>, <4 x i32>, i64, i32*) nounwind readnone
372*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st4lane.v2i64.p0i64(<2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, i64, i64*) nounwind readnone
373*9880d681SAndroid Build Coastguard Worker
374*9880d681SAndroid Build Coastguard Worker
375*9880d681SAndroid Build Coastguard Workerdefine void @st2_8b(<8 x i8> %A, <8 x i8> %B, i8* %P) nounwind {
376*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st2_8b
377*9880d681SAndroid Build Coastguard Worker; CHECK: st2.8b
378*9880d681SAndroid Build Coastguard Worker	call void @llvm.aarch64.neon.st2.v8i8.p0i8(<8 x i8> %A, <8 x i8> %B, i8* %P)
379*9880d681SAndroid Build Coastguard Worker	ret void
380*9880d681SAndroid Build Coastguard Worker}
381*9880d681SAndroid Build Coastguard Worker
382*9880d681SAndroid Build Coastguard Workerdefine void @st3_8b(<8 x i8> %A, <8 x i8> %B, <8 x i8> %C, i8* %P) nounwind {
383*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st3_8b
384*9880d681SAndroid Build Coastguard Worker; CHECK: st3.8b
385*9880d681SAndroid Build Coastguard Worker	call void @llvm.aarch64.neon.st3.v8i8.p0i8(<8 x i8> %A, <8 x i8> %B, <8 x i8> %C, i8* %P)
386*9880d681SAndroid Build Coastguard Worker	ret void
387*9880d681SAndroid Build Coastguard Worker}
388*9880d681SAndroid Build Coastguard Worker
389*9880d681SAndroid Build Coastguard Workerdefine void @st4_8b(<8 x i8> %A, <8 x i8> %B, <8 x i8> %C, <8 x i8> %D, i8* %P) nounwind {
390*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st4_8b
391*9880d681SAndroid Build Coastguard Worker; CHECK: st4.8b
392*9880d681SAndroid Build Coastguard Worker	call void @llvm.aarch64.neon.st4.v8i8.p0i8(<8 x i8> %A, <8 x i8> %B, <8 x i8> %C, <8 x i8> %D, i8* %P)
393*9880d681SAndroid Build Coastguard Worker	ret void
394*9880d681SAndroid Build Coastguard Worker}
395*9880d681SAndroid Build Coastguard Worker
396*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st2.v8i8.p0i8(<8 x i8>, <8 x i8>, i8*) nounwind readonly
397*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st3.v8i8.p0i8(<8 x i8>, <8 x i8>, <8 x i8>, i8*) nounwind readonly
398*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st4.v8i8.p0i8(<8 x i8>, <8 x i8>, <8 x i8>, <8 x i8>, i8*) nounwind readonly
399*9880d681SAndroid Build Coastguard Worker
400*9880d681SAndroid Build Coastguard Workerdefine void @st2_16b(<16 x i8> %A, <16 x i8> %B, i8* %P) nounwind {
401*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st2_16b
402*9880d681SAndroid Build Coastguard Worker; CHECK: st2.16b
403*9880d681SAndroid Build Coastguard Worker	call void @llvm.aarch64.neon.st2.v16i8.p0i8(<16 x i8> %A, <16 x i8> %B, i8* %P)
404*9880d681SAndroid Build Coastguard Worker	ret void
405*9880d681SAndroid Build Coastguard Worker}
406*9880d681SAndroid Build Coastguard Worker
407*9880d681SAndroid Build Coastguard Workerdefine void @st3_16b(<16 x i8> %A, <16 x i8> %B, <16 x i8> %C, i8* %P) nounwind {
408*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st3_16b
409*9880d681SAndroid Build Coastguard Worker; CHECK: st3.16b
410*9880d681SAndroid Build Coastguard Worker	call void @llvm.aarch64.neon.st3.v16i8.p0i8(<16 x i8> %A, <16 x i8> %B, <16 x i8> %C, i8* %P)
411*9880d681SAndroid Build Coastguard Worker	ret void
412*9880d681SAndroid Build Coastguard Worker}
413*9880d681SAndroid Build Coastguard Worker
414*9880d681SAndroid Build Coastguard Workerdefine void @st4_16b(<16 x i8> %A, <16 x i8> %B, <16 x i8> %C, <16 x i8> %D, i8* %P) nounwind {
415*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st4_16b
416*9880d681SAndroid Build Coastguard Worker; CHECK: st4.16b
417*9880d681SAndroid Build Coastguard Worker	call void @llvm.aarch64.neon.st4.v16i8.p0i8(<16 x i8> %A, <16 x i8> %B, <16 x i8> %C, <16 x i8> %D, i8* %P)
418*9880d681SAndroid Build Coastguard Worker	ret void
419*9880d681SAndroid Build Coastguard Worker}
420*9880d681SAndroid Build Coastguard Worker
421*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st2.v16i8.p0i8(<16 x i8>, <16 x i8>, i8*) nounwind readonly
422*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st3.v16i8.p0i8(<16 x i8>, <16 x i8>, <16 x i8>, i8*) nounwind readonly
423*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st4.v16i8.p0i8(<16 x i8>, <16 x i8>, <16 x i8>, <16 x i8>, i8*) nounwind readonly
424*9880d681SAndroid Build Coastguard Worker
425*9880d681SAndroid Build Coastguard Workerdefine void @st2_4h(<4 x i16> %A, <4 x i16> %B, i16* %P) nounwind {
426*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st2_4h
427*9880d681SAndroid Build Coastguard Worker; CHECK: st2.4h
428*9880d681SAndroid Build Coastguard Worker	call void @llvm.aarch64.neon.st2.v4i16.p0i16(<4 x i16> %A, <4 x i16> %B, i16* %P)
429*9880d681SAndroid Build Coastguard Worker	ret void
430*9880d681SAndroid Build Coastguard Worker}
431*9880d681SAndroid Build Coastguard Worker
432*9880d681SAndroid Build Coastguard Workerdefine void @st3_4h(<4 x i16> %A, <4 x i16> %B, <4 x i16> %C, i16* %P) nounwind {
433*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st3_4h
434*9880d681SAndroid Build Coastguard Worker; CHECK: st3.4h
435*9880d681SAndroid Build Coastguard Worker	call void @llvm.aarch64.neon.st3.v4i16.p0i16(<4 x i16> %A, <4 x i16> %B, <4 x i16> %C, i16* %P)
436*9880d681SAndroid Build Coastguard Worker	ret void
437*9880d681SAndroid Build Coastguard Worker}
438*9880d681SAndroid Build Coastguard Worker
439*9880d681SAndroid Build Coastguard Workerdefine void @st4_4h(<4 x i16> %A, <4 x i16> %B, <4 x i16> %C, <4 x i16> %D, i16* %P) nounwind {
440*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st4_4h
441*9880d681SAndroid Build Coastguard Worker; CHECK: st4.4h
442*9880d681SAndroid Build Coastguard Worker	call void @llvm.aarch64.neon.st4.v4i16.p0i16(<4 x i16> %A, <4 x i16> %B, <4 x i16> %C, <4 x i16> %D, i16* %P)
443*9880d681SAndroid Build Coastguard Worker	ret void
444*9880d681SAndroid Build Coastguard Worker}
445*9880d681SAndroid Build Coastguard Worker
446*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st2.v4i16.p0i16(<4 x i16>, <4 x i16>, i16*) nounwind readonly
447*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st3.v4i16.p0i16(<4 x i16>, <4 x i16>, <4 x i16>, i16*) nounwind readonly
448*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st4.v4i16.p0i16(<4 x i16>, <4 x i16>, <4 x i16>, <4 x i16>, i16*) nounwind readonly
449*9880d681SAndroid Build Coastguard Worker
450*9880d681SAndroid Build Coastguard Workerdefine void @st2_8h(<8 x i16> %A, <8 x i16> %B, i16* %P) nounwind {
451*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st2_8h
452*9880d681SAndroid Build Coastguard Worker; CHECK: st2.8h
453*9880d681SAndroid Build Coastguard Worker	call void @llvm.aarch64.neon.st2.v8i16.p0i16(<8 x i16> %A, <8 x i16> %B, i16* %P)
454*9880d681SAndroid Build Coastguard Worker	ret void
455*9880d681SAndroid Build Coastguard Worker}
456*9880d681SAndroid Build Coastguard Worker
457*9880d681SAndroid Build Coastguard Workerdefine void @st3_8h(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, i16* %P) nounwind {
458*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st3_8h
459*9880d681SAndroid Build Coastguard Worker; CHECK: st3.8h
460*9880d681SAndroid Build Coastguard Worker	call void @llvm.aarch64.neon.st3.v8i16.p0i16(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, i16* %P)
461*9880d681SAndroid Build Coastguard Worker	ret void
462*9880d681SAndroid Build Coastguard Worker}
463*9880d681SAndroid Build Coastguard Worker
464*9880d681SAndroid Build Coastguard Workerdefine void @st4_8h(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, <8 x i16> %D, i16* %P) nounwind {
465*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st4_8h
466*9880d681SAndroid Build Coastguard Worker; CHECK: st4.8h
467*9880d681SAndroid Build Coastguard Worker	call void @llvm.aarch64.neon.st4.v8i16.p0i16(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, <8 x i16> %D, i16* %P)
468*9880d681SAndroid Build Coastguard Worker	ret void
469*9880d681SAndroid Build Coastguard Worker}
470*9880d681SAndroid Build Coastguard Worker
471*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st2.v8i16.p0i16(<8 x i16>, <8 x i16>, i16*) nounwind readonly
472*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st3.v8i16.p0i16(<8 x i16>, <8 x i16>, <8 x i16>, i16*) nounwind readonly
473*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st4.v8i16.p0i16(<8 x i16>, <8 x i16>, <8 x i16>, <8 x i16>, i16*) nounwind readonly
474*9880d681SAndroid Build Coastguard Worker
475*9880d681SAndroid Build Coastguard Workerdefine void @st2_2s(<2 x i32> %A, <2 x i32> %B, i32* %P) nounwind {
476*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st2_2s
477*9880d681SAndroid Build Coastguard Worker; CHECK: st2.2s
478*9880d681SAndroid Build Coastguard Worker	call void @llvm.aarch64.neon.st2.v2i32.p0i32(<2 x i32> %A, <2 x i32> %B, i32* %P)
479*9880d681SAndroid Build Coastguard Worker	ret void
480*9880d681SAndroid Build Coastguard Worker}
481*9880d681SAndroid Build Coastguard Worker
482*9880d681SAndroid Build Coastguard Workerdefine void @st3_2s(<2 x i32> %A, <2 x i32> %B, <2 x i32> %C, i32* %P) nounwind {
483*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st3_2s
484*9880d681SAndroid Build Coastguard Worker; CHECK: st3.2s
485*9880d681SAndroid Build Coastguard Worker	call void @llvm.aarch64.neon.st3.v2i32.p0i32(<2 x i32> %A, <2 x i32> %B, <2 x i32> %C, i32* %P)
486*9880d681SAndroid Build Coastguard Worker	ret void
487*9880d681SAndroid Build Coastguard Worker}
488*9880d681SAndroid Build Coastguard Worker
489*9880d681SAndroid Build Coastguard Workerdefine void @st4_2s(<2 x i32> %A, <2 x i32> %B, <2 x i32> %C, <2 x i32> %D, i32* %P) nounwind {
490*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st4_2s
491*9880d681SAndroid Build Coastguard Worker; CHECK: st4.2s
492*9880d681SAndroid Build Coastguard Worker	call void @llvm.aarch64.neon.st4.v2i32.p0i32(<2 x i32> %A, <2 x i32> %B, <2 x i32> %C, <2 x i32> %D, i32* %P)
493*9880d681SAndroid Build Coastguard Worker	ret void
494*9880d681SAndroid Build Coastguard Worker}
495*9880d681SAndroid Build Coastguard Worker
496*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st2.v2i32.p0i32(<2 x i32>, <2 x i32>, i32*) nounwind readonly
497*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st3.v2i32.p0i32(<2 x i32>, <2 x i32>, <2 x i32>, i32*) nounwind readonly
498*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st4.v2i32.p0i32(<2 x i32>, <2 x i32>, <2 x i32>, <2 x i32>, i32*) nounwind readonly
499*9880d681SAndroid Build Coastguard Worker
500*9880d681SAndroid Build Coastguard Workerdefine void @st2_4s(<4 x i32> %A, <4 x i32> %B, i32* %P) nounwind {
501*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st2_4s
502*9880d681SAndroid Build Coastguard Worker; CHECK: st2.4s
503*9880d681SAndroid Build Coastguard Worker	call void @llvm.aarch64.neon.st2.v4i32.p0i32(<4 x i32> %A, <4 x i32> %B, i32* %P)
504*9880d681SAndroid Build Coastguard Worker	ret void
505*9880d681SAndroid Build Coastguard Worker}
506*9880d681SAndroid Build Coastguard Worker
507*9880d681SAndroid Build Coastguard Workerdefine void @st3_4s(<4 x i32> %A, <4 x i32> %B, <4 x i32> %C, i32* %P) nounwind {
508*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st3_4s
509*9880d681SAndroid Build Coastguard Worker; CHECK: st3.4s
510*9880d681SAndroid Build Coastguard Worker	call void @llvm.aarch64.neon.st3.v4i32.p0i32(<4 x i32> %A, <4 x i32> %B, <4 x i32> %C, i32* %P)
511*9880d681SAndroid Build Coastguard Worker	ret void
512*9880d681SAndroid Build Coastguard Worker}
513*9880d681SAndroid Build Coastguard Worker
514*9880d681SAndroid Build Coastguard Workerdefine void @st4_4s(<4 x i32> %A, <4 x i32> %B, <4 x i32> %C, <4 x i32> %D, i32* %P) nounwind {
515*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st4_4s
516*9880d681SAndroid Build Coastguard Worker; CHECK: st4.4s
517*9880d681SAndroid Build Coastguard Worker	call void @llvm.aarch64.neon.st4.v4i32.p0i32(<4 x i32> %A, <4 x i32> %B, <4 x i32> %C, <4 x i32> %D, i32* %P)
518*9880d681SAndroid Build Coastguard Worker	ret void
519*9880d681SAndroid Build Coastguard Worker}
520*9880d681SAndroid Build Coastguard Worker
521*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st2.v4i32.p0i32(<4 x i32>, <4 x i32>, i32*) nounwind readonly
522*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st3.v4i32.p0i32(<4 x i32>, <4 x i32>, <4 x i32>, i32*) nounwind readonly
523*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st4.v4i32.p0i32(<4 x i32>, <4 x i32>, <4 x i32>, <4 x i32>, i32*) nounwind readonly
524*9880d681SAndroid Build Coastguard Worker
525*9880d681SAndroid Build Coastguard Worker; If there's only one element, st2/3/4 don't make much sense, stick to st1.
526*9880d681SAndroid Build Coastguard Workerdefine void @st2_1d(<1 x i64> %A, <1 x i64> %B, i64* %P) nounwind {
527*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st2_1d
528*9880d681SAndroid Build Coastguard Worker; CHECK: st1.1d
529*9880d681SAndroid Build Coastguard Worker	call void @llvm.aarch64.neon.st2.v1i64.p0i64(<1 x i64> %A, <1 x i64> %B, i64* %P)
530*9880d681SAndroid Build Coastguard Worker	ret void
531*9880d681SAndroid Build Coastguard Worker}
532*9880d681SAndroid Build Coastguard Worker
533*9880d681SAndroid Build Coastguard Workerdefine void @st3_1d(<1 x i64> %A, <1 x i64> %B, <1 x i64> %C, i64* %P) nounwind {
534*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st3_1d
535*9880d681SAndroid Build Coastguard Worker; CHECK: st1.1d
536*9880d681SAndroid Build Coastguard Worker	call void @llvm.aarch64.neon.st3.v1i64.p0i64(<1 x i64> %A, <1 x i64> %B, <1 x i64> %C, i64* %P)
537*9880d681SAndroid Build Coastguard Worker	ret void
538*9880d681SAndroid Build Coastguard Worker}
539*9880d681SAndroid Build Coastguard Worker
540*9880d681SAndroid Build Coastguard Workerdefine void @st4_1d(<1 x i64> %A, <1 x i64> %B, <1 x i64> %C, <1 x i64> %D, i64* %P) nounwind {
541*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st4_1d
542*9880d681SAndroid Build Coastguard Worker; CHECK: st1.1d
543*9880d681SAndroid Build Coastguard Worker	call void @llvm.aarch64.neon.st4.v1i64.p0i64(<1 x i64> %A, <1 x i64> %B, <1 x i64> %C, <1 x i64> %D, i64* %P)
544*9880d681SAndroid Build Coastguard Worker	ret void
545*9880d681SAndroid Build Coastguard Worker}
546*9880d681SAndroid Build Coastguard Worker
547*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st2.v1i64.p0i64(<1 x i64>, <1 x i64>, i64*) nounwind readonly
548*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st3.v1i64.p0i64(<1 x i64>, <1 x i64>, <1 x i64>, i64*) nounwind readonly
549*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st4.v1i64.p0i64(<1 x i64>, <1 x i64>, <1 x i64>, <1 x i64>, i64*) nounwind readonly
550*9880d681SAndroid Build Coastguard Worker
551*9880d681SAndroid Build Coastguard Workerdefine void @st2_2d(<2 x i64> %A, <2 x i64> %B, i64* %P) nounwind {
552*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st2_2d
553*9880d681SAndroid Build Coastguard Worker; CHECK: st2.2d
554*9880d681SAndroid Build Coastguard Worker	call void @llvm.aarch64.neon.st2.v2i64.p0i64(<2 x i64> %A, <2 x i64> %B, i64* %P)
555*9880d681SAndroid Build Coastguard Worker	ret void
556*9880d681SAndroid Build Coastguard Worker}
557*9880d681SAndroid Build Coastguard Worker
558*9880d681SAndroid Build Coastguard Workerdefine void @st3_2d(<2 x i64> %A, <2 x i64> %B, <2 x i64> %C, i64* %P) nounwind {
559*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st3_2d
560*9880d681SAndroid Build Coastguard Worker; CHECK: st3.2d
561*9880d681SAndroid Build Coastguard Worker	call void @llvm.aarch64.neon.st3.v2i64.p0i64(<2 x i64> %A, <2 x i64> %B, <2 x i64> %C, i64* %P)
562*9880d681SAndroid Build Coastguard Worker	ret void
563*9880d681SAndroid Build Coastguard Worker}
564*9880d681SAndroid Build Coastguard Worker
565*9880d681SAndroid Build Coastguard Workerdefine void @st4_2d(<2 x i64> %A, <2 x i64> %B, <2 x i64> %C, <2 x i64> %D, i64* %P) nounwind {
566*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st4_2d
567*9880d681SAndroid Build Coastguard Worker; CHECK: st4.2d
568*9880d681SAndroid Build Coastguard Worker	call void @llvm.aarch64.neon.st4.v2i64.p0i64(<2 x i64> %A, <2 x i64> %B, <2 x i64> %C, <2 x i64> %D, i64* %P)
569*9880d681SAndroid Build Coastguard Worker	ret void
570*9880d681SAndroid Build Coastguard Worker}
571*9880d681SAndroid Build Coastguard Worker
572*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st2.v2i64.p0i64(<2 x i64>, <2 x i64>, i64*) nounwind readonly
573*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st3.v2i64.p0i64(<2 x i64>, <2 x i64>, <2 x i64>, i64*) nounwind readonly
574*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st4.v2i64.p0i64(<2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, i64*) nounwind readonly
575*9880d681SAndroid Build Coastguard Worker
576*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x2.v8i8.p0i8(<8 x i8>, <8 x i8>, i8*) nounwind readonly
577*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x2.v4i16.p0i16(<4 x i16>, <4 x i16>, i16*) nounwind readonly
578*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x2.v2i32.p0i32(<2 x i32>, <2 x i32>, i32*) nounwind readonly
579*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x2.v2f32.p0f32(<2 x float>, <2 x float>, float*) nounwind readonly
580*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x2.v1i64.p0i64(<1 x i64>, <1 x i64>, i64*) nounwind readonly
581*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x2.v1f64.p0f64(<1 x double>, <1 x double>, double*) nounwind readonly
582*9880d681SAndroid Build Coastguard Worker
583*9880d681SAndroid Build Coastguard Workerdefine void @st1_x2_v8i8(<8 x i8> %A, <8 x i8> %B, i8* %addr) {
584*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x2_v8i8:
585*9880d681SAndroid Build Coastguard Worker; CHECK: st1.8b { {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
586*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x2.v8i8.p0i8(<8 x i8> %A, <8 x i8> %B, i8* %addr)
587*9880d681SAndroid Build Coastguard Worker  ret void
588*9880d681SAndroid Build Coastguard Worker}
589*9880d681SAndroid Build Coastguard Worker
590*9880d681SAndroid Build Coastguard Workerdefine void @st1_x2_v4i16(<4 x i16> %A, <4 x i16> %B, i16* %addr) {
591*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x2_v4i16:
592*9880d681SAndroid Build Coastguard Worker; CHECK: st1.4h { {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
593*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x2.v4i16.p0i16(<4 x i16> %A, <4 x i16> %B, i16* %addr)
594*9880d681SAndroid Build Coastguard Worker  ret void
595*9880d681SAndroid Build Coastguard Worker}
596*9880d681SAndroid Build Coastguard Worker
597*9880d681SAndroid Build Coastguard Workerdefine void @st1_x2_v2i32(<2 x i32> %A, <2 x i32> %B, i32* %addr) {
598*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x2_v2i32:
599*9880d681SAndroid Build Coastguard Worker; CHECK: st1.2s { {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
600*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x2.v2i32.p0i32(<2 x i32> %A, <2 x i32> %B, i32* %addr)
601*9880d681SAndroid Build Coastguard Worker  ret void
602*9880d681SAndroid Build Coastguard Worker}
603*9880d681SAndroid Build Coastguard Worker
604*9880d681SAndroid Build Coastguard Workerdefine void @st1_x2_v2f32(<2 x float> %A, <2 x float> %B, float* %addr) {
605*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x2_v2f32:
606*9880d681SAndroid Build Coastguard Worker; CHECK: st1.2s { {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
607*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x2.v2f32.p0f32(<2 x float> %A, <2 x float> %B, float* %addr)
608*9880d681SAndroid Build Coastguard Worker  ret void
609*9880d681SAndroid Build Coastguard Worker}
610*9880d681SAndroid Build Coastguard Worker
611*9880d681SAndroid Build Coastguard Workerdefine void @st1_x2_v1i64(<1 x i64> %A, <1 x i64> %B, i64* %addr) {
612*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x2_v1i64:
613*9880d681SAndroid Build Coastguard Worker; CHECK: st1.1d { {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
614*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x2.v1i64.p0i64(<1 x i64> %A, <1 x i64> %B, i64* %addr)
615*9880d681SAndroid Build Coastguard Worker  ret void
616*9880d681SAndroid Build Coastguard Worker}
617*9880d681SAndroid Build Coastguard Worker
618*9880d681SAndroid Build Coastguard Workerdefine void @st1_x2_v1f64(<1 x double> %A, <1 x double> %B, double* %addr) {
619*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x2_v1f64:
620*9880d681SAndroid Build Coastguard Worker; CHECK: st1.1d { {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
621*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x2.v1f64.p0f64(<1 x double> %A, <1 x double> %B, double* %addr)
622*9880d681SAndroid Build Coastguard Worker  ret void
623*9880d681SAndroid Build Coastguard Worker}
624*9880d681SAndroid Build Coastguard Worker
625*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x2.v16i8.p0i8(<16 x i8>, <16 x i8>, i8*) nounwind readonly
626*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x2.v8i16.p0i16(<8 x i16>, <8 x i16>, i16*) nounwind readonly
627*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x2.v4i32.p0i32(<4 x i32>, <4 x i32>, i32*) nounwind readonly
628*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x2.v4f32.p0f32(<4 x float>, <4 x float>, float*) nounwind readonly
629*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x2.v2i64.p0i64(<2 x i64>, <2 x i64>, i64*) nounwind readonly
630*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x2.v2f64.p0f64(<2 x double>, <2 x double>, double*) nounwind readonly
631*9880d681SAndroid Build Coastguard Worker
632*9880d681SAndroid Build Coastguard Workerdefine void @st1_x2_v16i8(<16 x i8> %A, <16 x i8> %B, i8* %addr) {
633*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x2_v16i8:
634*9880d681SAndroid Build Coastguard Worker; CHECK: st1.16b { {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
635*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x2.v16i8.p0i8(<16 x i8> %A, <16 x i8> %B, i8* %addr)
636*9880d681SAndroid Build Coastguard Worker  ret void
637*9880d681SAndroid Build Coastguard Worker}
638*9880d681SAndroid Build Coastguard Worker
639*9880d681SAndroid Build Coastguard Workerdefine void @st1_x2_v8i16(<8 x i16> %A, <8 x i16> %B, i16* %addr) {
640*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x2_v8i16:
641*9880d681SAndroid Build Coastguard Worker; CHECK: st1.8h { {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
642*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x2.v8i16.p0i16(<8 x i16> %A, <8 x i16> %B, i16* %addr)
643*9880d681SAndroid Build Coastguard Worker  ret void
644*9880d681SAndroid Build Coastguard Worker}
645*9880d681SAndroid Build Coastguard Worker
646*9880d681SAndroid Build Coastguard Workerdefine void @st1_x2_v4i32(<4 x i32> %A, <4 x i32> %B, i32* %addr) {
647*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x2_v4i32:
648*9880d681SAndroid Build Coastguard Worker; CHECK: st1.4s { {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
649*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x2.v4i32.p0i32(<4 x i32> %A, <4 x i32> %B, i32* %addr)
650*9880d681SAndroid Build Coastguard Worker  ret void
651*9880d681SAndroid Build Coastguard Worker}
652*9880d681SAndroid Build Coastguard Worker
653*9880d681SAndroid Build Coastguard Workerdefine void @st1_x2_v4f32(<4 x float> %A, <4 x float> %B, float* %addr) {
654*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x2_v4f32:
655*9880d681SAndroid Build Coastguard Worker; CHECK: st1.4s { {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
656*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x2.v4f32.p0f32(<4 x float> %A, <4 x float> %B, float* %addr)
657*9880d681SAndroid Build Coastguard Worker  ret void
658*9880d681SAndroid Build Coastguard Worker}
659*9880d681SAndroid Build Coastguard Worker
660*9880d681SAndroid Build Coastguard Workerdefine void @st1_x2_v2i64(<2 x i64> %A, <2 x i64> %B, i64* %addr) {
661*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x2_v2i64:
662*9880d681SAndroid Build Coastguard Worker; CHECK: st1.2d { {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
663*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x2.v2i64.p0i64(<2 x i64> %A, <2 x i64> %B, i64* %addr)
664*9880d681SAndroid Build Coastguard Worker  ret void
665*9880d681SAndroid Build Coastguard Worker}
666*9880d681SAndroid Build Coastguard Worker
667*9880d681SAndroid Build Coastguard Workerdefine void @st1_x2_v2f64(<2 x double> %A, <2 x double> %B, double* %addr) {
668*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x2_v2f64:
669*9880d681SAndroid Build Coastguard Worker; CHECK: st1.2d { {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
670*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x2.v2f64.p0f64(<2 x double> %A, <2 x double> %B, double* %addr)
671*9880d681SAndroid Build Coastguard Worker  ret void
672*9880d681SAndroid Build Coastguard Worker}
673*9880d681SAndroid Build Coastguard Worker
674*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x3.v8i8.p0i8(<8 x i8>, <8 x i8>, <8 x i8>, i8*) nounwind readonly
675*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x3.v4i16.p0i16(<4 x i16>, <4 x i16>, <4 x i16>, i16*) nounwind readonly
676*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x3.v2i32.p0i32(<2 x i32>, <2 x i32>, <2 x i32>, i32*) nounwind readonly
677*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x3.v2f32.p0f32(<2 x float>, <2 x float>, <2 x float>, float*) nounwind readonly
678*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x3.v1i64.p0i64(<1 x i64>, <1 x i64>, <1 x i64>, i64*) nounwind readonly
679*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x3.v1f64.p0f64(<1 x double>, <1 x double>, <1 x double>, double*) nounwind readonly
680*9880d681SAndroid Build Coastguard Worker
681*9880d681SAndroid Build Coastguard Workerdefine void @st1_x3_v8i8(<8 x i8> %A, <8 x i8> %B, <8 x i8> %C, i8* %addr) {
682*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x3_v8i8:
683*9880d681SAndroid Build Coastguard Worker; CHECK: st1.8b { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
684*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x3.v8i8.p0i8(<8 x i8> %A, <8 x i8> %B, <8 x i8> %C, i8* %addr)
685*9880d681SAndroid Build Coastguard Worker  ret void
686*9880d681SAndroid Build Coastguard Worker}
687*9880d681SAndroid Build Coastguard Worker
688*9880d681SAndroid Build Coastguard Workerdefine void @st1_x3_v4i16(<4 x i16> %A, <4 x i16> %B, <4 x i16> %C, i16* %addr) {
689*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x3_v4i16:
690*9880d681SAndroid Build Coastguard Worker; CHECK: st1.4h { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
691*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x3.v4i16.p0i16(<4 x i16> %A, <4 x i16> %B, <4 x i16> %C, i16* %addr)
692*9880d681SAndroid Build Coastguard Worker  ret void
693*9880d681SAndroid Build Coastguard Worker}
694*9880d681SAndroid Build Coastguard Worker
695*9880d681SAndroid Build Coastguard Workerdefine void @st1_x3_v2i32(<2 x i32> %A, <2 x i32> %B, <2 x i32> %C, i32* %addr) {
696*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x3_v2i32:
697*9880d681SAndroid Build Coastguard Worker; CHECK: st1.2s { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
698*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x3.v2i32.p0i32(<2 x i32> %A, <2 x i32> %B, <2 x i32> %C, i32* %addr)
699*9880d681SAndroid Build Coastguard Worker  ret void
700*9880d681SAndroid Build Coastguard Worker}
701*9880d681SAndroid Build Coastguard Worker
702*9880d681SAndroid Build Coastguard Workerdefine void @st1_x3_v2f32(<2 x float> %A, <2 x float> %B, <2 x float> %C, float* %addr) {
703*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x3_v2f32:
704*9880d681SAndroid Build Coastguard Worker; CHECK: st1.2s { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
705*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x3.v2f32.p0f32(<2 x float> %A, <2 x float> %B, <2 x float> %C, float* %addr)
706*9880d681SAndroid Build Coastguard Worker  ret void
707*9880d681SAndroid Build Coastguard Worker}
708*9880d681SAndroid Build Coastguard Worker
709*9880d681SAndroid Build Coastguard Workerdefine void @st1_x3_v1i64(<1 x i64> %A, <1 x i64> %B, <1 x i64> %C, i64* %addr) {
710*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x3_v1i64:
711*9880d681SAndroid Build Coastguard Worker; CHECK: st1.1d { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
712*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x3.v1i64.p0i64(<1 x i64> %A, <1 x i64> %B, <1 x i64> %C, i64* %addr)
713*9880d681SAndroid Build Coastguard Worker  ret void
714*9880d681SAndroid Build Coastguard Worker}
715*9880d681SAndroid Build Coastguard Worker
716*9880d681SAndroid Build Coastguard Workerdefine void @st1_x3_v1f64(<1 x double> %A, <1 x double> %B, <1 x double> %C, double* %addr) {
717*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x3_v1f64:
718*9880d681SAndroid Build Coastguard Worker; CHECK: st1.1d { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
719*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x3.v1f64.p0f64(<1 x double> %A, <1 x double> %B, <1 x double> %C, double* %addr)
720*9880d681SAndroid Build Coastguard Worker  ret void
721*9880d681SAndroid Build Coastguard Worker}
722*9880d681SAndroid Build Coastguard Worker
723*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x3.v16i8.p0i8(<16 x i8>, <16 x i8>, <16 x i8>, i8*) nounwind readonly
724*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x3.v8i16.p0i16(<8 x i16>, <8 x i16>, <8 x i16>, i16*) nounwind readonly
725*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x3.v4i32.p0i32(<4 x i32>, <4 x i32>, <4 x i32>, i32*) nounwind readonly
726*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x3.v4f32.p0f32(<4 x float>, <4 x float>, <4 x float>, float*) nounwind readonly
727*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x3.v2i64.p0i64(<2 x i64>, <2 x i64>, <2 x i64>, i64*) nounwind readonly
728*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x3.v2f64.p0f64(<2 x double>, <2 x double>, <2 x double>, double*) nounwind readonly
729*9880d681SAndroid Build Coastguard Worker
730*9880d681SAndroid Build Coastguard Workerdefine void @st1_x3_v16i8(<16 x i8> %A, <16 x i8> %B, <16 x i8> %C, i8* %addr) {
731*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x3_v16i8:
732*9880d681SAndroid Build Coastguard Worker; CHECK: st1.16b { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
733*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x3.v16i8.p0i8(<16 x i8> %A, <16 x i8> %B, <16 x i8> %C, i8* %addr)
734*9880d681SAndroid Build Coastguard Worker  ret void
735*9880d681SAndroid Build Coastguard Worker}
736*9880d681SAndroid Build Coastguard Worker
737*9880d681SAndroid Build Coastguard Workerdefine void @st1_x3_v8i16(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, i16* %addr) {
738*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x3_v8i16:
739*9880d681SAndroid Build Coastguard Worker; CHECK: st1.8h { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
740*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x3.v8i16.p0i16(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, i16* %addr)
741*9880d681SAndroid Build Coastguard Worker  ret void
742*9880d681SAndroid Build Coastguard Worker}
743*9880d681SAndroid Build Coastguard Worker
744*9880d681SAndroid Build Coastguard Workerdefine void @st1_x3_v4i32(<4 x i32> %A, <4 x i32> %B, <4 x i32> %C, i32* %addr) {
745*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x3_v4i32:
746*9880d681SAndroid Build Coastguard Worker; CHECK: st1.4s { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
747*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x3.v4i32.p0i32(<4 x i32> %A, <4 x i32> %B, <4 x i32> %C, i32* %addr)
748*9880d681SAndroid Build Coastguard Worker  ret void
749*9880d681SAndroid Build Coastguard Worker}
750*9880d681SAndroid Build Coastguard Worker
751*9880d681SAndroid Build Coastguard Workerdefine void @st1_x3_v4f32(<4 x float> %A, <4 x float> %B, <4 x float> %C, float* %addr) {
752*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x3_v4f32:
753*9880d681SAndroid Build Coastguard Worker; CHECK: st1.4s { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
754*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x3.v4f32.p0f32(<4 x float> %A, <4 x float> %B, <4 x float> %C, float* %addr)
755*9880d681SAndroid Build Coastguard Worker  ret void
756*9880d681SAndroid Build Coastguard Worker}
757*9880d681SAndroid Build Coastguard Worker
758*9880d681SAndroid Build Coastguard Workerdefine void @st1_x3_v2i64(<2 x i64> %A, <2 x i64> %B, <2 x i64> %C, i64* %addr) {
759*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x3_v2i64:
760*9880d681SAndroid Build Coastguard Worker; CHECK: st1.2d { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
761*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x3.v2i64.p0i64(<2 x i64> %A, <2 x i64> %B, <2 x i64> %C, i64* %addr)
762*9880d681SAndroid Build Coastguard Worker  ret void
763*9880d681SAndroid Build Coastguard Worker}
764*9880d681SAndroid Build Coastguard Worker
765*9880d681SAndroid Build Coastguard Workerdefine void @st1_x3_v2f64(<2 x double> %A, <2 x double> %B, <2 x double> %C, double* %addr) {
766*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x3_v2f64:
767*9880d681SAndroid Build Coastguard Worker; CHECK: st1.2d { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
768*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x3.v2f64.p0f64(<2 x double> %A, <2 x double> %B, <2 x double> %C, double* %addr)
769*9880d681SAndroid Build Coastguard Worker  ret void
770*9880d681SAndroid Build Coastguard Worker}
771*9880d681SAndroid Build Coastguard Worker
772*9880d681SAndroid Build Coastguard Worker
773*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x4.v8i8.p0i8(<8 x i8>, <8 x i8>, <8 x i8>, <8 x i8>, i8*) nounwind readonly
774*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x4.v4i16.p0i16(<4 x i16>, <4 x i16>, <4 x i16>, <4 x i16>, i16*) nounwind readonly
775*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x4.v2i32.p0i32(<2 x i32>, <2 x i32>, <2 x i32>, <2 x i32>, i32*) nounwind readonly
776*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x4.v2f32.p0f32(<2 x float>, <2 x float>, <2 x float>, <2 x float>, float*) nounwind readonly
777*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x4.v1i64.p0i64(<1 x i64>, <1 x i64>, <1 x i64>, <1 x i64>, i64*) nounwind readonly
778*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x4.v1f64.p0f64(<1 x double>, <1 x double>, <1 x double>, <1 x double>, double*) nounwind readonly
779*9880d681SAndroid Build Coastguard Worker
780*9880d681SAndroid Build Coastguard Workerdefine void @st1_x4_v8i8(<8 x i8> %A, <8 x i8> %B, <8 x i8> %C, <8 x i8> %D, i8* %addr) {
781*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x4_v8i8:
782*9880d681SAndroid Build Coastguard Worker; CHECK: st1.8b { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
783*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x4.v8i8.p0i8(<8 x i8> %A, <8 x i8> %B, <8 x i8> %C, <8 x i8> %D, i8* %addr)
784*9880d681SAndroid Build Coastguard Worker  ret void
785*9880d681SAndroid Build Coastguard Worker}
786*9880d681SAndroid Build Coastguard Worker
787*9880d681SAndroid Build Coastguard Workerdefine void @st1_x4_v4i16(<4 x i16> %A, <4 x i16> %B, <4 x i16> %C, <4 x i16> %D, i16* %addr) {
788*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x4_v4i16:
789*9880d681SAndroid Build Coastguard Worker; CHECK: st1.4h { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
790*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x4.v4i16.p0i16(<4 x i16> %A, <4 x i16> %B, <4 x i16> %C, <4 x i16> %D, i16* %addr)
791*9880d681SAndroid Build Coastguard Worker  ret void
792*9880d681SAndroid Build Coastguard Worker}
793*9880d681SAndroid Build Coastguard Worker
794*9880d681SAndroid Build Coastguard Workerdefine void @st1_x4_v2i32(<2 x i32> %A, <2 x i32> %B, <2 x i32> %C, <2 x i32> %D, i32* %addr) {
795*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x4_v2i32:
796*9880d681SAndroid Build Coastguard Worker; CHECK: st1.2s { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
797*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x4.v2i32.p0i32(<2 x i32> %A, <2 x i32> %B, <2 x i32> %C, <2 x i32> %D, i32* %addr)
798*9880d681SAndroid Build Coastguard Worker  ret void
799*9880d681SAndroid Build Coastguard Worker}
800*9880d681SAndroid Build Coastguard Worker
801*9880d681SAndroid Build Coastguard Workerdefine void @st1_x4_v2f32(<2 x float> %A, <2 x float> %B, <2 x float> %C, <2 x float> %D, float* %addr) {
802*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x4_v2f32:
803*9880d681SAndroid Build Coastguard Worker; CHECK: st1.2s { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
804*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x4.v2f32.p0f32(<2 x float> %A, <2 x float> %B, <2 x float> %C, <2 x float> %D, float* %addr)
805*9880d681SAndroid Build Coastguard Worker  ret void
806*9880d681SAndroid Build Coastguard Worker}
807*9880d681SAndroid Build Coastguard Worker
808*9880d681SAndroid Build Coastguard Workerdefine void @st1_x4_v1i64(<1 x i64> %A, <1 x i64> %B, <1 x i64> %C, <1 x i64> %D, i64* %addr) {
809*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x4_v1i64:
810*9880d681SAndroid Build Coastguard Worker; CHECK: st1.1d { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
811*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x4.v1i64.p0i64(<1 x i64> %A, <1 x i64> %B, <1 x i64> %C, <1 x i64> %D, i64* %addr)
812*9880d681SAndroid Build Coastguard Worker  ret void
813*9880d681SAndroid Build Coastguard Worker}
814*9880d681SAndroid Build Coastguard Worker
815*9880d681SAndroid Build Coastguard Workerdefine void @st1_x4_v1f64(<1 x double> %A, <1 x double> %B, <1 x double> %C, <1 x double> %D, double* %addr) {
816*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x4_v1f64:
817*9880d681SAndroid Build Coastguard Worker; CHECK: st1.1d { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
818*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x4.v1f64.p0f64(<1 x double> %A, <1 x double> %B, <1 x double> %C, <1 x double> %D, double* %addr)
819*9880d681SAndroid Build Coastguard Worker  ret void
820*9880d681SAndroid Build Coastguard Worker}
821*9880d681SAndroid Build Coastguard Worker
822*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x4.v16i8.p0i8(<16 x i8>, <16 x i8>, <16 x i8>, <16 x i8>, i8*) nounwind readonly
823*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x4.v8i16.p0i16(<8 x i16>, <8 x i16>, <8 x i16>, <8 x i16>, i16*) nounwind readonly
824*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x4.v4i32.p0i32(<4 x i32>, <4 x i32>, <4 x i32>, <4 x i32>, i32*) nounwind readonly
825*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x4.v4f32.p0f32(<4 x float>, <4 x float>, <4 x float>, <4 x float>, float*) nounwind readonly
826*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x4.v2i64.p0i64(<2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, i64*) nounwind readonly
827*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x4.v2f64.p0f64(<2 x double>, <2 x double>, <2 x double>, <2 x double>, double*) nounwind readonly
828*9880d681SAndroid Build Coastguard Worker
829*9880d681SAndroid Build Coastguard Workerdefine void @st1_x4_v16i8(<16 x i8> %A, <16 x i8> %B, <16 x i8> %C, <16 x i8> %D, i8* %addr) {
830*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x4_v16i8:
831*9880d681SAndroid Build Coastguard Worker; CHECK: st1.16b { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
832*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x4.v16i8.p0i8(<16 x i8> %A, <16 x i8> %B, <16 x i8> %C, <16 x i8> %D, i8* %addr)
833*9880d681SAndroid Build Coastguard Worker  ret void
834*9880d681SAndroid Build Coastguard Worker}
835*9880d681SAndroid Build Coastguard Worker
836*9880d681SAndroid Build Coastguard Workerdefine void @st1_x4_v8i16(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, <8 x i16> %D, i16* %addr) {
837*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x4_v8i16:
838*9880d681SAndroid Build Coastguard Worker; CHECK: st1.8h { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
839*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x4.v8i16.p0i16(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, <8 x i16> %D, i16* %addr)
840*9880d681SAndroid Build Coastguard Worker  ret void
841*9880d681SAndroid Build Coastguard Worker}
842*9880d681SAndroid Build Coastguard Worker
843*9880d681SAndroid Build Coastguard Workerdefine void @st1_x4_v4i32(<4 x i32> %A, <4 x i32> %B, <4 x i32> %C, <4 x i32> %D, i32* %addr) {
844*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x4_v4i32:
845*9880d681SAndroid Build Coastguard Worker; CHECK: st1.4s { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
846*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x4.v4i32.p0i32(<4 x i32> %A, <4 x i32> %B, <4 x i32> %C, <4 x i32> %D, i32* %addr)
847*9880d681SAndroid Build Coastguard Worker  ret void
848*9880d681SAndroid Build Coastguard Worker}
849*9880d681SAndroid Build Coastguard Worker
850*9880d681SAndroid Build Coastguard Workerdefine void @st1_x4_v4f32(<4 x float> %A, <4 x float> %B, <4 x float> %C, <4 x float> %D, float* %addr) {
851*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x4_v4f32:
852*9880d681SAndroid Build Coastguard Worker; CHECK: st1.4s { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
853*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x4.v4f32.p0f32(<4 x float> %A, <4 x float> %B, <4 x float> %C, <4 x float> %D, float* %addr)
854*9880d681SAndroid Build Coastguard Worker  ret void
855*9880d681SAndroid Build Coastguard Worker}
856*9880d681SAndroid Build Coastguard Worker
857*9880d681SAndroid Build Coastguard Workerdefine void @st1_x4_v2i64(<2 x i64> %A, <2 x i64> %B, <2 x i64> %C, <2 x i64> %D, i64* %addr) {
858*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x4_v2i64:
859*9880d681SAndroid Build Coastguard Worker; CHECK: st1.2d { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
860*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x4.v2i64.p0i64(<2 x i64> %A, <2 x i64> %B, <2 x i64> %C, <2 x i64> %D, i64* %addr)
861*9880d681SAndroid Build Coastguard Worker  ret void
862*9880d681SAndroid Build Coastguard Worker}
863*9880d681SAndroid Build Coastguard Worker
864*9880d681SAndroid Build Coastguard Workerdefine void @st1_x4_v2f64(<2 x double> %A, <2 x double> %B, <2 x double> %C, <2 x double> %D, double* %addr) {
865*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x4_v2f64:
866*9880d681SAndroid Build Coastguard Worker; CHECK: st1.2d { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0]
867*9880d681SAndroid Build Coastguard Worker  call void @llvm.aarch64.neon.st1x4.v2f64.p0f64(<2 x double> %A, <2 x double> %B, <2 x double> %C, <2 x double> %D, double* %addr)
868*9880d681SAndroid Build Coastguard Worker  ret void
869*9880d681SAndroid Build Coastguard Worker}
870