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