1dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// RUN: llvm-mc -triple=arm64 -mattr=+neon -show-encoding < %s | FileCheck %s 236c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 336c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu// Check that the assembler can handle the documented syntax for AArch64 436c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 536c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu//------------------------------------------------------------------------------ 636c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu// Load single 1-element structure to all lanes of 1 register 736c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu//------------------------------------------------------------------------------ 8dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld1r { v0.16b }, [x0] 9dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld1r { v15.8h }, [x15] 10dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld1r { v31.4s }, [sp] 11dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld1r { v0.2d }, [x0] 12dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld1r { v0.8b }, [x0] 13dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld1r { v15.4h }, [x15] 14dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld1r { v31.2s }, [sp] 15dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld1r { v0.1d }, [x0] 16dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld1r { v0.16b }, [x0] // encoding: [0x00,0xc0,0x40,0x4d] 17dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld1r { v15.8h }, [x15] // encoding: [0xef,0xc5,0x40,0x4d] 18dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld1r { v31.4s }, [sp] // encoding: [0xff,0xcb,0x40,0x4d] 19dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld1r { v0.2d }, [x0] // encoding: [0x00,0xcc,0x40,0x4d] 20dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld1r { v0.8b }, [x0] // encoding: [0x00,0xc0,0x40,0x0d] 21dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld1r { v15.4h }, [x15] // encoding: [0xef,0xc5,0x40,0x0d] 22dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld1r { v31.2s }, [sp] // encoding: [0xff,0xcb,0x40,0x0d] 23dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld1r { v0.1d }, [x0] // encoding: [0x00,0xcc,0x40,0x0d] 2436c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 2536c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu//------------------------------------------------------------------------------ 2636c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu// Load single N-element structure to all lanes of N consecutive 2736c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu// registers (N = 2,3,4) 2836c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu//------------------------------------------------------------------------------ 29dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld2r { v0.16b, v1.16b }, [x0] 30dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld2r { v15.8h, v16.8h }, [x15] 31dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld2r { v31.4s, v0.4s }, [sp] 32dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld2r { v0.2d, v1.2d }, [x0] 33dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld2r { v0.8b, v1.8b }, [x0] 34dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld2r { v15.4h, v16.4h }, [x15] 35dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld2r { v31.2s, v0.2s }, [sp] 36dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld2r { v31.1d, v0.1d }, [sp] 37dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld2r { v0.16b, v1.16b }, [x0] // encoding: [0x00,0xc0,0x60,0x4d] 38dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld2r { v15.8h, v16.8h }, [x15] // encoding: [0xef,0xc5,0x60,0x4d] 39dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld2r { v31.4s, v0.4s }, [sp] // encoding: [0xff,0xcb,0x60,0x4d] 40dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld2r { v0.2d, v1.2d }, [x0] // encoding: [0x00,0xcc,0x60,0x4d] 41dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld2r { v0.8b, v1.8b }, [x0] // encoding: [0x00,0xc0,0x60,0x0d] 42dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld2r { v15.4h, v16.4h }, [x15] // encoding: [0xef,0xc5,0x60,0x0d] 43dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld2r { v31.2s, v0.2s }, [sp] // encoding: [0xff,0xcb,0x60,0x0d] 44dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld2r { v31.1d, v0.1d }, [sp] // encoding: [0xff,0xcf,0x60,0x0d] 4536c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 46dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld3r { v0.16b, v1.16b, v2.16b }, [x0] 47dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld3r { v15.8h, v16.8h, v17.8h }, [x15] 48dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld3r { v31.4s, v0.4s, v1.4s }, [sp] 49dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld3r { v0.2d, v1.2d, v2.2d }, [x0] 50dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld3r { v0.8b, v1.8b, v2.8b }, [x0] 51dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld3r { v15.4h, v16.4h, v17.4h }, [x15] 52dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld3r { v31.2s, v0.2s, v1.2s }, [sp] 53dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld3r { v31.1d, v0.1d, v1.1d }, [sp] 54dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld3r { v0.16b, v1.16b, v2.16b }, [x0] // encoding: [0x00,0xe0,0x40,0x4d] 55dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld3r { v15.8h, v16.8h, v17.8h }, [x15] // encoding: [0xef,0xe5,0x40,0x4d] 56dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld3r { v31.4s, v0.4s, v1.4s }, [sp] // encoding: [0xff,0xeb,0x40,0x4d] 57dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld3r { v0.2d, v1.2d, v2.2d }, [x0] // encoding: [0x00,0xec,0x40,0x4d] 58dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld3r { v0.8b, v1.8b, v2.8b }, [x0] // encoding: [0x00,0xe0,0x40,0x0d] 59dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld3r { v15.4h, v16.4h, v17.4h }, [x15] // encoding: [0xef,0xe5,0x40,0x0d] 60dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld3r { v31.2s, v0.2s, v1.2s }, [sp] // encoding: [0xff,0xeb,0x40,0x0d] 61dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld3r { v31.1d, v0.1d, v1.1d }, [sp] // encoding: [0xff,0xef,0x40,0x0d] 6236c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 63dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld4r { v0.16b, v1.16b, v2.16b, v3.16b }, [x0] 64dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld4r { v15.8h, v16.8h, v17.8h, v18.8h }, [x15] 65dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld4r { v31.4s, v0.4s, v1.4s, v2.4s }, [sp] 66dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld4r { v0.2d, v1.2d, v2.2d, v3.2d }, [x0] 67dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld4r { v0.8b, v1.8b, v2.8b, v3.8b }, [x0] 68dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld4r { v15.4h, v16.4h, v17.4h, v18.4h }, [x15] 69dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld4r { v31.2s, v0.2s, v1.2s, v2.2s }, [sp] 70dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld4r { v31.1d, v0.1d, v1.1d, v2.1d }, [sp] 71dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld4r { v0.16b, v1.16b, v2.16b, v3.16b }, [x0] // encoding: [0x00,0xe0,0x60,0x4d] 72dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld4r { v15.8h, v16.8h, v17.8h, v18.8h }, [x15] // encoding: [0xef,0xe5,0x60,0x4d] 73dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld4r { v31.4s, v0.4s, v1.4s, v2.4s }, [sp] // encoding: [0xff,0xeb,0x60,0x4d] 74dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld4r { v0.2d, v1.2d, v2.2d, v3.2d }, [x0] // encoding: [0x00,0xec,0x60,0x4d] 75dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld4r { v0.8b, v1.8b, v2.8b, v3.8b }, [x0] // encoding: [0x00,0xe0,0x60,0x0d] 76dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld4r { v15.4h, v16.4h, v17.4h, v18.4h }, [x15] // encoding: [0xef,0xe5,0x60,0x0d] 77dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld4r { v31.2s, v0.2s, v1.2s, v2.2s }, [sp] // encoding: [0xff,0xeb,0x60,0x0d] 78dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld4r { v31.1d, v0.1d, v1.1d, v2.1d }, [sp] // encoding: [0xff,0xef,0x60,0x0d] 7936c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 8036c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu//------------------------------------------------------------------------------ 8136c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu// Load single 1-element structure to one lane of 1 register. 8236c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu//------------------------------------------------------------------------------ 83dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld1 { v0.b }[9], [x0] 84dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld1 { v15.h }[7], [x15] 85dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld1 { v31.s }[3], [sp] 86dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld1 { v0.d }[1], [x0] 87dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld1 { v0.b }[9], [x0] // encoding: [0x00,0x04,0x40,0x4d] 88dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld1 { v15.h }[7], [x15] // encoding: [0xef,0x59,0x40,0x4d] 89dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld1 { v31.s }[3], [sp] // encoding: [0xff,0x93,0x40,0x4d] 90dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld1 { v0.d }[1], [x0] // encoding: [0x00,0x84,0x40,0x4d] 9136c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 9236c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu//------------------------------------------------------------------------------ 9336c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu// Load single N-element structure to one lane of N consecutive registers 9436c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu// (N = 2,3,4) 9536c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu//------------------------------------------------------------------------------ 96dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld2 { v0.b, v1.b }[9], [x0] 97dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld2 { v15.h, v16.h }[7], [x15] 98dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld2 { v31.s, v0.s }[3], [sp] 99dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld2 { v0.d, v1.d }[1], [x0] 100dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld2 { v0.b, v1.b }[9], [x0] // encoding: [0x00,0x04,0x60,0x4d] 101dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld2 { v15.h, v16.h }[7], [x15] // encoding: [0xef,0x59,0x60,0x4d] 102dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld2 { v31.s, v0.s }[3], [sp] // encoding: [0xff,0x93,0x60,0x4d] 103dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld2 { v0.d, v1.d }[1], [x0] // encoding: [0x00,0x84,0x60,0x4d] 10436c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 105dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld3 { v0.b, v1.b, v2.b }[9], [x0] 106dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld3 { v15.h, v16.h, v17.h }[7], [x15] 107dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld3 { v31.s, v0.s, v1.s }[3], [sp] 108dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld3 { v0.d, v1.d, v2.d }[1], [x0] 109dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld3 { v0.b, v1.b, v2.b }[9], [x0] // encoding: [0x00,0x24,0x40,0x4d] 110dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld3 { v15.h, v16.h, v17.h }[7], [x15] // encoding: [0xef,0x79,0x40,0x4d] 111dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld3 { v31.s, v0.s, v1.s }[3], [sp] // encoding: [0xff,0xb3,0x40,0x4d] 112dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld3 { v0.d, v1.d, v2.d }[1], [x0] // encoding: [0x00,0xa4,0x40,0x4d] 11336c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 114dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld4 { v0.b, v1.b, v2.b, v3.b }[9], [x0] 115dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld4 { v15.h, v16.h, v17.h, v18.h }[7], [x15] 116dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld4 { v31.s, v0.s, v1.s, v2.s }[3], [sp] 117dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld4 { v0.d, v1.d, v2.d, v3.d }[1], [x0] 118dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld4 { v0.b, v1.b, v2.b, v3.b }[9], [x0] // encoding: [0x00,0x24,0x60,0x4d] 119dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld4 { v15.h, v16.h, v17.h, v18.h }[7], [x15] // encoding: [0xef,0x79,0x60,0x4d] 120dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld4 { v31.s, v0.s, v1.s, v2.s }[3], [sp] // encoding: [0xff,0xb3,0x60,0x4d] 121dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld4 { v0.d, v1.d, v2.d, v3.d }[1], [x0] // encoding: [0x00,0xa4,0x60,0x4d] 12236c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 12336c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu//------------------------------------------------------------------------------ 12436c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu// Store single 1-element structure from one lane of 1 register. 12536c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu//------------------------------------------------------------------------------ 126dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st1 { v0.b }[9], [x0] 127dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st1 { v15.h }[7], [x15] 128dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st1 { v31.s }[3], [sp] 129dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st1 { v0.d }[1], [x0] 130dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st1 { v0.b }[9], [x0] // encoding: [0x00,0x04,0x00,0x4d] 131dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st1 { v15.h }[7], [x15] // encoding: [0xef,0x59,0x00,0x4d] 132dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st1 { v31.s }[3], [sp] // encoding: [0xff,0x93,0x00,0x4d] 133dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st1 { v0.d }[1], [x0] // encoding: [0x00,0x84,0x00,0x4d] 13436c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 13536c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu//------------------------------------------------------------------------------ 13636c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu// Store single N-element structure from one lane of N consecutive registers 13736c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu// (N = 2,3,4) 13836c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu//------------------------------------------------------------------------------ 139dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st2 { v0.b, v1.b }[9], [x0] 140dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st2 { v15.h, v16.h }[7], [x15] 141dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st2 { v31.s, v0.s }[3], [sp] 142dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st2 { v0.d, v1.d }[1], [x0] 143dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st2 { v0.b, v1.b }[9], [x0] // encoding: [0x00,0x04,0x20,0x4d] 144dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st2 { v15.h, v16.h }[7], [x15] // encoding: [0xef,0x59,0x20,0x4d] 145dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st2 { v31.s, v0.s }[3], [sp] // encoding: [0xff,0x93,0x20,0x4d] 146dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st2 { v0.d, v1.d }[1], [x0] // encoding: [0x00,0x84,0x20,0x4d] 14736c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 148dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st3 { v0.b, v1.b, v2.b }[9], [x0] 149dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st3 { v15.h, v16.h, v17.h }[7], [x15] 150dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st3 { v31.s, v0.s, v1.s }[3], [sp] 151dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st3 { v0.d, v1.d, v2.d }[1], [x0] 152dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st3 { v0.b, v1.b, v2.b }[9], [x0] // encoding: [0x00,0x24,0x00,0x4d] 153dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st3 { v15.h, v16.h, v17.h }[7], [x15] // encoding: [0xef,0x79,0x00,0x4d] 154dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st3 { v31.s, v0.s, v1.s }[3], [sp] // encoding: [0xff,0xb3,0x00,0x4d] 155dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st3 { v0.d, v1.d, v2.d }[1], [x0] // encoding: [0x00,0xa4,0x00,0x4d] 15636c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 157dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st4 { v0.b, v1.b, v2.b, v3.b }[9], [x0] 158dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st4 { v15.h, v16.h, v17.h, v18.h }[7], [x15] 159dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st4 { v31.s, v0.s, v1.s, v2.s }[3], [sp] 160dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st4 { v0.d, v1.d, v2.d, v3.d }[1], [x0] 161dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st4 { v0.b, v1.b, v2.b, v3.b }[9], [x0] // encoding: [0x00,0x24,0x20,0x4d] 162dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st4 { v15.h, v16.h, v17.h, v18.h }[7], [x15] // encoding: [0xef,0x79,0x20,0x4d] 163dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st4 { v31.s, v0.s, v1.s, v2.s }[3], [sp] // encoding: [0xff,0xb3,0x20,0x4d] 164dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st4 { v0.d, v1.d, v2.d, v3.d }[1], [x0] // encoding: [0x00,0xa4,0x20,0x4d] 16536c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 16636c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu//------------------------------------------------------------------------------ 16736c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu// Post-index oad single 1-element structure to all lanes of 1 register 16836c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu//------------------------------------------------------------------------------ 169dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld1r { v0.16b }, [x0], #1 170dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld1r { v15.8h }, [x15], #2 171dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld1r { v31.4s }, [sp], #4 172dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld1r { v0.2d }, [x0], #8 173dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld1r { v0.8b }, [x0], x0 174dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld1r { v15.4h }, [x15], x1 175dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld1r { v31.2s }, [sp], x2 176dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld1r { v0.1d }, [x0], x3 177dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld1r { v0.16b }, [x0], #1 // encoding: [0x00,0xc0,0xdf,0x4d] 178dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld1r { v15.8h }, [x15], #2 // encoding: [0xef,0xc5,0xdf,0x4d] 179dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld1r { v31.4s }, [sp], #4 // encoding: [0xff,0xcb,0xdf,0x4d] 180dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld1r { v0.2d }, [x0], #8 // encoding: [0x00,0xcc,0xdf,0x4d] 181dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld1r { v0.8b }, [x0], x0 // encoding: [0x00,0xc0,0xc0,0x0d] 182dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld1r { v15.4h }, [x15], x1 // encoding: [0xef,0xc5,0xc1,0x0d] 183dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld1r { v31.2s }, [sp], x2 // encoding: [0xff,0xcb,0xc2,0x0d] 184dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld1r { v0.1d }, [x0], x3 // encoding: [0x00,0xcc,0xc3,0x0d] 18536c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 18636c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu//------------------------------------------------------------------------------ 18736c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu// Post-index load single N-element structure to all lanes of N consecutive 18836c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu// registers (N = 2,3,4) 18936c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu//------------------------------------------------------------------------------ 190dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld2r { v0.16b, v1.16b }, [x0], #2 191dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld2r { v15.8h, v16.8h }, [x15], #4 192dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld2r { v31.4s, v0.4s }, [sp], #8 193dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld2r { v0.2d, v1.2d }, [x0], #16 194dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld2r { v0.8b, v1.8b }, [x0], x6 195dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld2r { v15.4h, v16.4h }, [x15], x7 196dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld2r { v31.2s, v0.2s }, [sp], x9 197dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld2r { v31.1d, v0.1d }, [x0], x5 198dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld2r { v0.16b, v1.16b }, [x0], #2 // encoding: [0x00,0xc0,0xff,0x4d] 199dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld2r { v15.8h, v16.8h }, [x15], #4 // encoding: [0xef,0xc5,0xff,0x4d] 200dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld2r { v31.4s, v0.4s }, [sp], #8 // encoding: [0xff,0xcb,0xff,0x4d] 201dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld2r { v0.2d, v1.2d }, [x0], #16 // encoding: [0x00,0xcc,0xff,0x4d] 202dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld2r { v0.8b, v1.8b }, [x0], x6 // encoding: [0x00,0xc0,0xe6,0x0d] 203dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld2r { v15.4h, v16.4h }, [x15], x7 // encoding: [0xef,0xc5,0xe7,0x0d] 204dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld2r { v31.2s, v0.2s }, [sp], x9 // encoding: [0xff,0xcb,0xe9,0x0d] 205dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld2r { v31.1d, v0.1d }, [x0], x5 // encoding: [0x1f,0xcc,0xe5,0x0d] 20636c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 207dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld3r { v0.16b, v1.16b, v2.16b }, [x0], x9 208dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld3r { v15.8h, v16.8h, v17.8h }, [x15], x6 209dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld3r { v31.4s, v0.4s, v1.4s }, [sp], x7 210dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld3r { v0.2d, v1.2d, v2.2d }, [x0], x5 211dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld3r { v0.8b, v1.8b, v2.8b }, [x0], #3 212dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld3r { v15.4h, v16.4h, v17.4h }, [x15], #6 213dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld3r { v31.2s, v0.2s, v1.2s }, [sp], #12 214dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld3r { v31.1d, v0.1d, v1.1d }, [sp], #24 215dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld3r { v0.16b, v1.16b, v2.16b }, [x0], x9 // encoding: [0x00,0xe0,0xc9,0x4d] 216dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld3r { v15.8h, v16.8h, v17.8h }, [x15], x6 // encoding: [0xef,0xe5,0xc6,0x4d] 217dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld3r { v31.4s, v0.4s, v1.4s }, [sp], x7 // encoding: [0xff,0xeb,0xc7,0x4d] 218dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld3r { v0.2d, v1.2d, v2.2d }, [x0], x5 // encoding: [0x00,0xec,0xc5,0x4d] 219dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld3r { v0.8b, v1.8b, v2.8b }, [x0], #3 // encoding: [0x00,0xe0,0xdf,0x0d] 220dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld3r { v15.4h, v16.4h, v17.4h }, [x15], #6 // encoding: [0xef,0xe5,0xdf,0x0d] 221dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld3r { v31.2s, v0.2s, v1.2s }, [sp], #12 // encoding: [0xff,0xeb,0xdf,0x0d] 222dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld3r { v31.1d, v0.1d, v1.1d }, [sp], #24 // encoding: [0xff,0xef,0xdf,0x0d] 22336c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 224dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld4r { v0.16b, v1.16b, v2.16b, v3.16b }, [x0], #4 225dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld4r { v15.8h, v16.8h, v17.8h, v18.8h }, [x15], #8 226dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld4r { v31.4s, v0.4s, v1.4s, v2.4s }, [sp], #16 227dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld4r { v0.2d, v1.2d, v2.2d, v3.2d }, [x0], #32 228dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld4r { v0.8b, v1.8b, v2.8b, v3.8b }, [x0], x5 229dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld4r { v15.4h, v16.4h, v17.4h, v18.4h }, [x15], x9 230dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld4r { v31.2s, v0.2s, v1.2s, v2.2s }, [sp], x30 231dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld4r { v31.1d, v0.1d, v1.1d, v2.1d }, [sp], x7 232dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld4r { v0.16b, v1.16b, v2.16b, v3.16b }, [x0], #4 // encoding: [0x00,0xe0,0xff,0x4d] 233dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld4r { v15.8h, v16.8h, v17.8h, v18.8h }, [x15], #8 // encoding: [0xef,0xe5,0xff,0x4d] 234dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld4r { v31.4s, v0.4s, v1.4s, v2.4s }, [sp], #16 // encoding: [0xff,0xeb,0xff,0x4d] 235dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld4r { v0.2d, v1.2d, v2.2d, v3.2d }, [x0], #32 // encoding: [0x00,0xec,0xff,0x4d] 236dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld4r { v0.8b, v1.8b, v2.8b, v3.8b }, [x0], x5 // encoding: [0x00,0xe0,0xe5,0x0d] 237dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld4r { v15.4h, v16.4h, v17.4h, v18.4h }, [x15], x9 // encoding: [0xef,0xe5,0xe9,0x0d] 238dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld4r { v31.2s, v0.2s, v1.2s, v2.2s }, [sp], x30 // encoding: [0xff,0xeb,0xfe,0x0d] 239dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld4r { v31.1d, v0.1d, v1.1d, v2.1d }, [sp], x7 // encoding: [0xff,0xef,0xe7,0x0d] 24036c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 24136c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu//------------------------------------------------------------------------------ 24236c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu// Post-index load single 1-element structure to one lane of 1 register. 24336c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu//------------------------------------------------------------------------------ 244dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld1 { v0.b }[9], [x0], #1 245dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld1 { v15.h }[7], [x15], x9 246dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld1 { v31.s }[3], [sp], x6 247dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld1 { v0.d }[1], [x0], #8 248dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld1 { v0.b }[9], [x0], #1 // encoding: [0x00,0x04,0xdf,0x4d] 249dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld1 { v15.h }[7], [x15], x9 // encoding: [0xef,0x59,0xc9,0x4d] 250dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld1 { v31.s }[3], [sp], x6 // encoding: [0xff,0x93,0xc6,0x4d] 251dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld1 { v0.d }[1], [x0], #8 // encoding: [0x00,0x84,0xdf,0x4d] 25236c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 25336c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu//------------------------------------------------------------------------------ 25436c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu// Post-index load single N-element structure to one lane of N consecutive 25536c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu// registers (N = 2,3,4) 25636c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu//------------------------------------------------------------------------------ 257dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld2 { v0.b, v1.b }[9], [x0], x3 258dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld2 { v15.h, v16.h }[7], [x15], #4 259dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld2 { v31.s, v0.s }[3], [sp], #8 260dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld2 { v0.d, v1.d }[1], [x0], x0 261dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld2 { v0.b, v1.b }[9], [x0], x3 // encoding: [0x00,0x04,0xe3,0x4d] 262dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld2 { v15.h, v16.h }[7], [x15], #4 // encoding: [0xef,0x59,0xff,0x4d] 263dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld2 { v31.s, v0.s }[3], [sp], #8 // encoding: [0xff,0x93,0xff,0x4d] 264dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld2 { v0.d, v1.d }[1], [x0], x0 // encoding: [0x00,0x84,0xe0,0x4d] 26536c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 266dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld3 { v0.b, v1.b, v2.b }[9], [x0], #3 267dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld3 { v15.h, v16.h, v17.h }[7], [x15], #6 268dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld3 { v31.s, v0.s, v1.s }[3], [sp], x3 269dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld3 { v0.d, v1.d, v2.d }[1], [x0], x6 270dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld3 { v0.b, v1.b, v2.b }[9], [x0], #3 // encoding: [0x00,0x24,0xdf,0x4d] 271dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld3 { v15.h, v16.h, v17.h }[7], [x15], #6 // encoding: [0xef,0x79,0xdf,0x4d] 272dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld3 { v31.s, v0.s, v1.s }[3], [sp], x3 // encoding: [0xff,0xb3,0xc3,0x4d] 273dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld3 { v0.d, v1.d, v2.d }[1], [x0], x6 // encoding: [0x00,0xa4,0xc6,0x4d] 27436c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 275dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld4 { v0.b, v1.b, v2.b, v3.b }[9], [x0], x5 276dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld4 { v15.h, v16.h, v17.h, v18.h }[7], [x15], x7 277dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld4 { v31.s, v0.s, v1.s, v2.s }[3], [sp], #16 278dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ld4 { v0.d, v1.d, v2.d, v3.d }[1], [x0], #32 279dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld4 { v0.b, v1.b, v2.b, v3.b }[9], [x0], x5 // encoding: [0x00,0x24,0xe5,0x4d] 280dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld4 { v15.h, v16.h, v17.h, v18.h }[7], [x15], x7 // encoding: [0xef,0x79,0xe7,0x4d] 281dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld4 { v31.s, v0.s, v1.s, v2.s }[3], [sp], #16 // encoding: [0xff,0xb3,0xff,0x4d] 282dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: ld4 { v0.d, v1.d, v2.d, v3.d }[1], [x0], #32 // encoding: [0x00,0xa4,0xff,0x4d] 28336c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 28436c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu//------------------------------------------------------------------------------ 28536c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu// Post-index store single 1-element structure from one lane of 1 register. 28636c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu//------------------------------------------------------------------------------ 287dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st1 { v0.b }[9], [x0], #1 288dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st1 { v15.h }[7], [x15], x9 289dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st1 { v31.s }[3], [sp], x6 290dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st1 { v0.d }[1], [x0], #8 291dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st1 { v0.b }[9], [x0], #1 // encoding: [0x00,0x04,0x9f,0x4d] 292dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st1 { v15.h }[7], [x15], x9 // encoding: [0xef,0x59,0x89,0x4d] 293dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st1 { v31.s }[3], [sp], x6 // encoding: [0xff,0x93,0x86,0x4d] 294dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st1 { v0.d }[1], [x0], #8 // encoding: [0x00,0x84,0x9f,0x4d] 29536c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 29636c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu//------------------------------------------------------------------------------ 29736c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu// Post-index store single N-element structure from one lane of N consecutive 29836c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu// registers (N = 2,3,4) 29936c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu//------------------------------------------------------------------------------ 300dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st2 { v0.b, v1.b }[9], [x0], x3 301dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st2 { v15.h, v16.h }[7], [x15], #4 302dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st2 { v31.s, v0.s }[3], [sp], #8 303dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st2 { v0.d, v1.d }[1], [x0], x0 304dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st2 { v0.b, v1.b }[9], [x0], x3 // encoding: [0x00,0x04,0xa3,0x4d] 305dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st2 { v15.h, v16.h }[7], [x15], #4 // encoding: [0xef,0x59,0xbf,0x4d] 306dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st2 { v31.s, v0.s }[3], [sp], #8 // encoding: [0xff,0x93,0xbf,0x4d] 307dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st2 { v0.d, v1.d }[1], [x0], x0 // encoding: [0x00,0x84,0xa0,0x4d] 30836c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 309dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st3 { v0.b, v1.b, v2.b }[9], [x0], #3 310dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st3 { v15.h, v16.h, v17.h }[7], [x15], #6 311dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st3 { v31.s, v0.s, v1.s }[3], [sp], x3 312dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st3 { v0.d, v1.d, v2.d }[1], [x0], x6 313dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st3 { v0.b, v1.b, v2.b }[9], [x0], #3 // encoding: [0x00,0x24,0x9f,0x4d] 314dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st3 { v15.h, v16.h, v17.h }[7], [x15], #6 // encoding: [0xef,0x79,0x9f,0x4d] 315dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st3 { v31.s, v0.s, v1.s }[3], [sp], x3 // encoding: [0xff,0xb3,0x83,0x4d] 316dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st3 { v0.d, v1.d, v2.d }[1], [x0], x6 // encoding: [0x00,0xa4,0x86,0x4d] 31736c7806f4eacd676932ba630246f88e0e37b1cd4Hao Liu 318dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st4 { v0.b, v1.b, v2.b, v3.b }[9], [x0], x5 319dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st4 { v15.h, v16.h, v17.h, v18.h }[7], [x15], x7 320dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st4 { v31.s, v0.s, v1.s, v2.s }[3], [sp], #16 321dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines st4 { v0.d, v1.d, v2.d, v3.d }[1], [x0], #32 322dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st4 { v0.b, v1.b, v2.b, v3.b }[9], [x0], x5 // encoding: [0x00,0x24,0xa5,0x4d] 323dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st4 { v15.h, v16.h, v17.h, v18.h }[7], [x15], x7 // encoding: [0xef,0x79,0xa7,0x4d] 324dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st4 { v31.s, v0.s, v1.s, v2.s }[3], [sp], #16 // encoding: [0xff,0xb3,0xbf,0x4d] 325dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: st4 { v0.d, v1.d, v2.d, v3.d }[1], [x0], #32 // encoding: [0x00,0xa4,0xbf,0x4d] 326