llvm.org GIT mirror llvm / b1d0812
Make ARMAsmParser accept the correct alignment specifier syntax in instructions. The parser will now accept instructions with alignment specifiers written like vld1.8 {d16}, [r0:64] , while also still accepting the incorrect syntax vld1.8 {d16}, [r0, :64] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175164 91177308-0d34-0410-b5e6-96231b3b80d8 Kristof Beyls 7 years ago
7 changed file(s) with 180 addition(s) and 160 deletion(s). Raw diff Collapse all Expand all
42364236 if (BaseRegNum == -1)
42374237 return Error(BaseRegTok.getLoc(), "register expected");
42384238
4239 // The next token must either be a comma or a closing bracket.
4239 // The next token must either be a comma, a colon or a closing bracket.
42404240 const AsmToken &Tok = Parser.getTok();
4241 if (!Tok.is(AsmToken::Comma) && !Tok.is(AsmToken::RBrac))
4241 if (!Tok.is(AsmToken::Colon) && !Tok.is(AsmToken::Comma) &&
4242 !Tok.is(AsmToken::RBrac))
42424243 return Error(Tok.getLoc(), "malformed memory operand");
42434244
42444245 if (Tok.is(AsmToken::RBrac)) {
42584259 return false;
42594260 }
42604261
4261 assert(Tok.is(AsmToken::Comma) && "Lost comma in memory operand?!");
4262 Parser.Lex(); // Eat the comma.
4262 assert((Tok.is(AsmToken::Colon) || Tok.is(AsmToken::Comma)) &&
4263 "Lost colon or comma in memory operand?!");
4264 if (Tok.is(AsmToken::Comma)) {
4265 Parser.Lex(); // Eat the comma.
4266 }
42634267
42644268 // If we have a ':', it's an alignment specifier.
42654269 if (Parser.getTok().is(AsmToken::Colon)) {
2929
3030 define hidden void @conv4_8_E() nounwind {
3131 entry:
32 %asmtmp31 = call %0 asm "vld1.u8 {$0}, [$1, :128]!\0A", "=w,=r,1"(<16 x i8>* undef) nounwind
32 %asmtmp31 = call %0 asm "vld1.u8 {$0}, [$1:128]!\0A", "=w,=r,1"(<16 x i8>* undef) nounwind
3333 unreachable
3434 }
3535
0 @ RUN: llvm-mc -mcpu=cortex-a8 -triple armv7-apple-darwin -show-encoding < %s | FileCheck %s
11
2 vld1.8 {d16}, [r0, :64]
2 vld1.8 {d16}, [r0:64]
33 vld1.16 {d16}, [r0]
44 vld1.32 {d16}, [r0]
55 vld1.64 {d16}, [r0]
6 vld1.8 {d16, d17}, [r0, :64]
7 vld1.16 {d16, d17}, [r0, :128]
6 vld1.8 {d16, d17}, [r0:64]
7 vld1.16 {d16, d17}, [r0:128]
88 vld1.32 {d16, d17}, [r0]
99 vld1.64 {d16, d17}, [r0]
1010 vld1.8 {d1, d2, d3}, [r3]
11 vld1.16 {d4, d5, d6}, [r3, :64]
11 vld1.16 {d4, d5, d6}, [r3:64]
1212 vld1.32 {d5, d6, d7}, [r3]
13 vld1.64 {d6, d7, d8}, [r3, :64]
13 vld1.64 {d6, d7, d8}, [r3:64]
1414 vld1.8 {d1, d2, d3, d4}, [r3]
15 vld1.16 {d4, d5, d6, d7}, [r3, :64]
15 vld1.16 {d4, d5, d6, d7}, [r3:64]
1616 vld1.32 {d5, d6, d7, d8}, [r3]
17 vld1.64 {d6, d7, d8, d9}, [r3, :64]
18
19 vld1.8 {d16}, [r0, :64]!
17 vld1.64 {d6, d7, d8, d9}, [r3:64]
18
19 vld1.8 {d16}, [r0:64]!
2020 vld1.16 {d16}, [r0]!
2121 vld1.32 {d16}, [r0]!
2222 vld1.64 {d16}, [r0]!
23 vld1.8 {d16, d17}, [r0, :64]!
24 vld1.16 {d16, d17}, [r0, :128]!
23 vld1.8 {d16, d17}, [r0:64]!
24 vld1.16 {d16, d17}, [r0:128]!
2525 vld1.32 {d16, d17}, [r0]!
2626 vld1.64 {d16, d17}, [r0]!
2727
28 vld1.8 {d16}, [r0, :64], r5
28 vld1.8 {d16}, [r0:64], r5
2929 vld1.16 {d16}, [r0], r5
3030 vld1.32 {d16}, [r0], r5
3131 vld1.64 {d16}, [r0], r5
32 vld1.8 {d16, d17}, [r0, :64], r5
33 vld1.16 {d16, d17}, [r0, :128], r5
32 vld1.8 {d16, d17}, [r0:64], r5
33 vld1.16 {d16, d17}, [r0:128], r5
3434 vld1.32 {d16, d17}, [r0], r5
3535 vld1.64 {d16, d17}, [r0], r5
3636
3737 vld1.8 {d1, d2, d3}, [r3]!
38 vld1.16 {d4, d5, d6}, [r3, :64]!
38 vld1.16 {d4, d5, d6}, [r3:64]!
3939 vld1.32 {d5, d6, d7}, [r3]!
40 vld1.64 {d6, d7, d8}, [r3, :64]!
40 vld1.64 {d6, d7, d8}, [r3:64]!
4141
4242 vld1.8 {d1, d2, d3}, [r3], r6
43 vld1.16 {d4, d5, d6}, [r3, :64], r6
43 vld1.16 {d4, d5, d6}, [r3:64], r6
4444 vld1.32 {d5, d6, d7}, [r3], r6
45 vld1.64 {d6, d7, d8}, [r3, :64], r6
45 vld1.64 {d6, d7, d8}, [r3:64], r6
4646
4747 vld1.8 {d1, d2, d3, d4}, [r3]!
48 vld1.16 {d4, d5, d6, d7}, [r3, :64]!
48 vld1.16 {d4, d5, d6, d7}, [r3:64]!
4949 vld1.32 {d5, d6, d7, d8}, [r3]!
50 vld1.64 {d6, d7, d8, d9}, [r3, :64]!
50 vld1.64 {d6, d7, d8, d9}, [r3:64]!
5151
5252 vld1.8 {d1, d2, d3, d4}, [r3], r8
53 vld1.16 {d4, d5, d6, d7}, [r3, :64], r8
53 vld1.16 {d4, d5, d6, d7}, [r3:64], r8
5454 vld1.32 {d5, d6, d7, d8}, [r3], r8
55 vld1.64 {d6, d7, d8, d9}, [r3, :64], r8
55 vld1.64 {d6, d7, d8, d9}, [r3:64], r8
5656
5757 @ CHECK: vld1.8 {d16}, [r0, :64] @ encoding: [0x1f,0x07,0x60,0xf4]
5858 @ CHECK: vld1.16 {d16}, [r0] @ encoding: [0x4f,0x07,0x60,0xf4]
110110 @ CHECK: vld1.64 {d6, d7, d8, d9}, [r3, :64], r8 @ encoding: [0xd8,0x62,0x23,0xf4]
111111
112112
113 vld2.8 {d16, d17}, [r0, :64]
114 vld2.16 {d16, d17}, [r0, :128]
113 vld2.8 {d16, d17}, [r0:64]
114 vld2.16 {d16, d17}, [r0:128]
115115 vld2.32 {d16, d17}, [r0]
116 vld2.8 {d16, d17, d18, d19}, [r0, :64]
117 vld2.16 {d16, d17, d18, d19}, [r0, :128]
118 vld2.32 {d16, d17, d18, d19}, [r0, :256]
119
120 vld2.8 {d19, d20}, [r0, :64]!
121 vld2.16 {d16, d17}, [r0, :128]!
116 vld2.8 {d16, d17, d18, d19}, [r0:64]
117 vld2.16 {d16, d17, d18, d19}, [r0:128]
118 vld2.32 {d16, d17, d18, d19}, [r0:256]
119
120 vld2.8 {d19, d20}, [r0:64]!
121 vld2.16 {d16, d17}, [r0:128]!
122122 vld2.32 {q10}, [r0]!
123 vld2.8 {d4-d7}, [r0, :64]!
124 vld2.16 {d1, d2, d3, d4}, [r0, :128]!
125 vld2.32 {q7, q8}, [r0, :256]!
126
127 vld2.8 {d19, d20}, [r0, :64], r6
128 vld2.16 {d16, d17}, [r0, :128], r6
123 vld2.8 {d4-d7}, [r0:64]!
124 vld2.16 {d1, d2, d3, d4}, [r0:128]!
125 vld2.32 {q7, q8}, [r0:256]!
126
127 vld2.8 {d19, d20}, [r0:64], r6
128 vld2.16 {d16, d17}, [r0:128], r6
129129 vld2.32 {q10}, [r0], r6
130 vld2.8 {d4-d7}, [r0, :64], r6
131 vld2.16 {d1, d2, d3, d4}, [r0, :128], r6
132 vld2.32 {q7, q8}, [r0, :256], r6
130 vld2.8 {d4-d7}, [r0:64], r6
131 vld2.16 {d1, d2, d3, d4}, [r0:128], r6
132 vld2.32 {q7, q8}, [r0:256], r6
133133
134134 @ CHECK: vld2.8 {d16, d17}, [r0, :64] @ encoding: [0x1f,0x08,0x60,0xf4]
135135 @ CHECK: vld2.16 {d16, d17}, [r0, :128] @ encoding: [0x6f,0x08,0x60,0xf4]
156156 vld3.8 {d16, d17, d18}, [r1]
157157 vld3.16 {d6, d7, d8}, [r2]
158158 vld3.32 {d1, d2, d3}, [r3]
159 vld3.8 {d16, d18, d20}, [r0, :64]
159 vld3.8 {d16, d18, d20}, [r0:64]
160160 vld3.u16 {d27, d29, d31}, [r4]
161161 vld3.i32 {d6, d8, d10}, [r5]
162162
170170 vld3.p8 {d6, d7, d8}, [r8]!
171171 vld3.16 {d9, d10, d11}, [r7]!
172172 vld3.f32 {d1, d2, d3}, [r6]!
173 vld3.8 {d16, d18, d20}, [r0, :64]!
173 vld3.8 {d16, d18, d20}, [r0:64]!
174174 vld3.p16 {d20, d22, d24}, [r5]!
175175 vld3.32 {d5, d7, d9}, [r4]!
176176
195195 @ CHECK: vld3.32 {d5, d7, d9}, [r4]! @ encoding: [0x8d,0x55,0x24,0xf4]
196196
197197
198 vld4.8 {d16, d17, d18, d19}, [r1, :64]
199 vld4.16 {d16, d17, d18, d19}, [r2, :128]
200 vld4.32 {d16, d17, d18, d19}, [r3, :256]
201 vld4.8 {d17, d19, d21, d23}, [r5, :256]
198 vld4.8 {d16, d17, d18, d19}, [r1:64]
199 vld4.16 {d16, d17, d18, d19}, [r2:128]
200 vld4.32 {d16, d17, d18, d19}, [r3:256]
201 vld4.8 {d17, d19, d21, d23}, [r5:256]
202202 vld4.16 {d17, d19, d21, d23}, [r7]
203203 vld4.32 {d16, d18, d20, d22}, [r8]
204204
205 vld4.s8 {d16, d17, d18, d19}, [r1, :64]!
206 vld4.s16 {d16, d17, d18, d19}, [r2, :128]!
207 vld4.s32 {d16, d17, d18, d19}, [r3, :256]!
208 vld4.u8 {d17, d19, d21, d23}, [r5, :256]!
205 vld4.s8 {d16, d17, d18, d19}, [r1:64]!
206 vld4.s16 {d16, d17, d18, d19}, [r2:128]!
207 vld4.s32 {d16, d17, d18, d19}, [r3:256]!
208 vld4.u8 {d17, d19, d21, d23}, [r5:256]!
209209 vld4.u16 {d17, d19, d21, d23}, [r7]!
210210 vld4.u32 {d16, d18, d20, d22}, [r8]!
211211
212 vld4.p8 {d16, d17, d18, d19}, [r1, :64], r8
212 vld4.p8 {d16, d17, d18, d19}, [r1:64], r8
213213 vld4.p16 {d16, d17, d18, d19}, [r2], r7
214 vld4.f32 {d16, d17, d18, d19}, [r3, :64], r5
215 vld4.i8 {d16, d18, d20, d22}, [r4, :256], r2
214 vld4.f32 {d16, d17, d18, d19}, [r3:64], r5
215 vld4.i8 {d16, d18, d20, d22}, [r4:256], r2
216216 vld4.i16 {d16, d18, d20, d22}, [r6], r3
217217 vld4.i32 {d17, d19, d21, d23}, [r9], r4
218218
251251 @ CHECK: vld1.8 {d4[], d5[]}, [r1], r3 @ encoding: [0x23,0x4c,0xa1,0xf4]
252252
253253 vld1.8 {d16[3]}, [r0]
254 vld1.16 {d16[2]}, [r0, :16]
255 vld1.32 {d16[1]}, [r0, :32]
254 vld1.16 {d16[2]}, [r0:16]
255 vld1.32 {d16[1]}, [r0:32]
256256 vld1.p8 d12[6], [r2]!
257257 vld1.i8 d12[6], [r2], r2
258258 vld1.u16 d12[3], [r2]!
267267 @ CHECK: vld1.16 {d12[2]}, [r2], r2 @ encoding: [0x82,0xc4,0xa2,0xf4]
268268
269269
270 vld2.8 {d16[1], d17[1]}, [r0, :16]
271 vld2.16 {d16[1], d17[1]}, [r0, :32]
270 vld2.8 {d16[1], d17[1]}, [r0:16]
271 vld2.16 {d16[1], d17[1]}, [r0:32]
272272 vld2.32 {d16[1], d17[1]}, [r0]
273273 vld2.16 {d17[1], d19[1]}, [r0]
274 vld2.32 {d17[0], d19[0]}, [r0, :64]
275 vld2.32 {d17[0], d19[0]}, [r0, :64]!
274 vld2.32 {d17[0], d19[0]}, [r0:64]
275 vld2.32 {d17[0], d19[0]}, [r0:64]!
276276 vld2.8 {d2[4], d3[4]}, [r2], r3
277277 vld2.8 {d2[4], d3[4]}, [r2]!
278278 vld2.8 {d2[4], d3[4]}, [r2]
382382 vld4.16 {d17[1], d19[1], d21[1], d23[1]}, [r7]
383383 vld4.32 {d16[1], d18[1], d20[1], d22[1]}, [r8]
384384
385 vld4.s8 {d16[1], d17[1], d18[1], d19[1]}, [r1, :32]!
386 vld4.s16 {d16[1], d17[1], d18[1], d19[1]}, [r2, :64]!
387 vld4.s32 {d16[1], d17[1], d18[1], d19[1]}, [r3, :128]!
385 vld4.s8 {d16[1], d17[1], d18[1], d19[1]}, [r1:32]!
386 vld4.s16 {d16[1], d17[1], d18[1], d19[1]}, [r2:64]!
387 vld4.s32 {d16[1], d17[1], d18[1], d19[1]}, [r3:128]!
388388 vld4.u16 {d17[1], d19[1], d21[1], d23[1]}, [r7]!
389389 vld4.u32 {d16[1], d18[1], d20[1], d22[1]}, [r8]!
390390
391 vld4.p8 {d16[1], d17[1], d18[1], d19[1]}, [r1, :32], r8
391 vld4.p8 {d16[1], d17[1], d18[1], d19[1]}, [r1:32], r8
392392 vld4.p16 {d16[1], d17[1], d18[1], d19[1]}, [r2], r7
393 vld4.f32 {d16[1], d17[1], d18[1], d19[1]}, [r3, :64], r5
393 vld4.f32 {d16[1], d17[1], d18[1], d19[1]}, [r3:64], r5
394394 vld4.i16 {d16[1], d18[1], d20[1], d22[1]}, [r6], r3
395395 vld4.i32 {d17[1], d19[1], d21[1], d23[1]}, [r9], r4
396396
489489
490490
491491 @ Register lists can use the range syntax, just like VLDM
492 vld1.f64 {d2-d5}, [r2,:128]!
493 vld1.f64 {d2,d3,d4,d5}, [r2,:128]!
492 vld1.f64 {d2-d5}, [r2:128]!
493 vld1.f64 {d2,d3,d4,d5}, [r2:128]!
494494
495495 @ CHECK: vld1.64 {d2, d3, d4, d5}, [r2, :128]! @ encoding: [0xed,0x22,0x22,0xf4]
496496 @ CHECK: vld1.64 {d2, d3, d4, d5}, [r2, :128]! @ encoding: [0xed,0x22,0x22,0xf4]
497
498
499 @ verify that the old incorrect alignment specifier syntax (", :")
500 @ still gets accepted.
501 vld2.8 {d16, d17}, [r0, :64]
502 vld2.16 {d16, d17}, [r0, :128]
503
504 @ CHECK: vld2.8 {d16, d17}, [r0, :64] @ encoding: [0x1f,0x08,0x60,0xf4]
505 @ CHECK: vld2.16 {d16, d17}, [r0, :128] @ encoding: [0x6f,0x08,0x60,0xf4]
0 @ RUN: llvm-mc -mcpu=cortex-a8 -triple armv7-apple-darwin -show-encoding < %s | FileCheck %s
11
2 vst1.8 {d16}, [r0, :64]
2 vst1.8 {d16}, [r0:64]
33 vst1.16 {d16}, [r0]
44 vst1.32 {d16}, [r0]
55 vst1.64 {d16}, [r0]
6 vst1.8 {d16, d17}, [r0, :64]
7 vst1.16 {d16, d17}, [r0, :128]
6 vst1.8 {d16, d17}, [r0:64]
7 vst1.16 {d16, d17}, [r0:128]
88 vst1.32 {d16, d17}, [r0]
99 vst1.64 {d16, d17}, [r0]
10 vst1.8 {d16, d17, d18}, [r0, :64]
11 vst1.8 {d16, d17, d18}, [r0, :64]!
10 vst1.8 {d16, d17, d18}, [r0:64]
11 vst1.8 {d16, d17, d18}, [r0:64]!
1212 vst1.8 {d16, d17, d18}, [r0], r3
13 vst1.8 {d16, d17, d18, d19}, [r0, :64]
14 vst1.16 {d16, d17, d18, d19}, [r1, :64]!
13 vst1.8 {d16, d17, d18, d19}, [r0:64]
14 vst1.16 {d16, d17, d18, d19}, [r1:64]!
1515 vst1.64 {d16, d17, d18, d19}, [r3], r2
1616
1717 @ CHECK: vst1.8 {d16}, [r0, :64] @ encoding: [0x1f,0x07,0x40,0xf4]
3030 @ CHECK: vst1.64 {d16, d17, d18, d19}, [r3], r2 @ encoding: [0xc2,0x02,0x43,0xf4]
3131
3232
33 vst2.8 {d16, d17}, [r0, :64]
34 vst2.16 {d16, d17}, [r0, :128]
33 vst2.8 {d16, d17}, [r0:64]
34 vst2.16 {d16, d17}, [r0:128]
3535 vst2.32 {d16, d17}, [r0]
36 vst2.8 {d16, d17, d18, d19}, [r0, :64]
37 vst2.16 {d16, d17, d18, d19}, [r0, :128]
38 vst2.32 {d16, d17, d18, d19}, [r0, :256]
39 vst2.8 {d16, d17}, [r0, :64]!
40 vst2.16 {q15}, [r0, :128]!
36 vst2.8 {d16, d17, d18, d19}, [r0:64]
37 vst2.16 {d16, d17, d18, d19}, [r0:128]
38 vst2.32 {d16, d17, d18, d19}, [r0:256]
39 vst2.8 {d16, d17}, [r0:64]!
40 vst2.16 {q15}, [r0:128]!
4141 vst2.32 {d14, d15}, [r0]!
42 vst2.8 {d16, d17, d18, d19}, [r0, :64]!
43 vst2.16 {d18-d21}, [r0, :128]!
44 vst2.32 {q4, q5}, [r0, :256]!
42 vst2.8 {d16, d17, d18, d19}, [r0:64]!
43 vst2.16 {d18-d21}, [r0:128]!
44 vst2.32 {q4, q5}, [r0:256]!
4545
4646 @ CHECK: vst2.8 {d16, d17}, [r0, :64] @ encoding: [0x1f,0x08,0x40,0xf4]
4747 @ CHECK: vst2.16 {d16, d17}, [r0, :128] @ encoding: [0x6f,0x08,0x40,0xf4]
6060 vst3.8 {d16, d17, d18}, [r1]
6161 vst3.16 {d6, d7, d8}, [r2]
6262 vst3.32 {d1, d2, d3}, [r3]
63 vst3.8 {d16, d18, d20}, [r0, :64]
63 vst3.8 {d16, d18, d20}, [r0:64]
6464 vst3.u16 {d27, d29, d31}, [r4]
6565 vst3.i32 {d6, d8, d10}, [r5]
6666
7474 vst3.p8 {d6, d7, d8}, [r8]!
7575 vst3.16 {d9, d10, d11}, [r7]!
7676 vst3.f32 {d1, d2, d3}, [r6]!
77 vst3.8 {d16, d18, d20}, [r0, :64]!
77 vst3.8 {d16, d18, d20}, [r0:64]!
7878 vst3.p16 {d20, d22, d24}, [r5]!
7979 vst3.32 {d5, d7, d9}, [r4]!
8080
9898 @ CHECK: vst3.32 {d5, d7, d9}, [r4]! @ encoding: [0x8d,0x55,0x04,0xf4]
9999
100100
101 vst4.8 {d16, d17, d18, d19}, [r1, :64]
102 vst4.16 {d16, d17, d18, d19}, [r2, :128]
103 vst4.32 {d16, d17, d18, d19}, [r3, :256]
104 vst4.8 {d17, d19, d21, d23}, [r5, :256]
101 vst4.8 {d16, d17, d18, d19}, [r1:64]
102 vst4.16 {d16, d17, d18, d19}, [r2:128]
103 vst4.32 {d16, d17, d18, d19}, [r3:256]
104 vst4.8 {d17, d19, d21, d23}, [r5:256]
105105 vst4.16 {d17, d19, d21, d23}, [r7]
106106 vst4.32 {d16, d18, d20, d22}, [r8]
107107
108 vst4.s8 {d16, d17, d18, d19}, [r1, :64]!
109 vst4.s16 {d16, d17, d18, d19}, [r2, :128]!
110 vst4.s32 {d16, d17, d18, d19}, [r3, :256]!
111 vst4.u8 {d17, d19, d21, d23}, [r5, :256]!
108 vst4.s8 {d16, d17, d18, d19}, [r1:64]!
109 vst4.s16 {d16, d17, d18, d19}, [r2:128]!
110 vst4.s32 {d16, d17, d18, d19}, [r3:256]!
111 vst4.u8 {d17, d19, d21, d23}, [r5:256]!
112112 vst4.u16 {d17, d19, d21, d23}, [r7]!
113113 vst4.u32 {d16, d18, d20, d22}, [r8]!
114114
115 vst4.p8 {d16, d17, d18, d19}, [r1, :64], r8
115 vst4.p8 {d16, d17, d18, d19}, [r1:64], r8
116116 vst4.p16 {d16, d17, d18, d19}, [r2], r7
117 vst4.f32 {d16, d17, d18, d19}, [r3, :64], r5
118 vst4.i8 {d16, d18, d20, d22}, [r4, :256], r2
117 vst4.f32 {d16, d17, d18, d19}, [r3:64], r5
118 vst4.i8 {d16, d18, d20, d22}, [r4:256], r2
119119 vst4.i16 {d16, d18, d20, d22}, [r6], r3
120120 vst4.i32 {d17, d19, d21, d23}, [r9], r4
121121
139139 @ CHECK: vst4.32 {d17, d19, d21, d23}, [r9], r4 @ encoding: [0x84,0x11,0x49,0xf4]
140140
141141
142 vst2.8 {d16[1], d17[1]}, [r0, :16]
143 vst2.p16 {d16[1], d17[1]}, [r0, :32]
142 vst2.8 {d16[1], d17[1]}, [r0:16]
143 vst2.p16 {d16[1], d17[1]}, [r0:32]
144144 vst2.i32 {d16[1], d17[1]}, [r0]
145145 vst2.u16 {d17[1], d19[1]}, [r0]
146 vst2.f32 {d17[0], d19[0]}, [r0, :64]
146 vst2.f32 {d17[0], d19[0]}, [r0:64]
147147
148148 vst2.8 {d2[4], d3[4]}, [r2], r3
149149 vst2.u8 {d2[4], d3[4]}, [r2]!
150150 vst2.p8 {d2[4], d3[4]}, [r2]
151151
152152 vst2.16 {d17[1], d19[1]}, [r0]
153 vst2.32 {d17[0], d19[0]}, [r0, :64]
153 vst2.32 {d17[0], d19[0]}, [r0:64]
154154 vst2.i16 {d7[1], d9[1]}, [r1]!
155 vst2.32 {d6[0], d8[0]}, [r2, :64]!
155 vst2.32 {d6[0], d8[0]}, [r2:64]!
156156 vst2.16 {d2[1], d4[1]}, [r3], r5
157 vst2.u32 {d5[0], d7[0]}, [r4, :64], r7
157 vst2.u32 {d5[0], d7[0]}, [r4:64], r7
158158
159159 @ CHECK: vst2.8 {d16[1], d17[1]}, [r0, :16] @ encoding: [0x3f,0x01,0xc0,0xf4]
160160 @ CHECK: vst2.16 {d16[1], d17[1]}, [r0, :32] @ encoding: [0x5f,0x05,0xc0,0xf4]
215215 vst4.16 {d17[1], d19[1], d21[1], d23[1]}, [r7]
216216 vst4.32 {d16[1], d18[1], d20[1], d22[1]}, [r8]
217217
218 vst4.s8 {d16[1], d17[1], d18[1], d19[1]}, [r1, :32]!
219 vst4.s16 {d16[1], d17[1], d18[1], d19[1]}, [r2, :64]!
220 vst4.s32 {d16[1], d17[1], d18[1], d19[1]}, [r3, :128]!
218 vst4.s8 {d16[1], d17[1], d18[1], d19[1]}, [r1:32]!
219 vst4.s16 {d16[1], d17[1], d18[1], d19[1]}, [r2:64]!
220 vst4.s32 {d16[1], d17[1], d18[1], d19[1]}, [r3:128]!
221221 vst4.u16 {d17[1], d19[1], d21[1], d23[1]}, [r7]!
222222 vst4.u32 {d16[1], d18[1], d20[1], d22[1]}, [r8]!
223223
224 vst4.p8 {d16[1], d17[1], d18[1], d19[1]}, [r1, :32], r8
224 vst4.p8 {d16[1], d17[1], d18[1], d19[1]}, [r1:32], r8
225225 vst4.p16 {d16[1], d17[1], d18[1], d19[1]}, [r2], r7
226 vst4.f32 {d16[1], d17[1], d18[1], d19[1]}, [r3, :64], r5
226 vst4.f32 {d16[1], d17[1], d18[1], d19[1]}, [r3:64], r5
227227 vst4.i16 {d16[1], d18[1], d20[1], d22[1]}, [r6], r3
228228 vst4.i32 {d17[1], d19[1], d21[1], d23[1]}, [r9], r4
229229
268268 vst2.8 {d8, d10}, [r4]
269269 @ CHECK: vst2.8 {d8, d10}, [r4] @ encoding: [0x0f,0x89,0x04,0xf4]
270270
271 vst1.32 {d9[1]}, [r3, :32]
272 vst1.32 {d27[1]}, [r9, :32]!
273 vst1.32 {d27[1]}, [r3, :32], r5
271 vst1.32 {d9[1]}, [r3:32]
272 vst1.32 {d27[1]}, [r9:32]!
273 vst1.32 {d27[1]}, [r3:32], r5
274274 @ CHECK: vst1.32 {d9[1]}, [r3, :32] @ encoding: [0xbf,0x98,0x83,0xf4]
275275 @ CHECK: vst1.32 {d27[1]}, [r9, :32]! @ encoding: [0xbd,0xb8,0xc9,0xf4]
276276 @ CHECK: vst1.32 {d27[1]}, [r3, :32], r5 @ encoding: [0xb5,0xb8,0xc3,0xf4]
277277
278 @ verify that the old incorrect alignment specifier syntax (", :")
279 @ still gets accepted.
280 vst2.8 {d16, d17}, [r0, :64]
281 vst2.16 {d16, d17}, [r0, :128]
282
283 @ CHECK: vst2.8 {d16, d17}, [r0, :64] @ encoding: [0x1f,0x08,0x40,0xf4]
284 @ CHECK: vst2.16 {d16, d17}, [r0, :128] @ encoding: [0x6f,0x08,0x40,0xf4]
33 .code 16
44
55 @ CHECK: vld1.8 {d16}, [r0, :64] @ encoding: [0x1f,0x07,0x60,0xf9]
6 vld1.8 {d16}, [r0, :64]
6 vld1.8 {d16}, [r0:64]
77 @ CHECK: vld1.16 {d16}, [r0] @ encoding: [0x4f,0x07,0x60,0xf9]
88 vld1.16 {d16}, [r0]
99 @ CHECK: vld1.32 {d16}, [r0] @ encoding: [0x8f,0x07,0x60,0xf9]
1111 @ CHECK: vld1.64 {d16}, [r0] @ encoding: [0xcf,0x07,0x60,0xf9]
1212 vld1.64 {d16}, [r0]
1313 @ CHECK: vld1.8 {d16, d17}, [r0, :64] @ encoding: [0x1f,0x0a,0x60,0xf9]
14 vld1.8 {d16, d17}, [r0, :64]
14 vld1.8 {d16, d17}, [r0:64]
1515 @ CHECK: vld1.16 {d16, d17}, [r0, :128] @ encoding: [0x6f,0x0a,0x60,0xf9]
16 vld1.16 {d16, d17}, [r0, :128]
16 vld1.16 {d16, d17}, [r0:128]
1717 @ CHECK: vld1.32 {d16, d17}, [r0] @ encoding: [0x8f,0x0a,0x60,0xf9]
1818 vld1.32 {d16, d17}, [r0]
1919 @ CHECK: vld1.64 {d16, d17}, [r0] @ encoding: [0xcf,0x0a,0x60,0xf9]
2020 vld1.64 {d16, d17}, [r0]
2121
2222 @ CHECK: vld2.8 {d16, d17}, [r0, :64] @ encoding: [0x1f,0x08,0x60,0xf9]
23 vld2.8 {d16, d17}, [r0, :64]
23 vld2.8 {d16, d17}, [r0:64]
2424 @ CHECK: vld2.16 {d16, d17}, [r0, :128] @ encoding: [0x6f,0x08,0x60,0xf9]
25 vld2.16 {d16, d17}, [r0, :128]
25 vld2.16 {d16, d17}, [r0:128]
2626 @ CHECK: vld2.32 {d16, d17}, [r0] @ encoding: [0x8f,0x08,0x60,0xf9]
2727 vld2.32 {d16, d17}, [r0]
2828 @ CHECK: vld2.8 {d16, d17, d18, d19}, [r0, :64] @ encoding: [0x1f,0x03,0x60,0xf9]
29 vld2.8 {d16, d17, d18, d19}, [r0, :64]
29 vld2.8 {d16, d17, d18, d19}, [r0:64]
3030 @ CHECK: vld2.16 {d16, d17, d18, d19}, [r0, :128] @ encoding: [0x6f,0x03,0x60,0xf9]
31 vld2.16 {d16, d17, d18, d19}, [r0, :128]
31 vld2.16 {d16, d17, d18, d19}, [r0:128]
3232 @ CHECK: vld2.32 {d16, d17, d18, d19}, [r0, :256] @ encoding: [0xbf,0x03,0x60,0xf9]
33 vld2.32 {d16, d17, d18, d19}, [r0, :256]
33 vld2.32 {d16, d17, d18, d19}, [r0:256]
3434
3535 @ CHECK: vld3.8 {d16, d17, d18}, [r0, :64] @ encoding: [0x1f,0x04,0x60,0xf9]
36 vld3.8 {d16, d17, d18}, [r0, :64]
36 vld3.8 {d16, d17, d18}, [r0:64]
3737 @ CHECK: vld3.16 {d16, d17, d18}, [r0] @ encoding: [0x4f,0x04,0x60,0xf9]
3838 vld3.16 {d16, d17, d18}, [r0]
3939 @ CHECK: vld3.32 {d16, d17, d18}, [r0] @ encoding: [0x8f,0x04,0x60,0xf9]
4040 vld3.32 {d16, d17, d18}, [r0]
4141 @ CHECK: vld3.8 {d16, d18, d20}, [r0, :64]! @ encoding: [0x1d,0x05,0x60,0xf9]
42 vld3.8 {d16, d18, d20}, [r0, :64]!
42 vld3.8 {d16, d18, d20}, [r0:64]!
4343 @ CHECK: vld3.8 {d17, d19, d21}, [r0, :64]! @ encoding: [0x1d,0x15,0x60,0xf9]
44 vld3.8 {d17, d19, d21}, [r0, :64]!
44 vld3.8 {d17, d19, d21}, [r0:64]!
4545 @ CHECK: vld3.16 {d16, d18, d20}, [r0]! @ encoding: [0x4d,0x05,0x60,0xf9]
4646 vld3.16 {d16, d18, d20}, [r0]!
4747 @ CHECK: vld3.16 {d17, d19, d21}, [r0]! @ encoding: [0x4d,0x15,0x60,0xf9]
5252 vld3.32 {d17, d19, d21}, [r0]!
5353
5454 @ CHECK: vld4.8 {d16, d17, d18, d19}, [r0, :64] @ encoding: [0x1f,0x00,0x60,0xf9]
55 vld4.8 {d16, d17, d18, d19}, [r0, :64]
55 vld4.8 {d16, d17, d18, d19}, [r0:64]
5656 @ CHECK: vld4.16 {d16, d17, d18, d19}, [r0, :128] @ encoding: [0x6f,0x00,0x60,0xf9]
57 vld4.16 {d16, d17, d18, d19}, [r0, :128]
57 vld4.16 {d16, d17, d18, d19}, [r0:128]
5858 @ CHECK: vld4.32 {d16, d17, d18, d19}, [r0, :256] @ encoding: [0xbf,0x00,0x60,0xf9]
59 vld4.32 {d16, d17, d18, d19}, [r0, :256]
59 vld4.32 {d16, d17, d18, d19}, [r0:256]
6060 @ CHECK: vld4.8 {d16, d18, d20, d22}, [r0, :256]! @ encoding: [0x3d,0x01,0x60,0xf9]
61 vld4.8 {d16, d18, d20, d22}, [r0, :256]!
61 vld4.8 {d16, d18, d20, d22}, [r0:256]!
6262 @ CHECK: vld4.8 {d17, d19, d21, d23}, [r0, :256]! @ encoding: [0x3d,0x11,0x60,0xf9]
63 vld4.8 {d17, d19, d21, d23}, [r0, :256]!
63 vld4.8 {d17, d19, d21, d23}, [r0:256]!
6464 @ CHECK: vld4.16 {d16, d18, d20, d22}, [r0]! @ encoding: [0x4d,0x01,0x60,0xf9]
6565 vld4.16 {d16, d18, d20, d22}, [r0]!
6666 @ CHECK: vld4.16 {d17, d19, d21, d23}, [r0]! @ encoding: [0x4d,0x11,0x60,0xf9]
7373 @ CHECK: vld1.8 {d16[3]}, [r0] @ encoding: [0x6f,0x00,0xe0,0xf9]
7474 vld1.8 {d16[3]}, [r0]
7575 @ CHECK: vld1.16 {d16[2]}, [r0, :16] @ encoding: [0x9f,0x04,0xe0,0xf9]
76 vld1.16 {d16[2]}, [r0, :16]
76 vld1.16 {d16[2]}, [r0:16]
7777 @ CHECK: vld1.32 {d16[1]}, [r0, :32] @ encoding: [0xbf,0x08,0xe0,0xf9]
78 vld1.32 {d16[1]}, [r0, :32]
78 vld1.32 {d16[1]}, [r0:32]
7979
8080 @ CHECK: vld2.8 {d16[1], d17[1]}, [r0, :16] @ encoding: [0x3f,0x01,0xe0,0xf9]
81 vld2.8 {d16[1], d17[1]}, [r0, :16]
81 vld2.8 {d16[1], d17[1]}, [r0:16]
8282 @ CHECK: vld2.16 {d16[1], d17[1]}, [r0, :32] @ encoding: [0x5f,0x05,0xe0,0xf9]
83 vld2.16 {d16[1], d17[1]}, [r0, :32]
83 vld2.16 {d16[1], d17[1]}, [r0:32]
8484 @ CHECK: vld2.32 {d16[1], d17[1]}, [r0] @ encoding: [0x8f,0x09,0xe0,0xf9]
8585 vld2.32 {d16[1], d17[1]}, [r0]
8686 @ CHECK: vld2.16 {d17[1], d19[1]}, [r0] @ encoding: [0x6f,0x15,0xe0,0xf9]
8787 vld2.16 {d17[1], d19[1]}, [r0]
8888 @ CHECK: vld2.32 {d17[0], d19[0]}, [r0, :64] @ encoding: [0x5f,0x19,0xe0,0xf9]
89 vld2.32 {d17[0], d19[0]}, [r0, :64]
89 vld2.32 {d17[0], d19[0]}, [r0:64]
9090
9191 @ CHECK: vld3.8 {d16[1], d17[1], d18[1]}, [r0] @ encoding: [0x2f,0x02,0xe0,0xf9]
9292 vld3.8 {d16[1], d17[1], d18[1]}, [r0]
100100 vld3.32 {d17[1], d19[1], d21[1]}, [r0]
101101
102102 @ CHECK: vld4.8 {d16[1], d17[1], d18[1], d19[1]}, [r0, :32] @ encoding: [0x3f,0x03,0xe0,0xf9]
103 vld4.8 {d16[1], d17[1], d18[1], d19[1]}, [r0, :32]
103 vld4.8 {d16[1], d17[1], d18[1], d19[1]}, [r0:32]
104104 @ CHECK: vld4.16 {d16[1], d17[1], d18[1], d19[1]}, [r0] @ encoding: [0x4f,0x07,0xe0,0xf9]
105105 vld4.16 {d16[1], d17[1], d18[1], d19[1]}, [r0]
106106 @ CHECK: vld4.32 {d16[1], d17[1], d18[1], d19[1]}, [r0, :128] @ encoding: [0xaf,0x0b,0xe0,0xf9]
107 vld4.32 {d16[1], d17[1], d18[1], d19[1]}, [r0, :128]
107 vld4.32 {d16[1], d17[1], d18[1], d19[1]}, [r0:128]
108108 @ CHECK: vld4.16 {d16[1], d18[1], d20[1], d22[1]}, [r0, :64] @ encoding: [0x7f,0x07,0xe0,0xf9]
109 vld4.16 {d16[1], d18[1], d20[1], d22[1]}, [r0, :64]
109 vld4.16 {d16[1], d18[1], d20[1], d22[1]}, [r0:64]
110110 @ CHECK: vld4.32 {d17[0], d19[0], d21[0], d23[0]}, [r0] @ encoding: [0x4f,0x1b,0xe0,0xf9]
111111 vld4.32 {d17[0], d19[0], d21[0], d23[0]}, [r0]
33 .code 16
44
55 @ CHECK: vst1.8 {d16}, [r0, :64] @ encoding: [0x1f,0x07,0x40,0xf9]
6 vst1.8 {d16}, [r0, :64]
6 vst1.8 {d16}, [r0:64]
77 @ CHECK: vst1.16 {d16}, [r0] @ encoding: [0x4f,0x07,0x40,0xf9]
88 vst1.16 {d16}, [r0]
99 @ CHECK: vst1.32 {d16}, [r0] @ encoding: [0x8f,0x07,0x40,0xf9]
1111 @ CHECK: vst1.64 {d16}, [r0] @ encoding: [0xcf,0x07,0x40,0xf9]
1212 vst1.64 {d16}, [r0]
1313 @ CHECK: vst1.8 {d16, d17}, [r0, :64] @ encoding: [0x1f,0x0a,0x40,0xf9]
14 vst1.8 {d16, d17}, [r0, :64]
14 vst1.8 {d16, d17}, [r0:64]
1515 @ CHECK: vst1.16 {d16, d17}, [r0, :128] @ encoding: [0x6f,0x0a,0x40,0xf9]
16 vst1.16 {d16, d17}, [r0, :128]
16 vst1.16 {d16, d17}, [r0:128]
1717 @ CHECK: vst1.32 {d16, d17}, [r0] @ encoding: [0x8f,0x0a,0x40,0xf9]
1818 vst1.32 {d16, d17}, [r0]
1919 @ CHECK: vst1.64 {d16, d17}, [r0] @ encoding: [0xcf,0x0a,0x40,0xf9]
2020 vst1.64 {d16, d17}, [r0]
2121
2222 @ CHECK: vst2.8 {d16, d17}, [r0, :64] @ encoding: [0x1f,0x08,0x40,0xf9]
23 vst2.8 {d16, d17}, [r0, :64]
23 vst2.8 {d16, d17}, [r0:64]
2424 @ CHECK: vst2.16 {d16, d17}, [r0, :128] @ encoding: [0x6f,0x08,0x40,0xf9]
25 vst2.16 {d16, d17}, [r0, :128]
25 vst2.16 {d16, d17}, [r0:128]
2626 @ CHECK: vst2.32 {d16, d17}, [r0] @ encoding: [0x8f,0x08,0x40,0xf9]
2727 vst2.32 {d16, d17}, [r0]
2828 @ CHECK: vst2.8 {d16, d17, d18, d19}, [r0, :64] @ encoding: [0x1f,0x03,0x40,0xf9]
29 vst2.8 {d16, d17, d18, d19}, [r0, :64]
29 vst2.8 {d16, d17, d18, d19}, [r0:64]
3030 @ CHECK: vst2.16 {d16, d17, d18, d19}, [r0, :128] @ encoding: [0x6f,0x03,0x40,0xf9]
31 vst2.16 {d16, d17, d18, d19}, [r0, :128]
31 vst2.16 {d16, d17, d18, d19}, [r0:128]
3232 @ CHECK: vst2.32 {d16, d17, d18, d19}, [r0, :256] @ encoding: [0xbf,0x03,0x40,0xf9]
33 vst2.32 {d16, d17, d18, d19}, [r0, :256]
33 vst2.32 {d16, d17, d18, d19}, [r0:256]
3434
3535 @ CHECK: vst3.8 {d16, d17, d18}, [r0, :64] @ encoding: [0x1f,0x04,0x40,0xf9]
36 vst3.8 {d16, d17, d18}, [r0, :64]
36 vst3.8 {d16, d17, d18}, [r0:64]
3737 @ CHECK: vst3.16 {d16, d17, d18}, [r0] @ encoding: [0x4f,0x04,0x40,0xf9]
3838 vst3.16 {d16, d17, d18}, [r0]
3939 @ CHECK: vst3.32 {d16, d17, d18}, [r0] @ encoding: [0x8f,0x04,0x40,0xf9]
4040 vst3.32 {d16, d17, d18}, [r0]
4141 @ CHECK: vst3.8 {d16, d18, d20}, [r0, :64]! @ encoding: [0x1d,0x05,0x40,0xf9]
42 vst3.8 {d16, d18, d20}, [r0, :64]!
42 vst3.8 {d16, d18, d20}, [r0:64]!
4343 @ CHECK: vst3.8 {d17, d19, d21}, [r0, :64]! @ encoding: [0x1d,0x15,0x40,0xf9]
44 vst3.8 {d17, d19, d21}, [r0, :64]!
44 vst3.8 {d17, d19, d21}, [r0:64]!
4545 @ CHECK: vst3.16 {d16, d18, d20}, [r0]! @ encoding: [0x4d,0x05,0x40,0xf9]
4646 vst3.16 {d16, d18, d20}, [r0]!
4747 @ CHECK: vst3.16 {d17, d19, d21}, [r0]! @ encoding: [0x4d,0x15,0x40,0xf9]
5252 vst3.32 {d17, d19, d21}, [r0]!
5353
5454 @ CHECK: vst4.8 {d16, d17, d18, d19}, [r0, :64] @ encoding: [0x1f,0x00,0x40,0xf9]
55 vst4.8 {d16, d17, d18, d19}, [r0, :64]
55 vst4.8 {d16, d17, d18, d19}, [r0:64]
5656 @ CHECK: vst4.16 {d16, d17, d18, d19}, [r0, :128] @ encoding: [0x6f,0x00,0x40,0xf9]
57 vst4.16 {d16, d17, d18, d19}, [r0, :128]
57 vst4.16 {d16, d17, d18, d19}, [r0:128]
5858 @ CHECK: vst4.8 {d16, d18, d20, d22}, [r0, :256]! @ encoding: [0x3d,0x01,0x40,0xf9]
59 vst4.8 {d16, d18, d20, d22}, [r0, :256]!
59 vst4.8 {d16, d18, d20, d22}, [r0:256]!
6060 @ CHECK: vst4.8 {d17, d19, d21, d23}, [r0, :256]! @ encoding: [0x3d,0x11,0x40,0xf9]
61 vst4.8 {d17, d19, d21, d23}, [r0, :256]!
61 vst4.8 {d17, d19, d21, d23}, [r0:256]!
6262 @ CHECK: vst4.16 {d16, d18, d20, d22}, [r0]! @ encoding: [0x4d,0x01,0x40,0xf9]
6363 vst4.16 {d16, d18, d20, d22}, [r0]!
6464 @ CHECK: vst4.16 {d17, d19, d21, d23}, [r0]! @ encoding: [0x4d,0x11,0x40,0xf9]
6969 vst4.32 {d17, d19, d21, d23}, [r0]!
7070
7171 @ CHECK: vst2.8 {d16[1], d17[1]}, [r0, :16] @ encoding: [0x3f,0x01,0xc0,0xf9]
72 vst2.8 {d16[1], d17[1]}, [r0, :16]
72 vst2.8 {d16[1], d17[1]}, [r0:16]
7373 @ CHECK: vst2.16 {d16[1], d17[1]}, [r0, :32] @ encoding: [0x5f,0x05,0xc0,0xf9]
74 vst2.16 {d16[1], d17[1]}, [r0, :32]
74 vst2.16 {d16[1], d17[1]}, [r0:32]
7575 @ CHECK: vst2.32 {d16[1], d17[1]}, [r0] @ encoding: [0x8f,0x09,0xc0,0xf9]
7676 vst2.32 {d16[1], d17[1]}, [r0]
7777 @ CHECK: vst2.16 {d17[1], d19[1]}, [r0] @ encoding: [0x6f,0x15,0xc0,0xf9]
7878 vst2.16 {d17[1], d19[1]}, [r0]
7979 @ CHECK: vst2.32 {d17[0], d19[0]}, [r0, :64] @ encoding: [0x5f,0x19,0xc0,0xf9]
80 vst2.32 {d17[0], d19[0]}, [r0, :64]
80 vst2.32 {d17[0], d19[0]}, [r0:64]
8181
8282 @ CHECK: vst3.8 {d16[1], d17[1], d18[1]}, [r0] @ encoding: [0x2f,0x02,0xc0,0xf9]
8383 vst3.8 {d16[1], d17[1], d18[1]}, [r0]
9191 vst3.32 {d16[0], d18[0], d20[0]}, [r0]
9292
9393 @ CHECK: vst4.8 {d16[1], d17[1], d18[1], d19[1]}, [r0, :32] @ encoding: [0x3f,0x03,0xc0,0xf9]
94 vst4.8 {d16[1], d17[1], d18[1], d19[1]}, [r0, :32]
94 vst4.8 {d16[1], d17[1], d18[1], d19[1]}, [r0:32]
9595 @ CHECK: vst4.16 {d16[1], d17[1], d18[1], d19[1]}, [r0] @ encoding: [0x4f,0x07,0xc0,0xf9]
9696 vst4.16 {d16[1], d17[1], d18[1], d19[1]}, [r0]
9797 @ CHECK: vst4.32 {d16[1], d17[1], d18[1], d19[1]}, [r0, :128] @ encoding: [0xaf,0x0b,0xc0,0xf9]
98 vst4.32 {d16[1], d17[1], d18[1], d19[1]}, [r0, :128]
98 vst4.32 {d16[1], d17[1], d18[1], d19[1]}, [r0:128]
9999 @ CHECK: vst4.16 {d17[3], d19[3], d21[3], d23[3]}, [r0, :64] @ encoding: [0xff,0x17,0xc0,0xf9]
100 vst4.16 {d17[3], d19[3], d21[3], d23[3]}, [r0, :64]
100 vst4.16 {d17[3], d19[3], d21[3], d23[3]}, [r0:64]
101101 @ CHECK: vst4.32 {d17[0], d19[0], d21[0], d23[0]}, [r0] @ encoding: [0x4f,0x1b,0xc0,0xf9]
102102 vst4.32 {d17[0], d19[0], d21[0], d23[0]}, [r0]
103103
66 # -------------------------------------------------------------------------------------------------
77 #
88 # A8.6.391 VST1 (multiple single elements)
9 # This encoding looks like: vst1.8 {d0,d1,d2}, [r0, :128]
9 # This encoding looks like: vst1.8 {d0,d1,d2}, [r0:128]
1010 # But bits 5-4 for the alignment of 128 encoded as align = 0b10, is available only if
1111 # contains two or four registers. rdar://11220250
1212 0x00 0xf9 0x2f 0x06