Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / MC / RISCV / attribute-arch.s
blob12c494dc896a0ad691a30b171ad490b91bbb1940
1 ## Arch string without version.
3 # RUN: llvm-mc %s -triple=riscv32 -filetype=asm | FileCheck %s
4 # RUN: llvm-mc %s -triple=riscv64 -filetype=asm \
5 # RUN: | FileCheck --check-prefixes=CHECK,CHECK-RV64 %s
7 .attribute arch, "rv32i"
8 # CHECK: attribute 5, "rv32i2p1"
10 .attribute arch, "rv32i2p1"
11 # CHECK: attribute 5, "rv32i2p1"
13 .attribute arch, "rv32e"
14 # CHECK: attribute 5, "rv32e2p0"
16 .attribute arch, "rv64e"
17 # CHECK-RV64: attribute 5, "rv64e2p0"
19 .attribute arch, "rv32i2p1_m2"
20 # CHECK: attribute 5, "rv32i2p1_m2p0"
22 .attribute arch, "rv32i2p1_ma"
23 # CHECK: attribute 5, "rv32i2p1_m2p0_a2p1"
25 .attribute arch, "rv32g"
26 # CHECK: attribute 5, "rv32i2p1_m2p0_a2p1_f2p2_d2p2_zicsr2p0_zifencei2p0"
28 .attribute arch, "rv32imafdc"
29 # CHECK: attribute 5, "rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0"
31 .attribute arch, "rv32i2p1_mafdc"
32 # CHECK: attribute 5, "rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0"
34 .attribute arch, "rv32ima2p1_fdc"
35 # CHECK: attribute 5, "rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0"
37 .attribute arch, "rv32ima2p1_fdc"
38 # CHECK: attribute 5, "rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0"
40 .attribute arch, "rv32iv"
41 # CHECK: attribute 5, "rv32i2p1_f2p2_d2p2_v1p0_zicsr2p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl128b1p0_zvl32b1p0_zvl64b1p0"
43 .attribute arch, "rv32ivzvl32b"
44 # CHECK: attribute 5, "rv32i2p1_f2p2_d2p2_v1p0_zicsr2p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl128b1p0_zvl32b1p0_zvl64b1p0"
46 .attribute arch, "rv32ivzvl64b"
47 # CHECK: attribute 5, "rv32i2p1_f2p2_d2p2_v1p0_zicsr2p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl128b1p0_zvl32b1p0_zvl64b1p0"
49 .attribute arch, "rv32ivzvl128b"
50 # CHECK: attribute 5, "rv32i2p1_f2p2_d2p2_v1p0_zicsr2p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl128b1p0_zvl32b1p0_zvl64b1p0"
52 .attribute arch, "rv32ivzvl256b"
53 # CHECK: attribute 5, "rv32i2p1_f2p2_d2p2_v1p0_zicsr2p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl128b1p0_zvl256b1p0_zvl32b1p0_zvl64b1p0"
55 .attribute arch, "rv32ivzvl512b"
56 # CHECK: attribute 5, "rv32i2p1_f2p2_d2p2_v1p0_zicsr2p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl128b1p0_zvl256b1p0_zvl32b1p0_zvl512b1p0_zvl64b1p0"
58 .attribute arch, "rv32ivzvl1024b"
59 # CHECK: attribute 5, "rv32i2p1_f2p2_d2p2_v1p0_zicsr2p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl1024b1p0_zvl128b1p0_zvl256b1p0_zvl32b1p0_zvl512b1p0_zvl64b1p0"
61 .attribute arch, "rv32ivzvl2048b"
62 # CHECK: attribute 5, "rv32i2p1_f2p2_d2p2_v1p0_zicsr2p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl1024b1p0_zvl128b1p0_zvl2048b1p0_zvl256b1p0_zvl32b1p0_zvl512b1p0_zvl64b1p0"
64 .attribute arch, "rv32ivzvl4096b"
65 # CHECK: attribute 5, "rv32i2p1_f2p2_d2p2_v1p0_zicsr2p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl1024b1p0_zvl128b1p0_zvl2048b1p0_zvl256b1p0_zvl32b1p0_zvl4096b1p0_zvl512b1p0_zvl64b1p0"
67 .attribute arch, "rv32ivzvl8192b"
68 # CHECK: attribute 5, "rv32i2p1_f2p2_d2p2_v1p0_zicsr2p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl1024b1p0_zvl128b1p0_zvl2048b1p0_zvl256b1p0_zvl32b1p0_zvl4096b1p0_zvl512b1p0_zvl64b1p0_zvl8192b1p0"
70 .attribute arch, "rv32ivzvl16384b"
71 # CHECK: attribute 5, "rv32i2p1_f2p2_d2p2_v1p0_zicsr2p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl1024b1p0_zvl128b1p0_zvl16384b1p0_zvl2048b1p0_zvl256b1p0_zvl32b1p0_zvl4096b1p0_zvl512b1p0_zvl64b1p0_zvl8192b1p0"
73 .attribute arch, "rv32ivzvl32768b"
74 # CHECK: attribute 5, "rv32i2p1_f2p2_d2p2_v1p0_zicsr2p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl1024b1p0_zvl128b1p0_zvl16384b1p0_zvl2048b1p0_zvl256b1p0_zvl32768b1p0_zvl32b1p0_zvl4096b1p0_zvl512b1p0_zvl64b1p0_zvl8192b1p0"
76 .attribute arch, "rv32ivzvl65536b"
77 # CHECK: attribute 5, "rv32i2p1_f2p2_d2p2_v1p0_zicsr2p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl1024b1p0_zvl128b1p0_zvl16384b1p0_zvl2048b1p0_zvl256b1p0_zvl32768b1p0_zvl32b1p0_zvl4096b1p0_zvl512b1p0_zvl64b1p0_zvl65536b1p0_zvl8192b1p0"
79 .attribute arch, "rv32izve32x"
80 # CHECK: attribute 5, "rv32i2p1_zicsr2p0_zve32x1p0_zvl32b1p0"
82 .attribute arch, "rv32ifzve32f"
83 # CHECK: attribute 5, "rv32i2p1_f2p2_zicsr2p0_zve32f1p0_zve32x1p0_zvl32b1p0"
85 .attribute arch, "rv32izve64x"
86 # CHECK: attribute 5, "rv32i2p1_zicsr2p0_zve32x1p0_zve64x1p0_zvl32b1p0_zvl64b1p0"
88 .attribute arch, "rv32ifzve64f"
89 # CHECK: attribute 5, "rv32i2p1_f2p2_zicsr2p0_zve32f1p0_zve32x1p0_zve64f1p0_zve64x1p0_zvl32b1p0_zvl64b1p0"
91 .attribute arch, "rv32ifdzve64d"
92 # CHECK: attribute 5, "rv32i2p1_f2p2_d2p2_zicsr2p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl32b1p0_zvl64b1p0"
94 .attribute arch, "rv32izicbom"
95 # CHECK: attribute 5, "rv32i2p1_zicbom1p0"
97 .attribute arch, "rv32izicboz"
98 # CHECK: attribute 5, "rv32i2p1_zicboz1p0"
100 .attribute arch, "rv32izicbop"
101 # CHECK: attribute 5, "rv32i2p1_zicbop1p0"
103 ## Experimental extensions require version string to be explicitly specified
105 .attribute arch, "rv32izba1p0"
106 # CHECK: attribute 5, "rv32i2p1_zba1p0"
108 .attribute arch, "rv32izbb1p0"
109 # CHECK: attribute 5, "rv32i2p1_zbb1p0"
111 .attribute arch, "rv32izbc1p0"
112 # CHECK: attribute 5, "rv32i2p1_zbc1p0"
114 .attribute arch, "rv32i_zve64x_zvbb1p0"
115 # CHECK: attribute 5, "rv32i2p1_zicsr2p0_zvbb1p0_zve32x1p0_zve64x1p0_zvkb1p0_zvl32b1p0_zvl64b1p0"
117 .attribute arch, "rv32i_zve64x_zvbc1p0"
118 # CHECK: attribute 5, "rv32i2p1_zicsr2p0_zvbc1p0_zve32x1p0_zve64x1p0_zvl32b1p0_zvl64b1p0"
120 .attribute arch, "rv32i_zve32x_zvkb1p0"
121 # CHECK: attribute 5, "rv32i2p1_zicsr2p0_zve32x1p0_zvkb1p0_zvl32b1p0"
123 .attribute arch, "rv32i_zve32x_zvkg1p0"
124 # CHECK: attribute 5, "rv32i2p1_zicsr2p0_zve32x1p0_zvkg1p0_zvl32b1p0"
126 .attribute arch, "rv32i_zve64x_zvkn1p0"
127 # CHECK: attribute 5, "rv32i2p1_zicsr2p0_zve32x1p0_zve64x1p0_zvkb1p0_zvkn1p0_zvkned1p0_zvknha1p0_zvknhb1p0_zvkt1p0_zvl32b1p0_zvl64b1p0"
129 .attribute arch, "rv32i_zve64x_zvknc1p0"
130 # CHECK: attribute 5, "rv32i2p1_zicsr2p0_zvbc1p0_zve32x1p0_zve64x1p0_zvkb1p0_zvkn1p0_zvknc1p0_zvkned1p0_zvknha1p0_zvknhb1p0_zvkt1p0_zvl32b1p0_zvl64b1p0"
132 .attribute arch, "rv32i_zve64x_zvkng1p0"
133 # CHECK: attribute 5, "rv32i2p1_zicsr2p0_zve32x1p0_zve64x1p0_zvkb1p0_zvkg1p0_zvkn1p0_zvkned1p0_zvkng1p0_zvknha1p0_zvknhb1p0_zvkt1p0_zvl32b1p0_zvl64b1p0"
135 .attribute arch, "rv32i_zve32x_zvknha1p0"
136 # CHECK: attribute 5, "rv32i2p1_zicsr2p0_zve32x1p0_zvknha1p0_zvl32b1p0"
138 .attribute arch, "rv32i_zve64x_zvknhb1p0"
139 # CHECK: attribute 5, "rv32i2p1_zicsr2p0_zve32x1p0_zve64x1p0_zvknha1p0_zvknhb1p0_zvl32b1p0_zvl64b1p0"
141 .attribute arch, "rv32i_zve32x_zvkned1p0"
142 # CHECK: attribute 5, "rv32i2p1_zicsr2p0_zve32x1p0_zvkned1p0_zvl32b1p0"
144 .attribute arch, "rv32i_zve64x_zvks1p0"
145 # CHECK: attribute 5, "rv32i2p1_zicsr2p0_zve32x1p0_zve64x1p0_zvkb1p0_zvks1p0_zvksed1p0_zvksh1p0_zvkt1p0_zvl32b1p0_zvl64b1p0"
147 .attribute arch, "rv32i_zve64x_zvksc1p0"
148 # CHECK: attribute 5, "rv32i2p1_zicsr2p0_zvbc1p0_zve32x1p0_zve64x1p0_zvkb1p0_zvks1p0_zvksc1p0_zvksed1p0_zvksh1p0_zvkt1p0_zvl32b1p0_zvl64b1p0"
150 .attribute arch, "rv32i_zve64x_zvksg1p0"
151 # CHECK: attribute 5, "rv32i2p1_zicsr2p0_zve32x1p0_zve64x1p0_zvkb1p0_zvkg1p0_zvks1p0_zvksed1p0_zvksg1p0_zvksh1p0_zvkt1p0_zvl32b1p0_zvl64b1p0"
153 .attribute arch, "rv32i_zve32x_zvksed1p0"
154 # CHECK: attribute 5, "rv32i2p1_zicsr2p0_zve32x1p0_zvksed1p0_zvl32b1p0"
156 .attribute arch, "rv32i_zve32x_zvksh1p0"
157 # CHECK: attribute 5, "rv32i2p1_zicsr2p0_zve32x1p0_zvksh1p0_zvl32b1p0"
159 .attribute arch, "rv32i_zvkt1p0"
160 # CHECK: attribute 5, "rv32i2p1_zvkt1p0"
162 .attribute arch, "rv32izbs1p0"
163 # CHECK: attribute 5, "rv32i2p1_zbs1p0"
165 .attribute arch, "rv32ifzfhmin1p0"
166 # CHECK: attribute 5, "rv32i2p1_f2p2_zicsr2p0_zfhmin1p0"
168 .attribute arch, "rv32ifzfh1p0"
169 # CHECK: attribute 5, "rv32i2p1_f2p2_zicsr2p0_zfh1p0"
171 .attribute arch, "rv32izfinx"
172 # CHECK: attribute 5, "rv32i2p1_zicsr2p0_zfinx1p0"
174 .attribute arch, "rv32izfinx_zdinx"
175 # CHECK: attribute 5, "rv32i2p1_zicsr2p0_zfinx1p0_zdinx1p0"
177 .attribute arch, "rv32izfinx_zhinxmin"
178 # CHECK: attribute 5, "rv32i2p1_zicsr2p0_zfinx1p0_zhinxmin1p0"
180 .attribute arch, "rv32izfinx_zhinx1p0"
181 # CHECK: attribute 5, "rv32i2p1_zicsr2p0_zfinx1p0_zhinx1p0"
183 .attribute arch, "rv32i_zbkb1p0"
184 # CHECK: attribute 5, "rv32i2p1_zbkb1p0"
186 .attribute arch, "rv32i_zbkc1p0"
187 # CHECK: attribute 5, "rv32i2p1_zbkc1p0"
189 .attribute arch, "rv32i_zbkx1p0"
190 # CHECK: attribute 5, "rv32i2p1_zbkx1p0"
192 .attribute arch, "rv32i_zknd1p0"
193 # CHECK: attribute 5, "rv32i2p1_zknd1p0"
195 .attribute arch, "rv32i_zkne1p0"
196 # CHECK: attribute 5, "rv32i2p1_zkne1p0"
198 .attribute arch, "rv32i_zknh1p0"
199 # CHECK: attribute 5, "rv32i2p1_zknh1p0"
201 .attribute arch, "rv32i_zksed1p0"
202 # CHECK: attribute 5, "rv32i2p1_zksed1p0"
204 .attribute arch, "rv32i_zksh1p0"
205 # CHECK: attribute 5, "rv32i2p1_zksh1p0"
207 .attribute arch, "rv32i_zkr1p0"
208 # CHECK: attribute 5, "rv32i2p1_zkr1p0"
210 .attribute arch, "rv32i_zkn1p0"
211 # CHECK: attribute 5, "rv32i2p1_zbkb1p0_zbkc1p0_zbkx1p0_zkn1p0_zknd1p0_zkne1p0_zknh1p0"
213 .attribute arch, "rv32i_zks1p0"
214 # CHECK: attribute 5, "rv32i2p1_zbkb1p0_zbkc1p0_zbkx1p0_zks1p0_zksed1p0_zksh1p0"
216 .attribute arch, "rv32i_zkt1p0"
217 # CHECK: attribute 5, "rv32i2p1_zkt1p0"
219 .attribute arch, "rv32i_zk1p0"
220 # CHECK: attribute 5, "rv32i2p1_zbkb1p0_zbkc1p0_zbkx1p0_zk1p0_zkn1p0_zknd1p0_zkne1p0_zknh1p0_zkr1p0_zkt1p0"
222 .attribute arch, "rv32izihintntl1p0"
223 # CHECK: attribute 5, "rv32i2p1_zihintntl1p0"
225 .attribute arch, "rv32iczihintntl1p0"
226 # CHECK: attribute 5, "rv32i2p1_c2p0_zihintntl1p0"
228 .attribute arch, "rv32if_zkt1p0_zve32f1p0_zve32x1p0_zvl32b1p0"
229 # CHECK: attribute 5, "rv32i2p1_f2p2_zicsr2p0_zkt1p0_zve32f1p0_zve32x1p0_zvl32b1p0"
231 .attribute arch, "rv32izca1p0"
232 # CHECK: attribute 5, "rv32i2p1_zca1p0"
234 .attribute arch, "rv32izcd1p0"
235 # CHECK: attribute 5, "rv32i2p1_f2p2_d2p2_zicsr2p0_zca1p0_zcd1p0"
237 .attribute arch, "rv32izcf1p0"
238 # CHECK: attribute 5, "rv32i2p1_f2p2_zicsr2p0_zca1p0_zcf1p0"
240 .attribute arch, "rv32izcb1p0"
241 # CHECK: attribute 5, "rv32i2p1_zca1p0_zcb1p0"
243 .attribute arch, "rv32izcmp1p0"
244 # CHECK: attribute 5, "rv32i2p1_zca1p0_zcmp1p0"
246 .attribute arch, "rv32izcmt1p0"
247 # CHECK: attribute 5, "rv32i2p1_zca1p0_zcmt1p0"
249 .attribute arch, "rv64i_xsfvcp"
250 # CHECK: attribute 5, "rv64i2p1_zicsr2p0_zve32x1p0_zvl32b1p0_xsfvcp1p0"
252 .attribute arch, "rv32izawrs1p0"
253 # CHECK: attribute 5, "rv32i2p1_zawrs1p0"
255 .attribute arch, "rv32iztso0p1"
256 # CHECK: attribute 5, "rv32i2p1_ztso0p1"
258 .attribute arch, "rv32izicsr2p0"
259 # CHECK: attribute 5, "rv32i2p1_zicsr2p0"
261 .attribute arch, "rv32izifencei2p0"
262 # CHECK: attribute 5, "rv32i2p1_zifencei2p0"
264 .attribute arch, "rv32izfa1p0"
265 # CHECK: attribute 5, "rv32i2p1_f2p2_zicsr2p0_zfa1p0"
267 .attribute arch, "rv32izicond1p0"
268 # CHECK: attribute 5, "rv32i2p1_zicond1p0"
270 .attribute arch, "rv32i_smaia1p0"
271 # CHECK: attribute 5, "rv32i2p1_smaia1p0"
273 .attribute arch, "rv32i_ssaia1p0"
274 # CHECK: attribute 5, "rv32i2p1_ssaia1p0"
276 .attribute arch, "rv32i_zfbfmin0p8"
277 # CHECK: .attribute 5, "rv32i2p1_f2p2_zicsr2p0_zfbfmin0p8"
279 .attribute arch, "rv32i_zvfbfmin0p8"
280 # CHECK: .attribute 5, "rv32i2p1_f2p2_zicsr2p0_zfbfmin0p8_zve32f1p0_zve32x1p0_zvfbfmin0p8_zvl32b1p0"
282 .attribute arch, "rv32i_zvfbfwma0p8"
283 # CHECK: .attribute 5, "rv32i2p1_f2p2_zicsr2p0_zfbfmin0p8_zve32f1p0_zve32x1p0_zvfbfmin0p8_zvfbfwma0p8_zvl32b1p0"
285 .attribute arch, "rv64i_xsfcie"
286 # CHECK: attribute 5, "rv64i2p1_xsfcie1p0"
288 .attribute arch, "rv32izacas1p0"
289 # CHECK: attribute 5, "rv32i2p1_a2p1_zacas1p0"
291 .attribute arch, "rv32i_xcvalu"
292 # CHECK: attribute 5, "rv32i2p1_xcvalu1p0"
294 .attribute arch, "rv32i_xcvbitmanip"
295 # CHECK: attribute 5, "rv32i2p1_xcvbitmanip1p0"
297 .attribute arch, "rv32i_xcvmac"
298 # CHECK: attribute 5, "rv32i2p1_xcvmac1p0"
300 .attribute arch, "rv32i_xcvsimd"
301 # CHECK: attribute 5, "rv32i2p1_xcvsimd1p0"
303 .attribute arch, "rv32i_xcvbi"
304 # CHECK: attribute 5, "rv32i2p1_xcvbi1p0"
306 .attribute arch, "rv32i_zicfilp0p2"
307 # CHECK: attribute 5, "rv32i2p1_zicfilp0p2"