xref: /aosp_15_r20/external/llvm/test/MC/AArch64/neon-simd-post-ldst-multi-elem.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -triple=arm64 -mattr=+neon -show-encoding < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker// Check that the assembler can handle the documented syntax for AArch64
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
6*9880d681SAndroid Build Coastguard Worker// Load multiple 1-element structures from one register (post-index)
7*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
8*9880d681SAndroid Build Coastguard Worker         ld1 { v0.16b }, [x0], x1
9*9880d681SAndroid Build Coastguard Worker         ld1 { v15.8h }, [x15], x2
10*9880d681SAndroid Build Coastguard Worker         ld1 { v31.4s }, [sp], #16
11*9880d681SAndroid Build Coastguard Worker         ld1 { v0.2d }, [x0], #16
12*9880d681SAndroid Build Coastguard Worker         ld1 { v0.8b }, [x0], x2
13*9880d681SAndroid Build Coastguard Worker         ld1 { v15.4h }, [x15], x3
14*9880d681SAndroid Build Coastguard Worker         ld1 { v31.2s }, [sp], #8
15*9880d681SAndroid Build Coastguard Worker         ld1 { v0.1d }, [x0], #8
16*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v0.16b }, [x0], x1
17*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x70,0xc1,0x4c]
18*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v15.8h }, [x15], x2
19*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0x75,0xc2,0x4c]
20*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v31.4s }, [sp], #16
21*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0x7b,0xdf,0x4c]
22*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v0.2d }, [x0], #16
23*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x7c,0xdf,0x4c]
24*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v0.8b }, [x0], x2
25*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x70,0xc2,0x0c]
26*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v15.4h }, [x15], x3
27*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0x75,0xc3,0x0c]
28*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v31.2s }, [sp], #8
29*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0x7b,0xdf,0x0c]
30*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v0.1d }, [x0], #8
31*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x7c,0xdf,0x0c]
32*9880d681SAndroid Build Coastguard Worker
33*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
34*9880d681SAndroid Build Coastguard Worker// Load multiple 1-element structures from two consecutive registers
35*9880d681SAndroid Build Coastguard Worker// (post-index)
36*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
37*9880d681SAndroid Build Coastguard Worker         ld1 { v0.16b, v1.16b }, [x0], x1
38*9880d681SAndroid Build Coastguard Worker         ld1 { v15.8h, v16.8h }, [x15], x2
39*9880d681SAndroid Build Coastguard Worker         ld1 { v31.4s, v0.4s }, [sp], #32
40*9880d681SAndroid Build Coastguard Worker         ld1 { v0.2d, v1.2d }, [x0], #32
41*9880d681SAndroid Build Coastguard Worker         ld1 { v0.8b, v1.8b }, [x0], x2
42*9880d681SAndroid Build Coastguard Worker         ld1 { v15.4h, v16.4h }, [x15], x3
43*9880d681SAndroid Build Coastguard Worker         ld1 { v31.2s, v0.2s }, [sp], #16
44*9880d681SAndroid Build Coastguard Worker         ld1 { v0.1d, v1.1d }, [x0], #16
45*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v0.16b, v1.16b }, [x0], x1
46*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0xa0,0xc1,0x4c]
47*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v15.8h, v16.8h }, [x15], x2
48*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0xa5,0xc2,0x4c]
49*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v31.4s, v0.4s }, [sp], #32
50*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0xab,0xdf,0x4c]
51*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v0.2d, v1.2d }, [x0], #32
52*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0xac,0xdf,0x4c]
53*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v0.8b, v1.8b }, [x0], x2
54*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0xa0,0xc2,0x0c]
55*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v15.4h, v16.4h }, [x15], x3
56*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0xa5,0xc3,0x0c]
57*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v31.2s, v0.2s }, [sp], #16
58*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0xab,0xdf,0x0c]
59*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v0.1d, v1.1d }, [x0], #16
60*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0xac,0xdf,0x0c]
61*9880d681SAndroid Build Coastguard Worker
62*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
63*9880d681SAndroid Build Coastguard Worker// Load multiple 1-element structures from three consecutive registers
64*9880d681SAndroid Build Coastguard Worker// (post-index)
65*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
66*9880d681SAndroid Build Coastguard Worker         ld1 { v0.16b, v1.16b, v2.16b }, [x0], x1
67*9880d681SAndroid Build Coastguard Worker         ld1 { v15.8h, v16.8h, v17.8h }, [x15], x2
68*9880d681SAndroid Build Coastguard Worker         ld1 { v31.4s, v0.4s, v1.4s }, [sp], #48
69*9880d681SAndroid Build Coastguard Worker         ld1 { v0.2d, v1.2d, v2.2d }, [x0], #48
70*9880d681SAndroid Build Coastguard Worker         ld1 { v0.8b, v1.8b, v2.8b }, [x0], x2
71*9880d681SAndroid Build Coastguard Worker         ld1 { v15.4h, v16.4h, v17.4h }, [x15], x3
72*9880d681SAndroid Build Coastguard Worker         ld1 { v31.2s, v0.2s, v1.2s }, [sp], #24
73*9880d681SAndroid Build Coastguard Worker         ld1 { v0.1d, v1.1d, v2.1d }, [x0], #24
74*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v0.16b, v1.16b, v2.16b }, [x0], x1
75*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x60,0xc1,0x4c]
76*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v15.8h, v16.8h, v17.8h }, [x15], x2
77*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0x65,0xc2,0x4c]
78*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v31.4s, v0.4s, v1.4s }, [sp], #48
79*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0x6b,0xdf,0x4c]
80*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v0.2d, v1.2d, v2.2d }, [x0], #48
81*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x6c,0xdf,0x4c]
82*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v0.8b, v1.8b, v2.8b }, [x0], x2
83*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x60,0xc2,0x0c]
84*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v15.4h, v16.4h, v17.4h }, [x15], x3
85*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0x65,0xc3,0x0c]
86*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v31.2s, v0.2s, v1.2s }, [sp], #24
87*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0x6b,0xdf,0x0c]
88*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v0.1d, v1.1d, v2.1d }, [x0], #24
89*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x6c,0xdf,0x0c]
90*9880d681SAndroid Build Coastguard Worker
91*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
92*9880d681SAndroid Build Coastguard Worker// Load multiple 1-element structures from four consecutive registers
93*9880d681SAndroid Build Coastguard Worker// (post-index)
94*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
95*9880d681SAndroid Build Coastguard Worker         ld1 { v0.16b, v1.16b, v2.16b, v3.16b }, [x0], x1
96*9880d681SAndroid Build Coastguard Worker         ld1 { v15.8h, v16.8h, v17.8h, v18.8h }, [x15], x2
97*9880d681SAndroid Build Coastguard Worker         ld1 { v31.4s, v0.4s, v1.4s, v2.4s }, [sp], #64
98*9880d681SAndroid Build Coastguard Worker         ld1 { v0.2d, v1.2d, v2.2d, v3.2d }, [x0], #64
99*9880d681SAndroid Build Coastguard Worker         ld1 { v0.8b, v1.8b, v2.8b, v3.8b }, [x0], x3
100*9880d681SAndroid Build Coastguard Worker         ld1 { v15.4h, v16.4h, v17.4h, v18.4h }, [x15], x4
101*9880d681SAndroid Build Coastguard Worker         ld1 { v31.2s, v0.2s, v1.2s, v2.2s }, [sp], #32
102*9880d681SAndroid Build Coastguard Worker         ld1 { v0.1d, v1.1d, v2.1d, v3.1d }, [x0], #32
103*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v0.16b, v1.16b, v2.16b, v3.16b }, [x0], x1
104*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x20,0xc1,0x4c]
105*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v15.8h, v16.8h, v17.8h, v18.8h }, [x15], x2
106*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0x25,0xc2,0x4c]
107*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v31.4s, v0.4s, v1.4s, v2.4s }, [sp], #64
108*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0x2b,0xdf,0x4c]
109*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v0.2d, v1.2d, v2.2d, v3.2d }, [x0], #64
110*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x2c,0xdf,0x4c]
111*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v0.8b, v1.8b, v2.8b, v3.8b }, [x0], x3
112*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x20,0xc3,0x0c]
113*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v15.4h, v16.4h, v17.4h, v18.4h }, [x15], x4
114*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0x25,0xc4,0x0c]
115*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v31.2s, v0.2s, v1.2s, v2.2s }, [sp], #32
116*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0x2b,0xdf,0x0c]
117*9880d681SAndroid Build Coastguard Worker// CHECK: ld1 { v0.1d, v1.1d, v2.1d, v3.1d }, [x0], #32
118*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x2c,0xdf,0x0c]
119*9880d681SAndroid Build Coastguard Worker
120*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
121*9880d681SAndroid Build Coastguard Worker// Load multiple 2-element structures from two consecutive registers
122*9880d681SAndroid Build Coastguard Worker// (post-index)
123*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
124*9880d681SAndroid Build Coastguard Worker         ld2 { v0.16b, v1.16b }, [x0], x1
125*9880d681SAndroid Build Coastguard Worker         ld2 { v15.8h, v16.8h }, [x15], x2
126*9880d681SAndroid Build Coastguard Worker         ld2 { v31.4s, v0.4s }, [sp], #32
127*9880d681SAndroid Build Coastguard Worker         ld2 { v0.2d, v1.2d }, [x0], #32
128*9880d681SAndroid Build Coastguard Worker         ld2 { v0.8b, v1.8b }, [x0], x2
129*9880d681SAndroid Build Coastguard Worker         ld2 { v15.4h, v16.4h }, [x15], x3
130*9880d681SAndroid Build Coastguard Worker         ld2 { v31.2s, v0.2s }, [sp], #16
131*9880d681SAndroid Build Coastguard Worker// CHECK: ld2 { v0.16b, v1.16b }, [x0], x1
132*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x80,0xc1,0x4c]
133*9880d681SAndroid Build Coastguard Worker// CHECK: ld2 { v15.8h, v16.8h }, [x15], x2
134*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0x85,0xc2,0x4c]
135*9880d681SAndroid Build Coastguard Worker// CHECK: ld2 { v31.4s, v0.4s }, [sp], #32
136*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0x8b,0xdf,0x4c]
137*9880d681SAndroid Build Coastguard Worker// CHECK: ld2 { v0.2d, v1.2d }, [x0], #32
138*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x8c,0xdf,0x4c]
139*9880d681SAndroid Build Coastguard Worker// CHECK: ld2 { v0.8b, v1.8b }, [x0], x2
140*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x80,0xc2,0x0c]
141*9880d681SAndroid Build Coastguard Worker// CHECK: ld2 { v15.4h, v16.4h }, [x15], x3
142*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0x85,0xc3,0x0c]
143*9880d681SAndroid Build Coastguard Worker// CHECK: ld2 { v31.2s, v0.2s }, [sp], #16
144*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0x8b,0xdf,0x0c]
145*9880d681SAndroid Build Coastguard Worker
146*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
147*9880d681SAndroid Build Coastguard Worker// Load multiple 3-element structures from three consecutive registers
148*9880d681SAndroid Build Coastguard Worker// (post-index)
149*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
150*9880d681SAndroid Build Coastguard Worker         ld3 { v0.16b, v1.16b, v2.16b }, [x0], x1
151*9880d681SAndroid Build Coastguard Worker         ld3 { v15.8h, v16.8h, v17.8h }, [x15], x2
152*9880d681SAndroid Build Coastguard Worker         ld3 { v31.4s, v0.4s, v1.4s }, [sp], #48
153*9880d681SAndroid Build Coastguard Worker         ld3 { v0.2d, v1.2d, v2.2d }, [x0], #48
154*9880d681SAndroid Build Coastguard Worker         ld3 { v0.8b, v1.8b, v2.8b }, [x0], x2
155*9880d681SAndroid Build Coastguard Worker         ld3 { v15.4h, v16.4h, v17.4h }, [x15], x3
156*9880d681SAndroid Build Coastguard Worker         ld3 { v31.2s, v0.2s, v1.2s }, [sp], #24
157*9880d681SAndroid Build Coastguard Worker// CHECK: ld3 { v0.16b, v1.16b, v2.16b }, [x0], x1
158*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x40,0xc1,0x4c]
159*9880d681SAndroid Build Coastguard Worker// CHECK: ld3 { v15.8h, v16.8h, v17.8h }, [x15], x2
160*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0x45,0xc2,0x4c]
161*9880d681SAndroid Build Coastguard Worker// CHECK: ld3 { v31.4s, v0.4s, v1.4s }, [sp], #48
162*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0x4b,0xdf,0x4c]
163*9880d681SAndroid Build Coastguard Worker// CHECK: ld3 { v0.2d, v1.2d, v2.2d }, [x0], #48
164*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x4c,0xdf,0x4c]
165*9880d681SAndroid Build Coastguard Worker// CHECK: ld3 { v0.8b, v1.8b, v2.8b }, [x0], x2
166*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x40,0xc2,0x0c]
167*9880d681SAndroid Build Coastguard Worker// CHECK: ld3 { v15.4h, v16.4h, v17.4h }, [x15], x3
168*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0x45,0xc3,0x0c]
169*9880d681SAndroid Build Coastguard Worker// CHECK: ld3 { v31.2s, v0.2s, v1.2s }, [sp], #24
170*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0x4b,0xdf,0x0c]
171*9880d681SAndroid Build Coastguard Worker
172*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
173*9880d681SAndroid Build Coastguard Worker// Load multiple 4-element structures from four consecutive registers
174*9880d681SAndroid Build Coastguard Worker// (post-index)
175*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
176*9880d681SAndroid Build Coastguard Worker         ld4 { v0.16b, v1.16b, v2.16b, v3.16b }, [x0], x1
177*9880d681SAndroid Build Coastguard Worker         ld4 { v15.8h, v16.8h, v17.8h, v18.8h }, [x15], x2
178*9880d681SAndroid Build Coastguard Worker         ld4 { v31.4s, v0.4s, v1.4s, v2.4s }, [sp], #64
179*9880d681SAndroid Build Coastguard Worker         ld4 { v0.2d, v1.2d, v2.2d, v3.2d }, [x0], #64
180*9880d681SAndroid Build Coastguard Worker         ld4 { v0.8b, v1.8b, v2.8b, v3.8b }, [x0], x3
181*9880d681SAndroid Build Coastguard Worker         ld4 { v15.4h, v16.4h, v17.4h, v18.4h }, [x15], x4
182*9880d681SAndroid Build Coastguard Worker         ld4 { v31.2s, v0.2s, v1.2s, v2.2s }, [sp], #32
183*9880d681SAndroid Build Coastguard Worker// CHECK: ld4 { v0.16b, v1.16b, v2.16b, v3.16b }, [x0], x1
184*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x00,0xc1,0x4c]
185*9880d681SAndroid Build Coastguard Worker// CHECK: ld4 { v15.8h, v16.8h, v17.8h, v18.8h }, [x15], x2
186*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0x05,0xc2,0x4c]
187*9880d681SAndroid Build Coastguard Worker// CHECK: ld4 { v31.4s, v0.4s, v1.4s, v2.4s }, [sp], #64
188*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0x0b,0xdf,0x4c]
189*9880d681SAndroid Build Coastguard Worker// CHECK: ld4 { v0.2d, v1.2d, v2.2d, v3.2d }, [x0], #64
190*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x0c,0xdf,0x4c]
191*9880d681SAndroid Build Coastguard Worker// CHECK: ld4 { v0.8b, v1.8b, v2.8b, v3.8b }, [x0], x3
192*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x00,0xc3,0x0c]
193*9880d681SAndroid Build Coastguard Worker// CHECK: ld4 { v15.4h, v16.4h, v17.4h, v18.4h }, [x15], x4
194*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0x05,0xc4,0x0c]
195*9880d681SAndroid Build Coastguard Worker// CHECK: ld4 { v31.2s, v0.2s, v1.2s, v2.2s }, [sp], #32
196*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0x0b,0xdf,0x0c]
197*9880d681SAndroid Build Coastguard Worker
198*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
199*9880d681SAndroid Build Coastguard Worker// Store multiple 1-element structures from one register (post-index)
200*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
201*9880d681SAndroid Build Coastguard Worker         st1 { v0.16b }, [x0], x1
202*9880d681SAndroid Build Coastguard Worker         st1 { v15.8h }, [x15], x2
203*9880d681SAndroid Build Coastguard Worker         st1 { v31.4s }, [sp], #16
204*9880d681SAndroid Build Coastguard Worker         st1 { v0.2d }, [x0], #16
205*9880d681SAndroid Build Coastguard Worker         st1 { v0.8b }, [x0], x2
206*9880d681SAndroid Build Coastguard Worker         st1 { v15.4h }, [x15], x3
207*9880d681SAndroid Build Coastguard Worker         st1 { v31.2s }, [sp], #8
208*9880d681SAndroid Build Coastguard Worker         st1 { v0.1d }, [x0], #8
209*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v0.16b }, [x0], x1
210*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x70,0x81,0x4c]
211*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v15.8h }, [x15], x2
212*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0x75,0x82,0x4c]
213*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v31.4s }, [sp], #16
214*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0x7b,0x9f,0x4c]
215*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v0.2d }, [x0], #16
216*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x7c,0x9f,0x4c]
217*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v0.8b }, [x0], x2
218*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x70,0x82,0x0c]
219*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v15.4h }, [x15], x3
220*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0x75,0x83,0x0c]
221*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v31.2s }, [sp], #8
222*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0x7b,0x9f,0x0c]
223*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v0.1d }, [x0], #8
224*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x7c,0x9f,0x0c]
225*9880d681SAndroid Build Coastguard Worker
226*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
227*9880d681SAndroid Build Coastguard Worker// Store multiple 1-element structures from two consecutive registers
228*9880d681SAndroid Build Coastguard Worker// (post-index)
229*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
230*9880d681SAndroid Build Coastguard Worker         st1 { v0.16b, v1.16b }, [x0], x1
231*9880d681SAndroid Build Coastguard Worker         st1 { v15.8h, v16.8h }, [x15], x2
232*9880d681SAndroid Build Coastguard Worker         st1 { v31.4s, v0.4s }, [sp], #32
233*9880d681SAndroid Build Coastguard Worker         st1 { v0.2d, v1.2d }, [x0], #32
234*9880d681SAndroid Build Coastguard Worker         st1 { v0.8b, v1.8b }, [x0], x2
235*9880d681SAndroid Build Coastguard Worker         st1 { v15.4h, v16.4h }, [x15], x3
236*9880d681SAndroid Build Coastguard Worker         st1 { v31.2s, v0.2s }, [sp], #16
237*9880d681SAndroid Build Coastguard Worker         st1 { v0.1d, v1.1d }, [x0], #16
238*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v0.16b, v1.16b }, [x0], x1
239*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0xa0,0x81,0x4c]
240*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v15.8h, v16.8h }, [x15], x2
241*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0xa5,0x82,0x4c]
242*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v31.4s, v0.4s }, [sp], #32
243*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0xab,0x9f,0x4c]
244*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v0.2d, v1.2d }, [x0], #32
245*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0xac,0x9f,0x4c]
246*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v0.8b, v1.8b }, [x0], x2
247*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0xa0,0x82,0x0c]
248*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v15.4h, v16.4h }, [x15], x3
249*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0xa5,0x83,0x0c]
250*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v31.2s, v0.2s }, [sp], #16
251*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0xab,0x9f,0x0c]
252*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v0.1d, v1.1d }, [x0], #16
253*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0xac,0x9f,0x0c]
254*9880d681SAndroid Build Coastguard Worker
255*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
256*9880d681SAndroid Build Coastguard Worker// Store multiple 1-element structures from three consecutive registers
257*9880d681SAndroid Build Coastguard Worker// (post-index)
258*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
259*9880d681SAndroid Build Coastguard Worker         st1 { v0.16b, v1.16b, v2.16b }, [x0], x1
260*9880d681SAndroid Build Coastguard Worker         st1 { v15.8h, v16.8h, v17.8h }, [x15], x2
261*9880d681SAndroid Build Coastguard Worker         st1 { v31.4s, v0.4s, v1.4s }, [sp], #48
262*9880d681SAndroid Build Coastguard Worker         st1 { v0.2d, v1.2d, v2.2d }, [x0], #48
263*9880d681SAndroid Build Coastguard Worker         st1 { v0.8b, v1.8b, v2.8b }, [x0], x2
264*9880d681SAndroid Build Coastguard Worker         st1 { v15.4h, v16.4h, v17.4h }, [x15], x3
265*9880d681SAndroid Build Coastguard Worker         st1 { v31.2s, v0.2s, v1.2s }, [sp], #24
266*9880d681SAndroid Build Coastguard Worker         st1 { v0.1d, v1.1d, v2.1d }, [x0], #24
267*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v0.16b, v1.16b, v2.16b }, [x0], x1
268*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x60,0x81,0x4c]
269*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v15.8h, v16.8h, v17.8h }, [x15], x2
270*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0x65,0x82,0x4c]
271*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v31.4s, v0.4s, v1.4s }, [sp], #48
272*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0x6b,0x9f,0x4c]
273*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v0.2d, v1.2d, v2.2d }, [x0], #48
274*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x6c,0x9f,0x4c]
275*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v0.8b, v1.8b, v2.8b }, [x0], x2
276*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x60,0x82,0x0c]
277*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v15.4h, v16.4h, v17.4h }, [x15], x3
278*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0x65,0x83,0x0c]
279*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v31.2s, v0.2s, v1.2s }, [sp], #24
280*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0x6b,0x9f,0x0c]
281*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v0.1d, v1.1d, v2.1d }, [x0], #24
282*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x6c,0x9f,0x0c]
283*9880d681SAndroid Build Coastguard Worker
284*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
285*9880d681SAndroid Build Coastguard Worker// Store multiple 1-element structures from four consecutive registers
286*9880d681SAndroid Build Coastguard Worker// (post-index)
287*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
288*9880d681SAndroid Build Coastguard Worker         st1 { v0.16b, v1.16b, v2.16b, v3.16b }, [x0], x1
289*9880d681SAndroid Build Coastguard Worker         st1 { v15.8h, v16.8h, v17.8h, v18.8h }, [x15], x2
290*9880d681SAndroid Build Coastguard Worker         st1 { v31.4s, v0.4s, v1.4s, v2.4s }, [sp], #64
291*9880d681SAndroid Build Coastguard Worker         st1 { v0.2d, v1.2d, v2.2d, v3.2d }, [x0], #64
292*9880d681SAndroid Build Coastguard Worker         st1 { v0.8b, v1.8b, v2.8b, v3.8b }, [x0], x3
293*9880d681SAndroid Build Coastguard Worker         st1 { v15.4h, v16.4h, v17.4h, v18.4h }, [x15], x4
294*9880d681SAndroid Build Coastguard Worker         st1 { v31.2s, v0.2s, v1.2s, v2.2s }, [sp], #32
295*9880d681SAndroid Build Coastguard Worker         st1 { v0.1d, v1.1d, v2.1d, v3.1d }, [x0], #32
296*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v0.16b, v1.16b, v2.16b, v3.16b }, [x0], x1
297*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x20,0x81,0x4c]
298*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v15.8h, v16.8h, v17.8h, v18.8h }, [x15], x2
299*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0x25,0x82,0x4c]
300*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v31.4s, v0.4s, v1.4s, v2.4s }, [sp], #64
301*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0x2b,0x9f,0x4c]
302*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v0.2d, v1.2d, v2.2d, v3.2d }, [x0], #64
303*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x2c,0x9f,0x4c]
304*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v0.8b, v1.8b, v2.8b, v3.8b }, [x0], x3
305*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x20,0x83,0x0c]
306*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v15.4h, v16.4h, v17.4h, v18.4h }, [x15], x4
307*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0x25,0x84,0x0c]
308*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v31.2s, v0.2s, v1.2s, v2.2s }, [sp], #32
309*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0x2b,0x9f,0x0c]
310*9880d681SAndroid Build Coastguard Worker// CHECK: st1 { v0.1d, v1.1d, v2.1d, v3.1d }, [x0], #32
311*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x2c,0x9f,0x0c]
312*9880d681SAndroid Build Coastguard Worker
313*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
314*9880d681SAndroid Build Coastguard Worker// Store multiple 2-element structures from two consecutive registers
315*9880d681SAndroid Build Coastguard Worker// (post-index)
316*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
317*9880d681SAndroid Build Coastguard Worker         st2 { v0.16b, v1.16b }, [x0], x1
318*9880d681SAndroid Build Coastguard Worker         st2 { v15.8h, v16.8h }, [x15], x2
319*9880d681SAndroid Build Coastguard Worker         st2 { v31.4s, v0.4s }, [sp], #32
320*9880d681SAndroid Build Coastguard Worker         st2 { v0.2d, v1.2d }, [x0], #32
321*9880d681SAndroid Build Coastguard Worker         st2 { v0.8b, v1.8b }, [x0], x2
322*9880d681SAndroid Build Coastguard Worker         st2 { v15.4h, v16.4h }, [x15], x3
323*9880d681SAndroid Build Coastguard Worker         st2 { v31.2s, v0.2s }, [sp], #16
324*9880d681SAndroid Build Coastguard Worker// CHECK: st2 { v0.16b, v1.16b }, [x0], x1
325*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x80,0x81,0x4c]
326*9880d681SAndroid Build Coastguard Worker// CHECK: st2 { v15.8h, v16.8h }, [x15], x2
327*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0x85,0x82,0x4c]
328*9880d681SAndroid Build Coastguard Worker// CHECK: st2 { v31.4s, v0.4s }, [sp], #32
329*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0x8b,0x9f,0x4c]
330*9880d681SAndroid Build Coastguard Worker// CHECK: st2 { v0.2d, v1.2d }, [x0], #32
331*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x8c,0x9f,0x4c]
332*9880d681SAndroid Build Coastguard Worker// CHECK: st2 { v0.8b, v1.8b }, [x0], x2
333*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x80,0x82,0x0c]
334*9880d681SAndroid Build Coastguard Worker// CHECK: st2 { v15.4h, v16.4h }, [x15], x3
335*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0x85,0x83,0x0c]
336*9880d681SAndroid Build Coastguard Worker// CHECK: st2 { v31.2s, v0.2s }, [sp], #16
337*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0x8b,0x9f,0x0c]
338*9880d681SAndroid Build Coastguard Worker
339*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
340*9880d681SAndroid Build Coastguard Worker// Store multiple 3-element structures from three consecutive registers
341*9880d681SAndroid Build Coastguard Worker// (post-index)
342*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
343*9880d681SAndroid Build Coastguard Worker         st3 { v0.16b, v1.16b, v2.16b }, [x0], x1
344*9880d681SAndroid Build Coastguard Worker         st3 { v15.8h, v16.8h, v17.8h }, [x15], x2
345*9880d681SAndroid Build Coastguard Worker         st3 { v31.4s, v0.4s, v1.4s }, [sp], #48
346*9880d681SAndroid Build Coastguard Worker         st3 { v0.2d, v1.2d, v2.2d }, [x0], #48
347*9880d681SAndroid Build Coastguard Worker         st3 { v0.8b, v1.8b, v2.8b }, [x0], x2
348*9880d681SAndroid Build Coastguard Worker         st3 { v15.4h, v16.4h, v17.4h }, [x15], x3
349*9880d681SAndroid Build Coastguard Worker         st3 { v31.2s, v0.2s, v1.2s }, [sp], #24
350*9880d681SAndroid Build Coastguard Worker// CHECK: st3 { v0.16b, v1.16b, v2.16b }, [x0], x1
351*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x40,0x81,0x4c]
352*9880d681SAndroid Build Coastguard Worker// CHECK: st3 { v15.8h, v16.8h, v17.8h }, [x15], x2
353*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0x45,0x82,0x4c]
354*9880d681SAndroid Build Coastguard Worker// CHECK: st3 { v31.4s, v0.4s, v1.4s }, [sp], #48
355*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0x4b,0x9f,0x4c]
356*9880d681SAndroid Build Coastguard Worker// CHECK: st3 { v0.2d, v1.2d, v2.2d }, [x0], #48
357*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x4c,0x9f,0x4c]
358*9880d681SAndroid Build Coastguard Worker// CHECK: st3 { v0.8b, v1.8b, v2.8b }, [x0], x2
359*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x40,0x82,0x0c]
360*9880d681SAndroid Build Coastguard Worker// CHECK: st3 { v15.4h, v16.4h, v17.4h }, [x15], x3
361*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0x45,0x83,0x0c]
362*9880d681SAndroid Build Coastguard Worker// CHECK: st3 { v31.2s, v0.2s, v1.2s }, [sp], #24
363*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0x4b,0x9f,0x0c]
364*9880d681SAndroid Build Coastguard Worker
365*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
366*9880d681SAndroid Build Coastguard Worker// Store multiple 4-element structures from four consecutive registers
367*9880d681SAndroid Build Coastguard Worker// (post-index)
368*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
369*9880d681SAndroid Build Coastguard Worker         st4 { v0.16b, v1.16b, v2.16b, v3.16b }, [x0], x1
370*9880d681SAndroid Build Coastguard Worker         st4 { v15.8h, v16.8h, v17.8h, v18.8h }, [x15], x2
371*9880d681SAndroid Build Coastguard Worker         st4 { v31.4s, v0.4s, v1.4s, v2.4s }, [sp], #64
372*9880d681SAndroid Build Coastguard Worker         st4 { v0.2d, v1.2d, v2.2d, v3.2d }, [x0], #64
373*9880d681SAndroid Build Coastguard Worker         st4 { v0.8b, v1.8b, v2.8b, v3.8b }, [x0], x3
374*9880d681SAndroid Build Coastguard Worker         st4 { v15.4h, v16.4h, v17.4h, v18.4h }, [x15], x4
375*9880d681SAndroid Build Coastguard Worker         st4 { v31.2s, v0.2s, v1.2s, v2.2s }, [sp], #32
376*9880d681SAndroid Build Coastguard Worker// CHECK: st4 { v0.16b, v1.16b, v2.16b, v3.16b }, [x0], x1
377*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x00,0x81,0x4c]
378*9880d681SAndroid Build Coastguard Worker// CHECK: st4 { v15.8h, v16.8h, v17.8h, v18.8h }, [x15], x2
379*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0x05,0x82,0x4c]
380*9880d681SAndroid Build Coastguard Worker// CHECK: st4 { v31.4s, v0.4s, v1.4s, v2.4s }, [sp], #64
381*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0x0b,0x9f,0x4c]
382*9880d681SAndroid Build Coastguard Worker// CHECK: st4 { v0.2d, v1.2d, v2.2d, v3.2d }, [x0], #64
383*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x0c,0x9f,0x4c]
384*9880d681SAndroid Build Coastguard Worker// CHECK: st4 { v0.8b, v1.8b, v2.8b, v3.8b }, [x0], x3
385*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0x00,0x00,0x83,0x0c]
386*9880d681SAndroid Build Coastguard Worker// CHECK: st4 { v15.4h, v16.4h, v17.4h, v18.4h }, [x15], x4
387*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xef,0x05,0x84,0x0c]
388*9880d681SAndroid Build Coastguard Worker// CHECK: st4 { v31.2s, v0.2s, v1.2s, v2.2s }, [sp], #32
389*9880d681SAndroid Build Coastguard Worker// CHECK:     // encoding: [0xff,0x0b,0x9f,0x0c]
390