llvm.org GIT mirror llvm / 4f407a2
Recommit r322073: [AArch64][SVE] Asm: Add predicated ADD/SUB instructions Fixed issue that was found on sanitizer-x86_64-linux-fast. I changed the result type of 'Parser.getTok().getString().lower()' in AArch64AsmParser::tryParseSVEPredicateVector() from 'StringRef' to 'auto', since StringRef::lower() returns a std::string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@322092 91177308-0d34-0410-b5e6-96231b3b80d8 Sander de Smalen 1 year, 10 months ago
8 changed file(s) with 300 addition(s) and 4 deletion(s). Raw diff Collapse all Expand all
1414 defm ADD_ZZZ : sve_int_bin_cons_arit_0<0b000, "add">;
1515 defm SUB_ZZZ : sve_int_bin_cons_arit_0<0b001, "sub">;
1616
17 defm ADD_ZPmZ : sve_int_bin_pred_arit_0<0b000, "add">;
18 defm SUB_ZPmZ : sve_int_bin_pred_arit_0<0b001, "sub">;
19
1720 defm ZIP1_ZZZ : sve_int_perm_bin_perm_zz<0b000, "zip1">;
1821 defm ZIP2_ZZZ : sve_int_perm_bin_perm_zz<0b001, "zip2">;
1922
28252825 Parser.Lex(); // Eat the slash.
28262826
28272827 // Zeroing or merging?
2828 StringRef Pred = Parser.getTok().getString().lower();
2828 auto Pred = Parser.getTok().getString().lower();
28292829 if (Pred != "z" && Pred != "m") {
28302830 Error(getLoc(), "expecting 'm' or 'z' predication");
28312831 return MatchOperand_ParseFail;
9090 static DecodeStatus DecodePPRRegisterClass(MCInst &Inst, unsigned RegNo,
9191 uint64_t Address,
9292 const void *Decode);
93 LLVM_ATTRIBUTE_UNUSED static DecodeStatus
94 DecodePPR_3bRegisterClass(llvm::MCInst &Inst, unsigned RegNo, uint64_t Address,
95 const void *Decode);
93 static DecodeStatus DecodePPR_3bRegisterClass(MCInst &Inst, unsigned RegNo,
94 uint64_t Address,
95 const void *Decode);
9696
9797 static DecodeStatus DecodeFixedPointScaleImm32(MCInst &Inst, unsigned Imm,
9898 uint64_t Address,
7070 }
7171
7272 //===----------------------------------------------------------------------===//
73 // SVE Integer Arithmetic - Binary Predicated Group
74 //===----------------------------------------------------------------------===//
75
76 class sve_int_bin_pred_arit_log sz8_64, bits<2> fmt, bits<3> opc,
77 string asm, ZPRRegOp zprty>
78 : I<(outs zprty:$Zdn), (ins PPR3bAny:$Pg, zprty:$_Zdn, zprty:$Zm),
79 asm, "\t$Zdn, $Pg/m, $_Zdn, $Zm", "", []>, Sched<[]> {
80 bits<3> Pg;
81 bits<5> Zdn;
82 bits<5> Zm;
83 let Inst{31-24} = 0b00000100;
84 let Inst{23-22} = sz8_64;
85 let Inst{21} = 0b0;
86 let Inst{20-19} = fmt;
87 let Inst{18-16} = opc;
88 let Inst{15-13} = 0b000;
89 let Inst{12-10} = Pg;
90 let Inst{9-5} = Zm;
91 let Inst{4-0} = Zdn;
92
93 let Constraints = "$Zdn = $_Zdn";
94 }
95
96 multiclass sve_int_bin_pred_arit_0 opc, string asm> {
97 def _B : sve_int_bin_pred_arit_log<0b00, 0b00, opc, asm, ZPR8>;
98 def _H : sve_int_bin_pred_arit_log<0b01, 0b00, opc, asm, ZPR16>;
99 def _S : sve_int_bin_pred_arit_log<0b10, 0b00, opc, asm, ZPR32>;
100 def _D : sve_int_bin_pred_arit_log<0b11, 0b00, opc, asm, ZPR64>;
101 }
102
103 //===----------------------------------------------------------------------===//
73104 // SVE Permute - Predicates Group
74105 //===----------------------------------------------------------------------===//
75106
1616 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand
1717 // CHECK-NEXT: add z27.h, z11.h, z27.b
1818 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
19
20 // Invalid predicate suffix '/a'
21 add z29.d, p7/a, z29.d, z8.d
22 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expecting 'm' or 'z' predication
23 // CHECK-NEXT: add z29.d, p7/a, z29.d, z8.d
24 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
25
26 // Missing predicate suffix
27 add z29.d, p7, z29.d, z8.d
28 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand
29 // CHECK-NEXT: add z29.d, p7, z29.d, z8.d
30 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
31
32 // --------------------------------------------------------------------------//
33 // error: restricted predicate has range [0, 7].
34
35 add z22.b, p8/m, z22.b, z11.b
36 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: restricted predicate has range [0, 7].
37 // CHECK-NEXT: add z22.b, p8/m, z22.b, z11.b
38 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
39
40 add z22.h, p8/m, z22.h, z6.h
41 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: restricted predicate has range [0, 7].
42 // CHECK-NEXT: add z22.h, p8/m, z22.h, z6.h
43 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
44
45 add z30.s, p8/m, z30.s, z13.s
46 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: restricted predicate has range [0, 7].
47 // CHECK-NEXT: add z30.s, p8/m, z30.s, z13.s
48 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
49
50 add z29.d, p8/m, z29.d, z8.d
51 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: restricted predicate has range [0, 7].
52 // CHECK-NEXT: add z29.d, p8/m, z29.d, z8.d
53 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
1818 // CHECK-ERROR: instruction requires: sve
1919 // CHECK-UNKNOWN: b7 01 e8 04
2020
21 add z23.b, p3/m, z23.b, z13.b
22 // CHECK-INST: add z23.b, p3/m, z23.b, z13.b
23 // CHECK-ENCODING: [0xb7,0x0d,0x00,0x04]
24 // CHECK-ERROR: instruction requires: sve
25 // CHECK-UNKNOWN: b7 0d 00 04
26
2127 add z0.s, z0.s, z0.s
2228 // CHECK-INST: add z0.s, z0.s, z0.s
2329 // CHECK-ENCODING: [0x00,0x00,0xa0,0x04]
4248 // CHECK-ERROR: instruction requires: sve
4349 // CHECK-UNKNOWN: ff 03 3f 04
4450
51 add z0.h, p0/m, z0.h, z0.h
52 // CHECK-INST: add z0.h, p0/m, z0.h, z0.h
53 // CHECK-ENCODING: [0x00,0x00,0x40,0x04]
54 // CHECK-ERROR: instruction requires: sve
55 // CHECK-UNKNOWN: 00 00 40 04
56
4557 add z0.h, z0.h, z0.h
4658 // CHECK-INST: add z0.h, z0.h, z0.h
4759 // CHECK-ENCODING: [0x00,0x00,0x60,0x04]
4860 // CHECK-ERROR: instruction requires: sve
4961 // CHECK-UNKNOWN: 00 00 60 04
5062
63 add z0.b, p0/m, z0.b, z0.b
64 // CHECK-INST: add z0.b, p0/m, z0.b, z0.b
65 // CHECK-ENCODING: [0x00,0x00,0x00,0x04]
66 // CHECK-ERROR: instruction requires: sve
67 // CHECK-UNKNOWN: 00 00 00 04
68
69 add z0.s, p0/m, z0.s, z0.s
70 // CHECK-INST: add z0.s, p0/m, z0.s, z0.s
71 // CHECK-ENCODING: [0x00,0x00,0x80,0x04]
72 // CHECK-ERROR: instruction requires: sve
73 // CHECK-UNKNOWN: 00 00 80 04
74
5175 add z23.b, z13.b, z8.b
5276 // CHECK-INST: add z23.b, z13.b, z8.b
5377 // CHECK-ENCODING: [0xb7,0x01,0x28,0x04]
6084 // CHECK-ERROR: instruction requires: sve
6185 // CHECK-UNKNOWN: 00 00 e0 04
6286
87 add z0.d, p0/m, z0.d, z0.d
88 // CHECK-INST: add z0.d, p0/m, z0.d, z0.d
89 // CHECK-ENCODING: [0x00,0x00,0xc0,0x04]
90 // CHECK-ERROR: instruction requires: sve
91 // CHECK-UNKNOWN: 00 00 c0 04
92
6393 add z31.h, z31.h, z31.h
6494 // CHECK-INST: add z31.h, z31.h, z31.h
6595 // CHECK-ENCODING: [0xff,0x03,0x7f,0x04]
78108 // CHECK-ERROR: instruction requires: sve
79109 // CHECK-UNKNOWN: 55 01 f5 04
80110
111 add z23.h, p3/m, z23.h, z13.h
112 // CHECK-INST: add z23.h, p3/m, z23.h, z13.h
113 // CHECK-ENCODING: [0xb7,0x0d,0x40,0x04]
114 // CHECK-ERROR: instruction requires: sve
115 // CHECK-UNKNOWN: b7 0d 40 04
116
117 add z23.s, p3/m, z23.s, z13.s
118 // CHECK-INST: add z23.s, p3/m, z23.s, z13.s
119 // CHECK-ENCODING: [0xb7,0x0d,0x80,0x04]
120 // CHECK-ERROR: instruction requires: sve
121 // CHECK-UNKNOWN: b7 0d 80 04
122
123 add z31.s, p7/m, z31.s, z31.s
124 // CHECK-INST: add z31.s, p7/m, z31.s, z31.s
125 // CHECK-ENCODING: [0xff,0x1f,0x80,0x04]
126 // CHECK-ERROR: instruction requires: sve
127 // CHECK-UNKNOWN: ff 1f 80 04
128
81129 add z21.h, z10.h, z21.h
82130 // CHECK-INST: add z21.h, z10.h, z21.h
83131 // CHECK-ENCODING: [0x55,0x01,0x75,0x04]
84132 // CHECK-ERROR: instruction requires: sve
85133 // CHECK-UNKNOWN: 55 01 75 04
86134
135 add z23.d, p3/m, z23.d, z13.d
136 // CHECK-INST: add z23.d, p3/m, z23.d, z13.d
137 // CHECK-ENCODING: [0xb7,0x0d,0xc0,0x04]
138 // CHECK-ERROR: instruction requires: sve
139 // CHECK-UNKNOWN: b7 0d c0 04
140
141 add z21.d, p5/m, z21.d, z10.d
142 // CHECK-INST: add z21.d, p5/m, z21.d, z10.d
143 // CHECK-ENCODING: [0x55,0x15,0xc0,0x04]
144 // CHECK-ERROR: instruction requires: sve
145 // CHECK-UNKNOWN: 55 15 c0 04
146
147 add z21.b, p5/m, z21.b, z10.b
148 // CHECK-INST: add z21.b, p5/m, z21.b, z10.b
149 // CHECK-ENCODING: [0x55,0x15,0x00,0x04]
150 // CHECK-ERROR: instruction requires: sve
151 // CHECK-UNKNOWN: 55 15 00 04
152
87153 add z21.s, z10.s, z21.s
88154 // CHECK-INST: add z21.s, z10.s, z21.s
89155 // CHECK-ENCODING: [0x55,0x01,0xb5,0x04]
90156 // CHECK-ERROR: instruction requires: sve
91157 // CHECK-UNKNOWN: 55 01 b5 04
92158
159 add z21.h, p5/m, z21.h, z10.h
160 // CHECK-INST: add z21.h, p5/m, z21.h, z10.h
161 // CHECK-ENCODING: [0x55,0x15,0x40,0x04]
162 // CHECK-ERROR: instruction requires: sve
163 // CHECK-UNKNOWN: 55 15 40 04
164
165 add z31.h, p7/m, z31.h, z31.h
166 // CHECK-INST: add z31.h, p7/m, z31.h, z31.h
167 // CHECK-ENCODING: [0xff,0x1f,0x40,0x04]
168 // CHECK-ERROR: instruction requires: sve
169 // CHECK-UNKNOWN: ff 1f 40 04
170
93171 add z23.h, z13.h, z8.h
94172 // CHECK-INST: add z23.h, z13.h, z8.h
95173 // CHECK-ENCODING: [0xb7,0x01,0x68,0x04]
96174 // CHECK-ERROR: instruction requires: sve
97175 // CHECK-UNKNOWN: b7 01 68 04
98176
177 add z31.d, p7/m, z31.d, z31.d
178 // CHECK-INST: add z31.d, p7/m, z31.d, z31.d
179 // CHECK-ENCODING: [0xff,0x1f,0xc0,0x04]
180 // CHECK-ERROR: instruction requires: sve
181 // CHECK-UNKNOWN: ff 1f c0 04
182
183 add z21.s, p5/m, z21.s, z10.s
184 // CHECK-INST: add z21.s, p5/m, z21.s, z10.s
185 // CHECK-ENCODING: [0x55,0x15,0x80,0x04]
186 // CHECK-ERROR: instruction requires: sve
187 // CHECK-UNKNOWN: 55 15 80 04
188
189 add z31.b, p7/m, z31.b, z31.b
190 // CHECK-INST: add z31.b, p7/m, z31.b, z31.b
191 // CHECK-ENCODING: [0xff,0x1f,0x00,0x04]
192 // CHECK-ERROR: instruction requires: sve
193 // CHECK-UNKNOWN: ff 1f 00 04
194
99195 add z23.s, z13.s, z8.s
100196 // CHECK-INST: add z23.s, z13.s, z8.s
101197 // CHECK-ENCODING: [0xb7,0x01,0xa8,0x04]
1616 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand
1717 // CHECK-NEXT: sub z0.h, z8.h, z8.b
1818 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
19
20 // Invalid predicate suffix '/a'
21 sub z29.d, p7/a, z29.d, z8.d
22 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expecting 'm' or 'z' predication
23 // CHECK-NEXT: sub z29.d, p7/a, z29.d, z8.d
24 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
25
26 // Missing predicate suffix
27 sub z29.d, p7, z29.d, z8.d
28 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand
29 // CHECK-NEXT: sub z29.d, p7, z29.d, z8.d
30 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
31
32 // --------------------------------------------------------------------------//
33 // error: restricted predicate has range [0, 7].
34
35 sub z26.b, p8/m, z26.b, z27.b
36 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: restricted predicate has range [0, 7].
37 // CHECK-NEXT: sub z26.b, p8/m, z26.b, z27.b
38 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
39
40 sub z14.h, p8/m, z14.h, z18.h
41 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: restricted predicate has range [0, 7].
42 // CHECK-NEXT: sub z14.h, p8/m, z14.h, z18.h
43 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
44
45 sub z30.s, p8/m, z30.s, z23.s
46 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: restricted predicate has range [0, 7].
47 // CHECK-NEXT: sub z30.s, p8/m, z30.s, z23.s
48 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
49
50 sub z29.d, p8/m, z29.d, z3.d
51 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: restricted predicate has range [0, 7].
52 // CHECK-NEXT: sub z29.d, p8/m, z29.d, z3.d
53 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
1818 // CHECK-ERROR: instruction requires: sve
1919 // CHECK-UNKNOWN: 55 05 35 04
2020
21 sub z31.d, p7/m, z31.d, z31.d
22 // CHECK-INST: sub z31.d, p7/m, z31.d, z31.d
23 // CHECK-ENCODING: [0xff,0x1f,0xc1,0x04]
24 // CHECK-ERROR: instruction requires: sve
25 // CHECK-UNKNOWN: ff 1f c1 04
26
27 sub z23.h, p3/m, z23.h, z13.h
28 // CHECK-INST: sub z23.h, p3/m, z23.h, z13.h
29 // CHECK-ENCODING: [0xb7,0x0d,0x41,0x04]
30 // CHECK-ERROR: instruction requires: sve
31 // CHECK-UNKNOWN: b7 0d 41 04
32
2133 sub z31.h, z31.h, z31.h
2234 // CHECK-INST: sub z31.h, z31.h, z31.h
2335 // CHECK-ENCODING: [0xff,0x07,0x7f,0x04]
4254 // CHECK-ERROR: instruction requires: sve
4355 // CHECK-UNKNOWN: 00 04 a0 04
4456
57 sub z23.s, p3/m, z23.s, z13.s
58 // CHECK-INST: sub z23.s, p3/m, z23.s, z13.s
59 // CHECK-ENCODING: [0xb7,0x0d,0x81,0x04]
60 // CHECK-ERROR: instruction requires: sve
61 // CHECK-UNKNOWN: b7 0d 81 04
62
4563 sub z23.b, z13.b, z8.b
4664 // CHECK-INST: sub z23.b, z13.b, z8.b
4765 // CHECK-ENCODING: [0xb7,0x05,0x28,0x04]
6078 // CHECK-ERROR: instruction requires: sve
6179 // CHECK-UNKNOWN: 55 05 b5 04
6280
81 sub z21.s, p5/m, z21.s, z10.s
82 // CHECK-INST: sub z21.s, p5/m, z21.s, z10.s
83 // CHECK-ENCODING: [0x55,0x15,0x81,0x04]
84 // CHECK-ERROR: instruction requires: sve
85 // CHECK-UNKNOWN: 55 15 81 04
86
87 sub z31.s, p7/m, z31.s, z31.s
88 // CHECK-INST: sub z31.s, p7/m, z31.s, z31.s
89 // CHECK-ENCODING: [0xff,0x1f,0x81,0x04]
90 // CHECK-ERROR: instruction requires: sve
91 // CHECK-UNKNOWN: ff 1f 81 04
92
93 sub z0.d, p0/m, z0.d, z0.d
94 // CHECK-INST: sub z0.d, p0/m, z0.d, z0.d
95 // CHECK-ENCODING: [0x00,0x00,0xc1,0x04]
96 // CHECK-ERROR: instruction requires: sve
97 // CHECK-UNKNOWN: 00 00 c1 04
98
6399 sub z0.b, z0.b, z0.b
64100 // CHECK-INST: sub z0.b, z0.b, z0.b
65101 // CHECK-ENCODING: [0x00,0x04,0x20,0x04]
72108 // CHECK-ERROR: instruction requires: sve
73109 // CHECK-UNKNOWN: b7 05 e8 04
74110
111 sub z23.d, p3/m, z23.d, z13.d
112 // CHECK-INST: sub z23.d, p3/m, z23.d, z13.d
113 // CHECK-ENCODING: [0xb7,0x0d,0xc1,0x04]
114 // CHECK-ERROR: instruction requires: sve
115 // CHECK-UNKNOWN: b7 0d c1 04
116
75117 sub z23.s, z13.s, z8.s
76118 // CHECK-INST: sub z23.s, z13.s, z8.s
77119 // CHECK-ENCODING: [0xb7,0x05,0xa8,0x04]
78120 // CHECK-ERROR: instruction requires: sve
79121 // CHECK-UNKNOWN: b7 05 a8 04
80122
123 sub z31.b, p7/m, z31.b, z31.b
124 // CHECK-INST: sub z31.b, p7/m, z31.b, z31.b
125 // CHECK-ENCODING: [0xff,0x1f,0x01,0x04]
126 // CHECK-ERROR: instruction requires: sve
127 // CHECK-UNKNOWN: ff 1f 01 04
128
129 sub z0.h, p0/m, z0.h, z0.h
130 // CHECK-INST: sub z0.h, p0/m, z0.h, z0.h
131 // CHECK-ENCODING: [0x00,0x00,0x41,0x04]
132 // CHECK-ERROR: instruction requires: sve
133 // CHECK-UNKNOWN: 00 00 41 04
134
81135 sub z31.d, z31.d, z31.d
82136 // CHECK-INST: sub z31.d, z31.d, z31.d
83137 // CHECK-ENCODING: [0xff,0x07,0xff,0x04]
84138 // CHECK-ERROR: instruction requires: sve
85139 // CHECK-UNKNOWN: ff 07 ff 04
86140
141 sub z31.h, p7/m, z31.h, z31.h
142 // CHECK-INST: sub z31.h, p7/m, z31.h, z31.h
143 // CHECK-ENCODING: [0xff,0x1f,0x41,0x04]
144 // CHECK-ERROR: instruction requires: sve
145 // CHECK-UNKNOWN: ff 1f 41 04
146
87147 sub z23.h, z13.h, z8.h
88148 // CHECK-INST: sub z23.h, z13.h, z8.h
89149 // CHECK-ENCODING: [0xb7,0x05,0x68,0x04]
90150 // CHECK-ERROR: instruction requires: sve
91151 // CHECK-UNKNOWN: b7 05 68 04
92152
153 sub z21.b, p5/m, z21.b, z10.b
154 // CHECK-INST: sub z21.b, p5/m, z21.b, z10.b
155 // CHECK-ENCODING: [0x55,0x15,0x01,0x04]
156 // CHECK-ERROR: instruction requires: sve
157 // CHECK-UNKNOWN: 55 15 01 04
158
159 sub z21.d, p5/m, z21.d, z10.d
160 // CHECK-INST: sub z21.d, p5/m, z21.d, z10.d
161 // CHECK-ENCODING: [0x55,0x15,0xc1,0x04]
162 // CHECK-ERROR: instruction requires: sve
163 // CHECK-UNKNOWN: 55 15 c1 04
164
93165 sub z0.d, z0.d, z0.d
94166 // CHECK-INST: sub z0.d, z0.d, z0.d
95167 // CHECK-ENCODING: [0x00,0x04,0xe0,0x04]
101173 // CHECK-ENCODING: [0xff,0x07,0xbf,0x04]
102174 // CHECK-ERROR: instruction requires: sve
103175 // CHECK-UNKNOWN: ff 07 bf 04
176
177 sub z0.b, p0/m, z0.b, z0.b
178 // CHECK-INST: sub z0.b, p0/m, z0.b, z0.b
179 // CHECK-ENCODING: [0x00,0x00,0x01,0x04]
180 // CHECK-ERROR: instruction requires: sve
181 // CHECK-UNKNOWN: 00 00 01 04
182
183 sub z0.s, p0/m, z0.s, z0.s
184 // CHECK-INST: sub z0.s, p0/m, z0.s, z0.s
185 // CHECK-ENCODING: [0x00,0x00,0x81,0x04]
186 // CHECK-ERROR: instruction requires: sve
187 // CHECK-UNKNOWN: 00 00 81 04
188
189 sub z21.h, p5/m, z21.h, z10.h
190 // CHECK-INST: sub z21.h, p5/m, z21.h, z10.h
191 // CHECK-ENCODING: [0x55,0x15,0x41,0x04]
192 // CHECK-ERROR: instruction requires: sve
193 // CHECK-UNKNOWN: 55 15 41 04
194
195 sub z23.b, p3/m, z23.b, z13.b
196 // CHECK-INST: sub z23.b, p3/m, z23.b, z13.b
197 // CHECK-ENCODING: [0xb7,0x0d,0x01,0x04]
198 // CHECK-ERROR: instruction requires: sve
199 // CHECK-UNKNOWN: b7 0d 01 04