1 // RUN
: not llvm-mc
-triple aarch64 \
2 // RUN
: -mattr
=+crc
,+sm4
,+sha3
,+sha2
,+aes
,+fp
,+neon
,+ras
,+lse
,+predres
,+ccdp
,+mte
,+tlb-rmi
,+pan-rwv
,+ccpp
,+rcpc
,+ls64
,+flagm
,+hbc
,+mops \
3 // RUN
: -mattr
=+rcpc3
,+lse128
,+d128
,+the
,+rasv2
,+ite
,+cssc
,+specres2
,+gcs \
4 // RUN
: -filetype asm
-o
- %s
2>&1 | FileCheck
%s
7 // CHECK
: error
: unknown architectural extension
: axp64
8 // CHECK-NEXT
: .arch_extension axp64
11 // CHECK-
NOT: [[@LINE-
1]]:1: error
: instruction requires
: crc
14 // CHECK
: [[@LINE-
1]]:1: error
: instruction requires
: crc
15 // CHECK-NEXT
: crc32cx w0
, w1
, x3
18 // CHECK-
NOT: [[@LINE-
1]]:1: error
: instruction requires
: sm4
21 // CHECK
: [[@LINE-
1]]:1: error
: instruction requires
: sm4
22 // CHECK-NEXT
: sm4e v2.4s
, v15.4s
25 // CHECK-
NOT: [[@LINE-
1]]:1: error
: instruction requires
: sha3
26 .arch_extension nosha3
28 // CHECK
: [[@LINE-
1]]:1: error
: instruction requires
: sha3
29 // CHECK-NEXT
: sha512h q0
, q1
, v2.2d
32 // CHECK-
NOT: [[@LINE-
1]]:1: error
: instruction requires
: sha2
33 .arch_extension nosha2
35 // CHECK
: [[@LINE-
1]]:1: error
: instruction requires
: sha2
36 // CHECK-NEXT
: sha1h s0
, s1
39 // CHECK-
NOT: [[@LINE-
1]]:1: error
: instruction requires
: aes
42 // CHECK
: [[@LINE-
1]]:1: error
: instruction requires
: aes
43 // CHECK-NEXT
: aese v0.16
b, v1.16
b
46 // CHECK-
NOT: [[@LINE-
1]]:1: error
: instruction requires
: fp
49 // CHECK
: [[@LINE-
1]]:1: error
: instruction requires
: fp
50 // CHECK-NEXT
: fminnm d0
, d0
, d1
52 addp v0.4s
, v0.4s
, v0.4s
53 // CHECK-
NOT: [[@LINE-
1]]:1: error
: instruction requires
: neon
54 .arch_extension nosimd
55 addp v0.4s
, v0.4s
, v0.4s
56 // CHECK
: [[@LINE-
1]]:1: error
: instruction requires
: neon
57 // CHECK-NEXT
: addp v0.4s
, v0.4s
, v0.4s
60 // CHECK-
NOT: [[@LINE-
1]]:1: error
: instruction requires
: ras
63 // CHECK
: [[@LINE-
1]]:1: error
: instruction requires
: ras
67 // CHECK-
NOT: [[@LINE-
1]]:1: error
: instruction requires
: lse
70 // CHECK
: [[@LINE-
1]]:1: error
: instruction requires
: lse
71 // CHECK-NEXT
: casa w5
, w7
, [x20
]
74 // CHECK-
NOT: [[@LINE-
1]]:1: error
: instruction requires
: lse128
75 .arch_extension nolse128
77 // CHECK
: [[@LINE-
1]]:1: error
: instruction requires
: lse128
78 // CHECK-NEXT
: swpp x0
, x2
, [x3
]
81 // CHECK-
NOT: [[@LINE-
1]]:5: error
: CFPRCTX requires
: predres
82 .arch_extension nopredres
84 // CHECK
: [[@LINE-
1]]:5: error
: CFPRCTX requires
: predres
85 // CHECK-NEXT
: cfp rctx
, x0
88 // CHECK-
NOT: [[@LINE-
1]]:6: error
: COSP requires
: predres2
89 .arch_extension nopredres2
91 // CHECK
: [[@LINE-
1]]:6: error
: COSP requires
: predres2
92 // CHECK-NEXT
: cosp rctx
, x0
95 // CHECK-
NOT: [[@LINE-
1]]:4: error
: DC CVADP requires
: ccdp
96 .arch_extension noccdp
98 // CHECK
: [[@LINE-
1]]:4: error
: DC CVADP requires
: ccdp
99 // CHECK-NEXT
: dc cvadp
, x7
102 // CHECK-
NOT: [[@LINE-
1]]:1: error
: instruction requires
: mte
103 .arch_extension nomte
105 // CHECK
: [[@LINE-
1]]:1: error
: instruction requires
: mte
106 // CHECK-NEXT
: irg x0
, x1
109 // CHECK-
NOT: [[@LINE-
1]]:6: error
: TLBI VMALLE1OS requires
: tlb-rmi
110 .arch_extension notlb-rmi
112 // CHECK
: [[@LINE-
1]]:6: error
: TLBI VMALLE1OS requires
: tlb-rmi
113 // CHECK-NEXT
: tlbi vmalle1os
116 // CHECK-
NOT: [[@LINE-
1]]:4: error
: AT S1E1WP requires
: pan-rwv
117 .arch_extension nopan-rwv
119 // CHECK
: [[@LINE-
1]]:4: error
: AT S1E1WP requires
: pan-rwv
120 // CHECK-NEXT
: at s1e1wp
, x2
123 // CHECK-
NOT: [[@LINE-
1]]:4: error
: DC CVAP requires
: ccpp
124 .arch_extension noccpp
126 // CHECK
: [[@LINE-
1]]:4: error
: DC CVAP requires
: ccpp
127 // CHECK-NEXT
: dc cvap
, x7
130 // CHECK-
NOT: [[@LINE-
1]]:1: error
: instruction requires
: rcpc
131 .arch_extension norcpc
133 // CHECK
: [[@LINE-
1]]:1: error
: instruction requires
: rcpc
134 // CHECK-NEXT
: ldapr x0
, [x1
]
136 stilp w24
, w0
, [x16
, #-8]!
137 // CHECK-
NOT: [[@LINE-
1]]:1: error
: instruction requires
: rcpc3
138 .arch_extension norcpc3
139 stilp w24
, w0
, [x16
, #-8]!
140 // CHECK
: [[@LINE-
1]]:1: error
: instruction requires
: rcpc3
141 // CHECK-NEXT
: stilp w24
, w0
, [x16
, #-8]!
144 // CHECK-
NOT: [[@LINE-
1]]:1: error
: instruction requires
: ls64
145 .arch_extension nols64
147 // CHECK
: [[@LINE-
1]]:1: error
: instruction requires
: ls64
148 // CHECK-NEXT
: ld64b x0
, [x13
]
151 // CHECK-
NOT: [[@LINE-
1]]:1: error
: instruction requires
: flagm
152 .arch_extension noflagm
154 // CHECK
: [[@LINE-
1]]:1: error
: instruction requires
: flagm
159 // CHECK-
NOT: [[@LINE-
1]]:1: error
: instruction requires
: hbc
160 .arch_extension nohbc
162 // CHECK
: [[@LINE-
1]]:1: error
: instruction requires
: hbc
163 // CHECK-NEXT
: bc.eq lbl
165 cpyfp
[x0
]!, [x1
]!, x2
!
166 // CHECK-
NOT: [[@LINE-
1]]:1: error
: instruction requires
: mops
167 .arch_extension nomops
168 cpyfp
[x0
]!, [x1
]!, x2
!
169 // CHECK
: [[@LINE-
1]]:1: error
: instruction requires
: mops
170 // CHECK-NEXT
: cpyfp
[x0
]!, [x1
]!, x2
!
172 // This needs to come before `
.arch_extension nothe` as it uses an instruction
173 // that requires both the
and d128
174 sysp
#0, c2, c0, #0, x0, x1
175 rcwcasp x0
, x1
, x6
, x7
, [x4
]
176 // CHECK-
NOT: [[@LINE-
2]]:1: error
: instruction requires
: d128
177 // CHECK-
NOT: [[@LINE-
2]]:1: error
: instruction requires
: d128
178 .arch_extension nod128
179 sysp
#0, c2, c0, #0, x0, x1
180 rcwcasp x0
, x1
, x6
, x7
, [x4
]
181 // CHECK
: [[@LINE-
2]]:1: error
: instruction requires
: d128
182 // CHECK-NEXT
: sysp
#0, c2, c0, #0, x0, x1
183 // CHECK
: [[@LINE-
3]]:1: error
: instruction requires
: d128
184 // CHECK-NEXT
: rcwcasp x0
, x1
, x6
, x7
, [x4
]
187 // CHECK-
NOT: [[@LINE-
1]]:1: error
: instruction requires
: the
188 .arch_extension nothe
190 // CHECK
: [[@LINE-
1]]:1: error
: instruction requires
: the
191 // CHECK-NEXT
: rcwswp x0
, x1
, [x2
]
194 // CHECK-
NOT: [[@LINE-
1]]:1: error
: instruction requires
: ite
195 .arch_extension noite
197 // CHECK
: [[@LINE-
1]]:1: error
: instruction requires
: ite
198 // CHECK-NEXT
: trcit x0
201 // CHECK-
NOT: [[@LINE-
1]]:1: error
: instruction requires
: cssc
202 .arch_extension nocssc
204 // CHECK
: [[@LINE-
1]]:1: error
: instruction requires
: cssc
205 // CHECK-NEXT
: umax x0
, x1
, x2
208 // CHECK-
NOT: [[@LINE-
1]]:9: error
: expected readable system register
209 .arch_extension norasv2
211 // CHECK
: [[@LINE-
1]]:9: error
: expected readable system register
212 // CHECK-NEXT
: mrs x0
, ERXGSR_EL1
215 // CHECK-
NOT: [[@LINE-
1]]:1: error
: instruction requires
: gcs
216 .arch_extension nogcs
218 // CHECK
: [[@LINE-
1]]:1: error
: instruction requires
: gcs
219 // CHECK-NEXT
: gcspushm x0