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