brintos

brintos / llvm-project-archived public Read only

0
0
Text · 26.4 KiB · b8b3e72 Raw
464 lines · plain
1// RUN: llvm-mc -triple=arm64 -mattr=+neon -show-encoding < %s | FileCheck %s2 3// Check that the assembler can handle the documented syntax for AArch644 5//------------------------------------------------------------------------------6// Store multiple 1-element structures from one register7//------------------------------------------------------------------------------8         st1 { v0.16b }, [x0]9         st1 { v15.8h }, [x15]10         st1 { v31.4s }, [sp]11         st1 { v0.2d }, [x0]12         st1 { v0.8b }, [x0]13         st1 { v15.4h }, [x15]14         st1 { v31.2s }, [sp]15         st1 { v0.1d }, [x0]16// CHECK:	st1	{ v0.16b }, [x0]          // encoding: [0x00,0x70,0x00,0x4c]17// CHECK:	st1	{ v15.8h }, [x15]         // encoding: [0xef,0x75,0x00,0x4c]18// CHECK:	st1	{ v31.4s }, [sp]          // encoding: [0xff,0x7b,0x00,0x4c]19// CHECK:	st1	{ v0.2d }, [x0]           // encoding: [0x00,0x7c,0x00,0x4c]20// CHECK:	st1	{ v0.8b }, [x0]           // encoding: [0x00,0x70,0x00,0x0c]21// CHECK:	st1	{ v15.4h }, [x15]         // encoding: [0xef,0x75,0x00,0x0c]22// CHECK:	st1	{ v31.2s }, [sp]          // encoding: [0xff,0x7b,0x00,0x0c]23// CHECK:	st1	{ v0.1d }, [x0]           // encoding: [0x00,0x7c,0x00,0x0c]24 25//------------------------------------------------------------------------------26// Store multiple 1-element structures from two consecutive registers27//------------------------------------------------------------------------------28         st1 { v0.16b, v1.16b }, [x0]29         st1 { v15.8h, v16.8h }, [x15]30         st1 { v31.4s, v0.4s }, [sp]31         st1 { v0.2d, v1.2d }, [x0]32         st1 { v0.8b, v1.8b }, [x0]33         st1 { v15.4h, v16.4h }, [x15]34         st1 { v31.2s, v0.2s }, [sp]35         st1 { v0.1d, v1.1d }, [x0]36// CHECK:	st1	{ v0.16b, v1.16b }, [x0]  // encoding: [0x00,0xa0,0x00,0x4c]37// CHECK:	st1	{ v15.8h, v16.8h }, [x15] // encoding: [0xef,0xa5,0x00,0x4c]38// CHECK:	st1	{ v31.4s, v0.4s }, [sp]   // encoding: [0xff,0xab,0x00,0x4c]39// CHECK:	st1	{ v0.2d, v1.2d }, [x0]    // encoding: [0x00,0xac,0x00,0x4c]40// CHECK:	st1	{ v0.8b, v1.8b }, [x0]    // encoding: [0x00,0xa0,0x00,0x0c]41// CHECK:	st1	{ v15.4h, v16.4h }, [x15] // encoding: [0xef,0xa5,0x00,0x0c]42// CHECK:	st1	{ v31.2s, v0.2s }, [sp]   // encoding: [0xff,0xab,0x00,0x0c]43// CHECK:	st1	{ v0.1d, v1.1d }, [x0]    // encoding: [0x00,0xac,0x00,0x0c]44 45         st1 { v0.16b-v1.16b }, [x0]46         st1 { v15.8h-v16.8h }, [x15]47         st1 { v31.4s-v0.4s }, [sp]48         st1 { v0.2d-v1.2d }, [x0]49         st1 { v0.8b-v1.8b }, [x0]50         st1 { v15.4h-v16.4h }, [x15]51         st1 { v31.2s-v0.2s }, [sp]52         st1 { v0.1d-v1.1d }, [x0]53// CHECK:	st1	{ v0.16b, v1.16b }, [x0]  // encoding: [0x00,0xa0,0x00,0x4c]54// CHECK:	st1	{ v15.8h, v16.8h }, [x15] // encoding: [0xef,0xa5,0x00,0x4c]55// CHECK:	st1	{ v31.4s, v0.4s }, [sp]   // encoding: [0xff,0xab,0x00,0x4c]56// CHECK:	st1	{ v0.2d, v1.2d }, [x0]    // encoding: [0x00,0xac,0x00,0x4c]57// CHECK:	st1	{ v0.8b, v1.8b }, [x0]    // encoding: [0x00,0xa0,0x00,0x0c]58// CHECK:	st1	{ v15.4h, v16.4h }, [x15] // encoding: [0xef,0xa5,0x00,0x0c]59// CHECK:	st1	{ v31.2s, v0.2s }, [sp]   // encoding: [0xff,0xab,0x00,0x0c]60// CHECK:	st1	{ v0.1d, v1.1d }, [x0]    // encoding: [0x00,0xac,0x00,0x0c]61 62//------------------------------------------------------------------------------63// Store multiple 1-element structures from three consecutive registers64//------------------------------------------------------------------------------65         st1 { v0.16b, v1.16b, v2.16b }, [x0]66         st1 { v15.8h, v16.8h, v17.8h }, [x15]67         st1 { v31.4s, v0.4s, v1.4s }, [sp]68         st1 { v0.2d, v1.2d, v2.2d }, [x0]69         st1 { v0.8b, v1.8b, v2.8b }, [x0]70         st1 { v15.4h, v16.4h, v17.4h }, [x15]71         st1 { v31.2s, v0.2s, v1.2s }, [sp]72         st1 { v0.1d, v1.1d, v2.1d }, [x0]73// CHECK:	st1	{ v0.16b, v1.16b, v2.16b }, [x0] // encoding: [0x00,0x60,0x00,0x4c]74// CHECK:	st1	{ v15.8h, v16.8h, v17.8h }, [x15] // encoding: [0xef,0x65,0x00,0x4c]75// CHECK:	st1	{ v31.4s, v0.4s, v1.4s }, [sp] // encoding: [0xff,0x6b,0x00,0x4c]76// CHECK:	st1	{ v0.2d, v1.2d, v2.2d }, [x0] // encoding: [0x00,0x6c,0x00,0x4c]77// CHECK:	st1	{ v0.8b, v1.8b, v2.8b }, [x0] // encoding: [0x00,0x60,0x00,0x0c]78// CHECK:	st1	{ v15.4h, v16.4h, v17.4h }, [x15] // encoding: [0xef,0x65,0x00,0x0c]79// CHECK:	st1	{ v31.2s, v0.2s, v1.2s }, [sp] // encoding: [0xff,0x6b,0x00,0x0c]80// CHECK:	st1	{ v0.1d, v1.1d, v2.1d }, [x0] // encoding: [0x00,0x6c,0x00,0x0c]81 82         st1 { v0.16b-v2.16b }, [x0]83         st1 { v15.8h-v17.8h }, [x15]84         st1 { v31.4s-v1.4s }, [sp]85         st1 { v0.2d-v2.2d }, [x0]86         st1 { v0.8b-v2.8b }, [x0]87         st1 { v15.4h-v17.4h }, [x15]88         st1 { v31.2s-v1.2s }, [sp]89         st1 { v0.1d-v2.1d }, [x0]90// CHECK:	st1	{ v0.16b, v1.16b, v2.16b }, [x0] // encoding: [0x00,0x60,0x00,0x4c]91// CHECK:	st1	{ v15.8h, v16.8h, v17.8h }, [x15] // encoding: [0xef,0x65,0x00,0x4c]92// CHECK:	st1	{ v31.4s, v0.4s, v1.4s }, [sp] // encoding: [0xff,0x6b,0x00,0x4c]93// CHECK:	st1	{ v0.2d, v1.2d, v2.2d }, [x0] // encoding: [0x00,0x6c,0x00,0x4c]94// CHECK:	st1	{ v0.8b, v1.8b, v2.8b }, [x0] // encoding: [0x00,0x60,0x00,0x0c]95// CHECK:	st1	{ v15.4h, v16.4h, v17.4h }, [x15] // encoding: [0xef,0x65,0x00,0x0c]96// CHECK:	st1	{ v31.2s, v0.2s, v1.2s }, [sp] // encoding: [0xff,0x6b,0x00,0x0c]97// CHECK:	st1	{ v0.1d, v1.1d, v2.1d }, [x0] // encoding: [0x00,0x6c,0x00,0x0c]98 99//------------------------------------------------------------------------------100// Store multiple 1-element structures from four consecutive registers101//------------------------------------------------------------------------------102         st1 { v0.16b, v1.16b, v2.16b, v3.16b }, [x0]103         st1 { v15.8h, v16.8h, v17.8h, v18.8h }, [x15]104         st1 { v31.4s, v0.4s, v1.4s, v2.4s }, [sp]105         st1 { v0.2d, v1.2d, v2.2d, v3.2d }, [x0]106         st1 { v0.8b, v1.8b, v2.8b, v3.8b }, [x0]107         st1 { v15.4h, v16.4h, v17.4h, v18.4h }, [x15]108         st1 { v31.2s, v0.2s, v1.2s, v2.2s }, [sp]109         st1 { v0.1d, v1.1d, v2.1d, v3.1d }, [x0]110// CHECK:	st1	{ v0.16b, v1.16b, v2.16b, v3.16b }, [x0] // encoding: [0x00,0x20,0x00,0x4c]111// CHECK:	st1	{ v15.8h, v16.8h, v17.8h, v18.8h }, [x15] // encoding: [0xef,0x25,0x00,0x4c]112// CHECK:	st1	{ v31.4s, v0.4s, v1.4s, v2.4s }, [sp] // encoding: [0xff,0x2b,0x00,0x4c]113// CHECK:	st1	{ v0.2d, v1.2d, v2.2d, v3.2d }, [x0] // encoding: [0x00,0x2c,0x00,0x4c]114// CHECK:	st1	{ v0.8b, v1.8b, v2.8b, v3.8b }, [x0] // encoding: [0x00,0x20,0x00,0x0c]115// CHECK:	st1	{ v15.4h, v16.4h, v17.4h, v18.4h }, [x15] // encoding: [0xef,0x25,0x00,0x0c]116// CHECK:	st1	{ v31.2s, v0.2s, v1.2s, v2.2s }, [sp] // encoding: [0xff,0x2b,0x00,0x0c]117// CHECK:	st1	{ v0.1d, v1.1d, v2.1d, v3.1d }, [x0] // encoding: [0x00,0x2c,0x00,0x0c]118 119         st1 { v0.16b-v3.16b }, [x0]120         st1 { v15.8h-v18.8h }, [x15]121         st1 { v31.4s-v2.4s }, [sp]122         st1 { v0.2d-v3.2d }, [x0]123         st1 { v0.8b-v3.8b }, [x0]124         st1 { v15.4h-v18.4h }, [x15]125         st1 { v31.2s-v2.2s }, [sp]126         st1 { v0.1d-v3.1d }, [x0]127// CHECK:	st1	{ v0.16b, v1.16b, v2.16b, v3.16b }, [x0] // encoding: [0x00,0x20,0x00,0x4c]128// CHECK:	st1	{ v15.8h, v16.8h, v17.8h, v18.8h }, [x15] // encoding: [0xef,0x25,0x00,0x4c]129// CHECK:	st1	{ v31.4s, v0.4s, v1.4s, v2.4s }, [sp] // encoding: [0xff,0x2b,0x00,0x4c]130// CHECK:	st1	{ v0.2d, v1.2d, v2.2d, v3.2d }, [x0] // encoding: [0x00,0x2c,0x00,0x4c]131// CHECK:	st1	{ v0.8b, v1.8b, v2.8b, v3.8b }, [x0] // encoding: [0x00,0x20,0x00,0x0c]132// CHECK:	st1	{ v15.4h, v16.4h, v17.4h, v18.4h }, [x15] // encoding: [0xef,0x25,0x00,0x0c]133// CHECK:	st1	{ v31.2s, v0.2s, v1.2s, v2.2s }, [sp] // encoding: [0xff,0x2b,0x00,0x0c]134// CHECK:	st1	{ v0.1d, v1.1d, v2.1d, v3.1d }, [x0] // encoding: [0x00,0x2c,0x00,0x0c]135 136//------------------------------------------------------------------------------137// Store multiple 2-element structures from two consecutive registers138//------------------------------------------------------------------------------139         st2 { v0.16b, v1.16b }, [x0]140         st2 { v15.8h, v16.8h }, [x15]141         st2 { v31.4s, v0.4s }, [sp]142         st2 { v0.2d, v1.2d }, [x0]143         st2 { v0.8b, v1.8b }, [x0]144         st2 { v15.4h, v16.4h }, [x15]145         st2 { v31.2s, v0.2s }, [sp]146// CHECK:	st2	{ v0.16b, v1.16b }, [x0]  // encoding: [0x00,0x80,0x00,0x4c]147// CHECK:	st2	{ v15.8h, v16.8h }, [x15] // encoding: [0xef,0x85,0x00,0x4c]148// CHECK:	st2	{ v31.4s, v0.4s }, [sp]   // encoding: [0xff,0x8b,0x00,0x4c]149// CHECK:	st2	{ v0.2d, v1.2d }, [x0]    // encoding: [0x00,0x8c,0x00,0x4c]150// CHECK:	st2	{ v0.8b, v1.8b }, [x0]    // encoding: [0x00,0x80,0x00,0x0c]151// CHECK:	st2	{ v15.4h, v16.4h }, [x15] // encoding: [0xef,0x85,0x00,0x0c]152// CHECK:	st2	{ v31.2s, v0.2s }, [sp]   // encoding: [0xff,0x8b,0x00,0x0c]153 154         st2 { v0.16b-v1.16b }, [x0]155         st2 { v15.8h-v16.8h }, [x15]156         st2 { v31.4s-v0.4s }, [sp]157         st2 { v0.2d-v1.2d }, [x0]158         st2 { v0.8b-v1.8b }, [x0]159         st2 { v15.4h-v16.4h }, [x15]160         st2 { v31.2s-v0.2s }, [sp]161// CHECK:	st2	{ v0.16b, v1.16b }, [x0]  // encoding: [0x00,0x80,0x00,0x4c]162// CHECK:	st2	{ v15.8h, v16.8h }, [x15] // encoding: [0xef,0x85,0x00,0x4c]163// CHECK:	st2	{ v31.4s, v0.4s }, [sp]   // encoding: [0xff,0x8b,0x00,0x4c]164// CHECK:	st2	{ v0.2d, v1.2d }, [x0]    // encoding: [0x00,0x8c,0x00,0x4c]165// CHECK:	st2	{ v0.8b, v1.8b }, [x0]    // encoding: [0x00,0x80,0x00,0x0c]166// CHECK:	st2	{ v15.4h, v16.4h }, [x15] // encoding: [0xef,0x85,0x00,0x0c]167// CHECK:	st2	{ v31.2s, v0.2s }, [sp]   // encoding: [0xff,0x8b,0x00,0x0c]168 169//------------------------------------------------------------------------------170// Store multiple 3-element structures from three consecutive registers171//------------------------------------------------------------------------------172         st3 { v0.16b, v1.16b, v2.16b }, [x0]173         st3 { v15.8h, v16.8h, v17.8h }, [x15]174         st3 { v31.4s, v0.4s, v1.4s }, [sp]175         st3 { v0.2d, v1.2d, v2.2d }, [x0]176         st3 { v0.8b, v1.8b, v2.8b }, [x0]177         st3 { v15.4h, v16.4h, v17.4h }, [x15]178         st3 { v31.2s, v0.2s, v1.2s }, [sp]179// CHECK:	st3	{ v0.16b, v1.16b, v2.16b }, [x0] // encoding: [0x00,0x40,0x00,0x4c]180// CHECK:	st3	{ v15.8h, v16.8h, v17.8h }, [x15] // encoding: [0xef,0x45,0x00,0x4c]181// CHECK:	st3	{ v31.4s, v0.4s, v1.4s }, [sp] // encoding: [0xff,0x4b,0x00,0x4c]182// CHECK:	st3	{ v0.2d, v1.2d, v2.2d }, [x0] // encoding: [0x00,0x4c,0x00,0x4c]183// CHECK:	st3	{ v0.8b, v1.8b, v2.8b }, [x0] // encoding: [0x00,0x40,0x00,0x0c]184// CHECK:	st3	{ v15.4h, v16.4h, v17.4h }, [x15] // encoding: [0xef,0x45,0x00,0x0c]185// CHECK:	st3	{ v31.2s, v0.2s, v1.2s }, [sp] // encoding: [0xff,0x4b,0x00,0x0c]186 187         st3 { v0.16b-v2.16b }, [x0]188         st3 { v15.8h-v17.8h }, [x15]189         st3 { v31.4s-v1.4s }, [sp]190         st3 { v0.2d-v2.2d }, [x0]191         st3 { v0.8b-v2.8b }, [x0]192         st3 { v15.4h-v17.4h }, [x15]193         st3 { v31.2s-v1.2s }, [sp]194// CHECK:	st3	{ v0.16b, v1.16b, v2.16b }, [x0] // encoding: [0x00,0x40,0x00,0x4c]195// CHECK:	st3	{ v15.8h, v16.8h, v17.8h }, [x15] // encoding: [0xef,0x45,0x00,0x4c]196// CHECK:	st3	{ v31.4s, v0.4s, v1.4s }, [sp] // encoding: [0xff,0x4b,0x00,0x4c]197// CHECK:	st3	{ v0.2d, v1.2d, v2.2d }, [x0] // encoding: [0x00,0x4c,0x00,0x4c]198// CHECK:	st3	{ v0.8b, v1.8b, v2.8b }, [x0] // encoding: [0x00,0x40,0x00,0x0c]199// CHECK:	st3	{ v15.4h, v16.4h, v17.4h }, [x15] // encoding: [0xef,0x45,0x00,0x0c]200// CHECK:	st3	{ v31.2s, v0.2s, v1.2s }, [sp] // encoding: [0xff,0x4b,0x00,0x0c]201 202//------------------------------------------------------------------------------203// Store multiple 4-element structures from four consecutive registers204//------------------------------------------------------------------------------205         st4 { v0.16b, v1.16b, v2.16b, v3.16b }, [x0]206         st4 { v15.8h, v16.8h, v17.8h, v18.8h }, [x15]207         st4 { v31.4s, v0.4s, v1.4s, v2.4s }, [sp]208         st4 { v0.2d, v1.2d, v2.2d, v3.2d }, [x0]209         st4 { v0.8b, v1.8b, v2.8b, v3.8b }, [x0]210         st4 { v15.4h, v16.4h, v17.4h, v18.4h }, [x15]211         st4 { v31.2s, v0.2s, v1.2s, v2.2s }, [sp]212// CHECK:	st4	{ v0.16b, v1.16b, v2.16b, v3.16b }, [x0] // encoding: [0x00,0x00,0x00,0x4c]213// CHECK:	st4	{ v15.8h, v16.8h, v17.8h, v18.8h }, [x15] // encoding: [0xef,0x05,0x00,0x4c]214// CHECK:	st4	{ v31.4s, v0.4s, v1.4s, v2.4s }, [sp] // encoding: [0xff,0x0b,0x00,0x4c]215// CHECK:	st4	{ v0.2d, v1.2d, v2.2d, v3.2d }, [x0] // encoding: [0x00,0x0c,0x00,0x4c]216// CHECK:	st4	{ v0.8b, v1.8b, v2.8b, v3.8b }, [x0] // encoding: [0x00,0x00,0x00,0x0c]217// CHECK:	st4	{ v15.4h, v16.4h, v17.4h, v18.4h }, [x15] // encoding: [0xef,0x05,0x00,0x0c]218// CHECK:	st4	{ v31.2s, v0.2s, v1.2s, v2.2s }, [sp] // encoding: [0xff,0x0b,0x00,0x0c]219 220         st4 { v0.16b-v3.16b }, [x0]221         st4 { v15.8h-v18.8h }, [x15]222         st4 { v31.4s-v2.4s }, [sp]223         st4 { v0.2d-v3.2d }, [x0]224         st4 { v0.8b-v3.8b }, [x0]225         st4 { v15.4h-v18.4h }, [x15]226         st4 { v31.2s-v2.2s }, [sp]227// CHECK:	st4	{ v0.16b, v1.16b, v2.16b, v3.16b }, [x0] // encoding: [0x00,0x00,0x00,0x4c]228// CHECK:	st4	{ v15.8h, v16.8h, v17.8h, v18.8h }, [x15] // encoding: [0xef,0x05,0x00,0x4c]229// CHECK:	st4	{ v31.4s, v0.4s, v1.4s, v2.4s }, [sp] // encoding: [0xff,0x0b,0x00,0x4c]230// CHECK:	st4	{ v0.2d, v1.2d, v2.2d, v3.2d }, [x0] // encoding: [0x00,0x0c,0x00,0x4c]231// CHECK:	st4	{ v0.8b, v1.8b, v2.8b, v3.8b }, [x0] // encoding: [0x00,0x00,0x00,0x0c]232// CHECK:	st4	{ v15.4h, v16.4h, v17.4h, v18.4h }, [x15] // encoding: [0xef,0x05,0x00,0x0c]233// CHECK:	st4	{ v31.2s, v0.2s, v1.2s, v2.2s }, [sp] // encoding: [0xff,0x0b,0x00,0x0c]234 235//------------------------------------------------------------------------------236// Load multiple 1-element structures to one register237//------------------------------------------------------------------------------238         ld1 { v0.16b }, [x0]239         ld1 { v15.8h }, [x15]240         ld1 { v31.4s }, [sp]241         ld1 { v0.2d }, [x0]242         ld1 { v0.8b }, [x0]243         ld1 { v15.4h }, [x15]244         ld1 { v31.2s }, [sp]245         ld1 { v0.1d }, [x0]246// CHECK:	ld1	{ v0.16b }, [x0]          // encoding: [0x00,0x70,0x40,0x4c]247// CHECK:	ld1	{ v15.8h }, [x15]         // encoding: [0xef,0x75,0x40,0x4c]248// CHECK:	ld1	{ v31.4s }, [sp]          // encoding: [0xff,0x7b,0x40,0x4c]249// CHECK:	ld1	{ v0.2d }, [x0]           // encoding: [0x00,0x7c,0x40,0x4c]250// CHECK:	ld1	{ v0.8b }, [x0]           // encoding: [0x00,0x70,0x40,0x0c]251// CHECK:	ld1	{ v15.4h }, [x15]         // encoding: [0xef,0x75,0x40,0x0c]252// CHECK:	ld1	{ v31.2s }, [sp]          // encoding: [0xff,0x7b,0x40,0x0c]253// CHECK:	ld1	{ v0.1d }, [x0]           // encoding: [0x00,0x7c,0x40,0x0c]254 255//------------------------------------------------------------------------------256// Load multiple 1-element structures to two consecutive registers257//------------------------------------------------------------------------------258         ld1 { v0.16b, v1.16b }, [x0]259         ld1 { v15.8h, v16.8h }, [x15]260         ld1 { v31.4s, v0.4s }, [sp]261         ld1 { v0.2d, v1.2d }, [x0]262         ld1 { v0.8b, v1.8b }, [x0]263         ld1 { v15.4h, v16.4h }, [x15]264         ld1 { v31.2s, v0.2s }, [sp]265         ld1 { v0.1d, v1.1d }, [x0]266// CHECK:	ld1	{ v0.16b, v1.16b }, [x0]  // encoding: [0x00,0xa0,0x40,0x4c]267// CHECK:	ld1	{ v15.8h, v16.8h }, [x15] // encoding: [0xef,0xa5,0x40,0x4c]268// CHECK:	ld1	{ v31.4s, v0.4s }, [sp]   // encoding: [0xff,0xab,0x40,0x4c]269// CHECK:	ld1	{ v0.2d, v1.2d }, [x0]    // encoding: [0x00,0xac,0x40,0x4c]270// CHECK:	ld1	{ v0.8b, v1.8b }, [x0]    // encoding: [0x00,0xa0,0x40,0x0c]271// CHECK:	ld1	{ v15.4h, v16.4h }, [x15] // encoding: [0xef,0xa5,0x40,0x0c]272// CHECK:	ld1	{ v31.2s, v0.2s }, [sp]   // encoding: [0xff,0xab,0x40,0x0c]273// CHECK:	ld1	{ v0.1d, v1.1d }, [x0]    // encoding: [0x00,0xac,0x40,0x0c]274 275         ld1 { v0.16b-v1.16b }, [x0]276         ld1 { v15.8h-v16.8h }, [x15]277         ld1 { v31.4s-v0.4s }, [sp]278         ld1 { v0.2d-v1.2d }, [x0]279         ld1 { v0.8b-v1.8b }, [x0]280         ld1 { v15.4h-v16.4h }, [x15]281         ld1 { v31.2s-v0.2s }, [sp]282         ld1 { v0.1d-v1.1d }, [x0]283// CHECK:	ld1	{ v0.16b, v1.16b }, [x0]  // encoding: [0x00,0xa0,0x40,0x4c]284// CHECK:	ld1	{ v15.8h, v16.8h }, [x15] // encoding: [0xef,0xa5,0x40,0x4c]285// CHECK:	ld1	{ v31.4s, v0.4s }, [sp]   // encoding: [0xff,0xab,0x40,0x4c]286// CHECK:	ld1	{ v0.2d, v1.2d }, [x0]    // encoding: [0x00,0xac,0x40,0x4c]287// CHECK:	ld1	{ v0.8b, v1.8b }, [x0]    // encoding: [0x00,0xa0,0x40,0x0c]288// CHECK:	ld1	{ v15.4h, v16.4h }, [x15] // encoding: [0xef,0xa5,0x40,0x0c]289// CHECK:	ld1	{ v31.2s, v0.2s }, [sp]   // encoding: [0xff,0xab,0x40,0x0c]290// CHECK:	ld1	{ v0.1d, v1.1d }, [x0]    // encoding: [0x00,0xac,0x40,0x0c]291 292//------------------------------------------------------------------------------293// Load multiple 1-element structures to three consecutive registers294//------------------------------------------------------------------------------295         ld1 { v0.16b, v1.16b, v2.16b }, [x0]296         ld1 { v15.8h, v16.8h, v17.8h }, [x15]297         ld1 { v31.4s, v0.4s, v1.4s }, [sp]298         ld1 { v0.2d, v1.2d, v2.2d }, [x0]299         ld1 { v0.8b, v1.8b, v2.8b }, [x0]300         ld1 { v15.4h, v16.4h, v17.4h }, [x15]301         ld1 { v31.2s, v0.2s, v1.2s }, [sp]302         ld1 { v0.1d, v1.1d, v2.1d }, [x0]303// CHECK:	ld1	{ v0.16b, v1.16b, v2.16b }, [x0] // encoding: [0x00,0x60,0x40,0x4c]304// CHECK:	ld1	{ v15.8h, v16.8h, v17.8h }, [x15] // encoding: [0xef,0x65,0x40,0x4c]305// CHECK:	ld1	{ v31.4s, v0.4s, v1.4s }, [sp] // encoding: [0xff,0x6b,0x40,0x4c]306// CHECK:	ld1	{ v0.2d, v1.2d, v2.2d }, [x0] // encoding: [0x00,0x6c,0x40,0x4c]307// CHECK:	ld1	{ v0.8b, v1.8b, v2.8b }, [x0] // encoding: [0x00,0x60,0x40,0x0c]308// CHECK:	ld1	{ v15.4h, v16.4h, v17.4h }, [x15] // encoding: [0xef,0x65,0x40,0x0c]309// CHECK:	ld1	{ v31.2s, v0.2s, v1.2s }, [sp] // encoding: [0xff,0x6b,0x40,0x0c]310// CHECK:	ld1	{ v0.1d, v1.1d, v2.1d }, [x0] // encoding: [0x00,0x6c,0x40,0x0c]311 312         ld1 { v0.16b-v2.16b }, [x0]313         ld1 { v15.8h-v17.8h }, [x15]314         ld1 { v31.4s-v1.4s }, [sp]315         ld1 { v0.2d-v2.2d }, [x0]316         ld1 { v0.8b-v2.8b }, [x0]317         ld1 { v15.4h-v17.4h }, [x15]318         ld1 { v31.2s-v1.2s }, [sp]319         ld1 { v0.1d-v2.1d }, [x0]320// CHECK:	ld1	{ v0.16b, v1.16b, v2.16b }, [x0] // encoding: [0x00,0x60,0x40,0x4c]321// CHECK:	ld1	{ v15.8h, v16.8h, v17.8h }, [x15] // encoding: [0xef,0x65,0x40,0x4c]322// CHECK:	ld1	{ v31.4s, v0.4s, v1.4s }, [sp] // encoding: [0xff,0x6b,0x40,0x4c]323// CHECK:	ld1	{ v0.2d, v1.2d, v2.2d }, [x0] // encoding: [0x00,0x6c,0x40,0x4c]324// CHECK:	ld1	{ v0.8b, v1.8b, v2.8b }, [x0] // encoding: [0x00,0x60,0x40,0x0c]325// CHECK:	ld1	{ v15.4h, v16.4h, v17.4h }, [x15] // encoding: [0xef,0x65,0x40,0x0c]326// CHECK:	ld1	{ v31.2s, v0.2s, v1.2s }, [sp] // encoding: [0xff,0x6b,0x40,0x0c]327// CHECK:	ld1	{ v0.1d, v1.1d, v2.1d }, [x0] // encoding: [0x00,0x6c,0x40,0x0c]328 329//------------------------------------------------------------------------------330// Load multiple 1-element structures to four consecutive registers331//------------------------------------------------------------------------------332         ld1 { v0.16b, v1.16b, v2.16b, v3.16b }, [x0]333         ld1 { v15.8h, v16.8h, v17.8h, v18.8h }, [x15]334         ld1 { v31.4s, v0.4s, v1.4s, v2.4s }, [sp]335         ld1 { v0.2d, v1.2d, v2.2d, v3.2d }, [x0]336         ld1 { v0.8b, v1.8b, v2.8b, v3.8b }, [x0]337         ld1 { v15.4h, v16.4h, v17.4h, v18.4h }, [x15]338         ld1 { v31.2s, v0.2s, v1.2s, v2.2s }, [sp]339         ld1 { v0.1d, v1.1d, v2.1d, v3.1d }, [x0]340// CHECK:	ld1	{ v0.16b, v1.16b, v2.16b, v3.16b }, [x0] // encoding: [0x00,0x20,0x40,0x4c]341// CHECK:	ld1	{ v15.8h, v16.8h, v17.8h, v18.8h }, [x15] // encoding: [0xef,0x25,0x40,0x4c]342// CHECK:	ld1	{ v31.4s, v0.4s, v1.4s, v2.4s }, [sp] // encoding: [0xff,0x2b,0x40,0x4c]343// CHECK:	ld1	{ v0.2d, v1.2d, v2.2d, v3.2d }, [x0] // encoding: [0x00,0x2c,0x40,0x4c]344// CHECK:	ld1	{ v0.8b, v1.8b, v2.8b, v3.8b }, [x0] // encoding: [0x00,0x20,0x40,0x0c]345// CHECK:	ld1	{ v15.4h, v16.4h, v17.4h, v18.4h }, [x15] // encoding: [0xef,0x25,0x40,0x0c]346// CHECK:	ld1	{ v31.2s, v0.2s, v1.2s, v2.2s }, [sp] // encoding: [0xff,0x2b,0x40,0x0c]347// CHECK:	ld1	{ v0.1d, v1.1d, v2.1d, v3.1d }, [x0] // encoding: [0x00,0x2c,0x40,0x0c]348 349         ld1 { v0.16b-v3.16b }, [x0]350         ld1 { v15.8h-v18.8h }, [x15]351         ld1 { v31.4s-v2.4s }, [sp]352         ld1 { v0.2d-v3.2d }, [x0]353         ld1 { v0.8b-v3.8b }, [x0]354         ld1 { v15.4h-v18.4h }, [x15]355         ld1 { v31.2s-v2.2s }, [sp]356         ld1 { v0.1d-v3.1d }, [x0]357// CHECK:	ld1	{ v0.16b, v1.16b, v2.16b, v3.16b }, [x0] // encoding: [0x00,0x20,0x40,0x4c]358// CHECK:	ld1	{ v15.8h, v16.8h, v17.8h, v18.8h }, [x15] // encoding: [0xef,0x25,0x40,0x4c]359// CHECK:	ld1	{ v31.4s, v0.4s, v1.4s, v2.4s }, [sp] // encoding: [0xff,0x2b,0x40,0x4c]360// CHECK:	ld1	{ v0.2d, v1.2d, v2.2d, v3.2d }, [x0] // encoding: [0x00,0x2c,0x40,0x4c]361// CHECK:	ld1	{ v0.8b, v1.8b, v2.8b, v3.8b }, [x0] // encoding: [0x00,0x20,0x40,0x0c]362// CHECK:	ld1	{ v15.4h, v16.4h, v17.4h, v18.4h }, [x15] // encoding: [0xef,0x25,0x40,0x0c]363// CHECK:	ld1	{ v31.2s, v0.2s, v1.2s, v2.2s }, [sp] // encoding: [0xff,0x2b,0x40,0x0c]364// CHECK:	ld1	{ v0.1d, v1.1d, v2.1d, v3.1d }, [x0] // encoding: [0x00,0x2c,0x40,0x0c]365 366//------------------------------------------------------------------------------367// Load multiple 4-element structures to two consecutive registers368//------------------------------------------------------------------------------369         ld2 { v0.16b, v1.16b }, [x0]370         ld2 { v15.8h, v16.8h }, [x15]371         ld2 { v31.4s, v0.4s }, [sp]372         ld2 { v0.2d, v1.2d }, [x0]373         ld2 { v0.8b, v1.8b }, [x0]374         ld2 { v15.4h, v16.4h }, [x15]375         ld2 { v31.2s, v0.2s }, [sp]376// CHECK:	ld2	{ v0.16b, v1.16b }, [x0]  // encoding: [0x00,0x80,0x40,0x4c]377// CHECK:	ld2	{ v15.8h, v16.8h }, [x15] // encoding: [0xef,0x85,0x40,0x4c]378// CHECK:	ld2	{ v31.4s, v0.4s }, [sp]   // encoding: [0xff,0x8b,0x40,0x4c]379// CHECK:	ld2	{ v0.2d, v1.2d }, [x0]    // encoding: [0x00,0x8c,0x40,0x4c]380// CHECK:	ld2	{ v0.8b, v1.8b }, [x0]    // encoding: [0x00,0x80,0x40,0x0c]381// CHECK:	ld2	{ v15.4h, v16.4h }, [x15] // encoding: [0xef,0x85,0x40,0x0c]382// CHECK:	ld2	{ v31.2s, v0.2s }, [sp]   // encoding: [0xff,0x8b,0x40,0x0c]383 384         ld2 { v0.16b-v1.16b }, [x0]385         ld2 { v15.8h-v16.8h }, [x15]386         ld2 { v31.4s-v0.4s }, [sp]387         ld2 { v0.2d-v1.2d }, [x0]388         ld2 { v0.8b-v1.8b }, [x0]389         ld2 { v15.4h-v16.4h }, [x15]390         ld2 { v31.2s-v0.2s }, [sp]391// CHECK:	ld2	{ v0.16b, v1.16b }, [x0]  // encoding: [0x00,0x80,0x40,0x4c]392// CHECK:	ld2	{ v15.8h, v16.8h }, [x15] // encoding: [0xef,0x85,0x40,0x4c]393// CHECK:	ld2	{ v31.4s, v0.4s }, [sp]   // encoding: [0xff,0x8b,0x40,0x4c]394// CHECK:	ld2	{ v0.2d, v1.2d }, [x0]    // encoding: [0x00,0x8c,0x40,0x4c]395// CHECK:	ld2	{ v0.8b, v1.8b }, [x0]    // encoding: [0x00,0x80,0x40,0x0c]396// CHECK:	ld2	{ v15.4h, v16.4h }, [x15] // encoding: [0xef,0x85,0x40,0x0c]397// CHECK:	ld2	{ v31.2s, v0.2s }, [sp]   // encoding: [0xff,0x8b,0x40,0x0c]398 399//------------------------------------------------------------------------------400// Load multiple 3-element structures to three consecutive registers401//------------------------------------------------------------------------------402         ld3 { v0.16b, v1.16b, v2.16b }, [x0]403         ld3 { v15.8h, v16.8h, v17.8h }, [x15]404         ld3 { v31.4s, v0.4s, v1.4s }, [sp]405         ld3 { v0.2d, v1.2d, v2.2d }, [x0]406         ld3 { v0.8b, v1.8b, v2.8b }, [x0]407         ld3 { v15.4h, v16.4h, v17.4h }, [x15]408         ld3 { v31.2s, v0.2s, v1.2s }, [sp]409// CHECK:	ld3	{ v0.16b, v1.16b, v2.16b }, [x0] // encoding: [0x00,0x40,0x40,0x4c]410// CHECK:	ld3	{ v15.8h, v16.8h, v17.8h }, [x15] // encoding: [0xef,0x45,0x40,0x4c]411// CHECK:	ld3	{ v31.4s, v0.4s, v1.4s }, [sp] // encoding: [0xff,0x4b,0x40,0x4c]412// CHECK:	ld3	{ v0.2d, v1.2d, v2.2d }, [x0] // encoding: [0x00,0x4c,0x40,0x4c]413// CHECK:	ld3	{ v0.8b, v1.8b, v2.8b }, [x0] // encoding: [0x00,0x40,0x40,0x0c]414// CHECK:	ld3	{ v15.4h, v16.4h, v17.4h }, [x15] // encoding: [0xef,0x45,0x40,0x0c]415// CHECK:	ld3	{ v31.2s, v0.2s, v1.2s }, [sp] // encoding: [0xff,0x4b,0x40,0x0c]416 417         ld3 { v0.16b-v2.16b }, [x0]418         ld3 { v15.8h-v17.8h }, [x15]419         ld3 { v31.4s-v1.4s }, [sp]420         ld3 { v0.2d-v2.2d }, [x0]421         ld3 { v0.8b-v2.8b }, [x0]422         ld3 { v15.4h-v17.4h }, [x15]423         ld3 { v31.2s-v1.2s }, [sp]424// CHECK:	ld3	{ v0.16b, v1.16b, v2.16b }, [x0] // encoding: [0x00,0x40,0x40,0x4c]425// CHECK:	ld3	{ v15.8h, v16.8h, v17.8h }, [x15] // encoding: [0xef,0x45,0x40,0x4c]426// CHECK:	ld3	{ v31.4s, v0.4s, v1.4s }, [sp] // encoding: [0xff,0x4b,0x40,0x4c]427// CHECK:	ld3	{ v0.2d, v1.2d, v2.2d }, [x0] // encoding: [0x00,0x4c,0x40,0x4c]428// CHECK:	ld3	{ v0.8b, v1.8b, v2.8b }, [x0] // encoding: [0x00,0x40,0x40,0x0c]429// CHECK:	ld3	{ v15.4h, v16.4h, v17.4h }, [x15] // encoding: [0xef,0x45,0x40,0x0c]430// CHECK:	ld3	{ v31.2s, v0.2s, v1.2s }, [sp] // encoding: [0xff,0x4b,0x40,0x0c]431 432//------------------------------------------------------------------------------433// Load multiple 4-element structures to four consecutive registers434//------------------------------------------------------------------------------435         ld4 { v0.16b, v1.16b, v2.16b, v3.16b }, [x0]436         ld4 { v15.8h, v16.8h, v17.8h, v18.8h }, [x15]437         ld4 { v31.4s, v0.4s, v1.4s, v2.4s }, [sp]438         ld4 { v0.2d, v1.2d, v2.2d, v3.2d }, [x0]439         ld4 { v0.8b, v1.8b, v2.8b, v3.8b }, [x0]440         ld4 { v15.4h, v16.4h, v17.4h, v18.4h }, [x15]441         ld4 { v31.2s, v0.2s, v1.2s, v2.2s }, [sp]442// CHECK:	ld4	{ v0.16b, v1.16b, v2.16b, v3.16b }, [x0] // encoding: [0x00,0x00,0x40,0x4c]443// CHECK:	ld4	{ v15.8h, v16.8h, v17.8h, v18.8h }, [x15] // encoding: [0xef,0x05,0x40,0x4c]444// CHECK:	ld4	{ v31.4s, v0.4s, v1.4s, v2.4s }, [sp] // encoding: [0xff,0x0b,0x40,0x4c]445// CHECK:	ld4	{ v0.2d, v1.2d, v2.2d, v3.2d }, [x0] // encoding: [0x00,0x0c,0x40,0x4c]446// CHECK:	ld4	{ v0.8b, v1.8b, v2.8b, v3.8b }, [x0] // encoding: [0x00,0x00,0x40,0x0c]447// CHECK:	ld4	{ v15.4h, v16.4h, v17.4h, v18.4h }, [x15] // encoding: [0xef,0x05,0x40,0x0c]448// CHECK:	ld4	{ v31.2s, v0.2s, v1.2s, v2.2s }, [sp] // encoding: [0xff,0x0b,0x40,0x0c]449 450         ld4 { v0.16b-v3.16b }, [x0]451         ld4 { v15.8h-v18.8h }, [x15]452         ld4 { v31.4s-v2.4s }, [sp]453         ld4 { v0.2d-v3.2d }, [x0]454         ld4 { v0.8b-v3.8b }, [x0]455         ld4 { v15.4h-v18.4h }, [x15]456         ld4 { v31.2s-v2.2s }, [sp]457// CHECK:	ld4	{ v0.16b, v1.16b, v2.16b, v3.16b }, [x0] // encoding: [0x00,0x00,0x40,0x4c]458// CHECK:	ld4	{ v15.8h, v16.8h, v17.8h, v18.8h }, [x15] // encoding: [0xef,0x05,0x40,0x4c]459// CHECK:	ld4	{ v31.4s, v0.4s, v1.4s, v2.4s }, [sp] // encoding: [0xff,0x0b,0x40,0x4c]460// CHECK:	ld4	{ v0.2d, v1.2d, v2.2d, v3.2d }, [x0] // encoding: [0x00,0x0c,0x40,0x4c]461// CHECK:	ld4	{ v0.8b, v1.8b, v2.8b, v3.8b }, [x0] // encoding: [0x00,0x00,0x40,0x0c]462// CHECK:	ld4	{ v15.4h, v16.4h, v17.4h, v18.4h }, [x15] // encoding: [0xef,0x05,0x40,0x0c]463// CHECK:	ld4	{ v31.2s, v0.2s, v1.2s, v2.2s }, [sp] // encoding: [0xff,0x0b,0x40,0x0c]464