1 @ RUN: not llvm-mc -triple armv7-eabi -filetype asm -o /dev/null 2>&1 %s \ 2 @ RUN: | FileCheck %s -check-prefix CHECK-V7 -check-prefix CHECK 3 @ RUN: not llvm-mc -triple armv8-eabi -filetype asm -o /dev/null 2>&1 %s \ 4 @ RUN: | FileCheck %s -check-prefix CHECK-V8 -check-prefix CHECK 5 @ RUN: not llvm-mc -triple thumbv7-eabi -filetype asm -o /dev/null 2>&1 %s \ 6 @ RUN: | FileCheck %s -check-prefix CHECK-V7 -check-prefix CHECK 7 @ RUN: not llvm-mc -triple thumbv8-eabi -filetype asm -o /dev/null 2>&1 %s \ 8 @ RUN: | FileCheck %s -check-prefix CHECK-V8 -check-prefix CHECK 9 10 .syntax unified 11 12 .arch_extension fp 13 @ CHECK-V7: error: architectural extension 'fp' is not allowed for the current base architecture 14 @ CHECK-V7-NEXT: .arch_extension fp 15 @ CHECK-V7-NEXT: ^ 16 17 .type fp,%function 18 fp: 19 vmrs r0, mvfr2 20 @ CHECK-V7: error: instruction requires: FPARMv8 21 22 vselgt.f32 s0, s0, s0 23 @ CHECK-V7: error: instruction requires: FPARMv8 24 vselge.f32 s0, s0, s0 25 @ CHECK-V7: error: instruction requires: FPARMv8 26 vseleq.f32 s0, s0, s0 27 @ CHECK-V7: error: instruction requires: FPARMv8 28 vselvs.f32 s0, s0, s0 29 @ CHECK-V7: error: instruction requires: FPARMv8 30 vmaxnm.f32 s0, s0, s0 31 @ CHECK-V7: error: instruction requires: FPARMv8 32 vminnm.f32 s0, s0, s0 33 @ CHECK-V7: error: instruction requires: FPARMv8 34 35 vselgt.f64 d0, d0, d0 36 @ CHECK-V7: error: instruction requires: FPARMv8 37 vselge.f64 d0, d0, d0 38 @ CHECK-V7: error: instruction requires: FPARMv8 39 vseleq.f64 d0, d0, d0 40 @ CHECK-V7: error: instruction requires: FPARMv8 41 vselvs.f64 d0, d0, d0 42 @ CHECK-V7: error: instruction requires: FPARMv8 43 vmaxnm.f64 d0, d0, d0 44 @ CHECK-V7: error: instruction requires: FPARMv8 45 vminnm.f64 d0, d0, d0 46 @ CHECK-V7: error: instruction requires: FPARMv8 47 48 vcvtb.f64.f16 d0, s0 49 @ CHECK-V7: error: instruction requires: FPARMv8 50 vcvtb.f16.f64 s0, d0 51 @ CHECK-V7: error: instruction requires: FPARMv8 52 vcvtt.f64.f16 d0, s0 53 @ CHECK-V7: error: instruction requires: FPARMv8 54 vcvtt.f16.f64 s0, d0 55 @ CHECK-V7: error: instruction requires: FPARMv8 56 57 vcvta.s32.f32 s0, s0 58 @ CHECK-V7: error: instruction requires: FPARMv8 59 vcvta.u32.f32 s0, s0 60 @ CHECK-V7: error: instruction requires: FPARMv8 61 vcvta.s32.f64 s0, d0 62 @ CHECK-V7: error: instruction requires: FPARMv8 63 vcvta.u32.f64 s0, d0 64 @ CHECK-V7: error: instruction requires: FPARMv8 65 vcvtn.s32.f32 s0, s0 66 @ CHECK-V7: error: instruction requires: FPARMv8 67 vcvtn.u32.f32 s0, s0 68 @ CHECK-V7: error: instruction requires: FPARMv8 69 vcvtn.s32.f64 s0, d0 70 @ CHECK-V7: error: instruction requires: FPARMv8 71 vcvtn.u32.f64 s0, d0 72 @ CHECK-V7: error: instruction requires: FPARMv8 73 vcvtp.s32.f32 s0, s0 74 @ CHECK-V7: error: instruction requires: FPARMv8 75 vcvtp.u32.f32 s0, s0 76 @ CHECK-V7: error: instruction requires: FPARMv8 77 vcvtp.s32.f64 s0, d0 78 @ CHECK-V7: error: instruction requires: FPARMv8 79 vcvtp.u32.f64 s0, d0 80 @ CHECK-V7: error: instruction requires: FPARMv8 81 vcvtm.s32.f32 s0, s0 82 @ CHECK-V7: error: instruction requires: FPARMv8 83 vcvtm.u32.f32 s0, s0 84 @ CHECK-V7: error: instruction requires: FPARMv8 85 vcvtm.s32.f64 s0, d0 86 @ CHECK-V7: error: instruction requires: FPARMv8 87 vcvtm.u32.f64 s0, d0 88 @ CHECK-V7: error: instruction requires: FPARMv8 89 90 vrintz.f32 s0, s1 91 @ CHECK-V7: error: instruction requires: FPARMv8 92 vrintz.f64 d0, d1 93 @ CHECK-V7: error: instruction requires: FPARMv8 94 vrintz.f32.f32 s0, s0 95 @ CHECK-V7: error: instruction requires: FPARMv8 96 vrintz.f64.f64 d0, d0 97 @ CHECK-V7: error: instruction requires: FPARMv8 98 vrintr.f32 s0, s1 99 @ CHECK-V7: error: instruction requires: FPARMv8 100 vrintr.f64 d0, d1 101 @ CHECK-V7: error: instruction requires: FPARMv8 102 vrintr.f32.f32 s0, s0 103 @ CHECK-V7: error: instruction requires: FPARMv8 104 vrintr.f64.f64 d0, d0 105 @ CHECK-V7: error: instruction requires: FPARMv8 106 vrintx.f32 s0, s1 107 @ CHECK-V7: error: instruction requires: FPARMv8 108 vrintx.f64 d0, d1 109 @ CHECK-V7: error: instruction requires: FPARMv8 110 vrintx.f32.f32 s0, s0 111 @ CHECK-V7: error: instruction requires: FPARMv8 112 vrintx.f64.f64 d0, d0 113 @ CHECK-V7: error: instruction requires: FPARMv8 114 115 vrinta.f32 s0, s0 116 @ CHECK-V7: error: instruction requires: FPARMv8 117 vrinta.f64 d0, d0 118 @ CHECK-V7: error: instruction requires: FPARMv8 119 vrinta.f32.f32 s0, s0 120 @ CHECK-V7: error: instruction requires: FPARMv8 121 vrinta.f64.f64 d0, d0 122 @ CHECK-V7: error: instruction requires: FPARMv8 123 vrintn.f32 s0, s0 124 @ CHECK-V7: error: instruction requires: FPARMv8 125 vrintn.f64 d0, d0 126 @ CHECK-V7: error: instruction requires: FPARMv8 127 vrintn.f32.f32 s0, s0 128 @ CHECK-V7: error: instruction requires: FPARMv8 129 vrintn.f64.f64 d0, d0 130 @ CHECK-V7: error: instruction requires: FPARMv8 131 vrintp.f32 s0, s0 132 @ CHECK-V7: error: instruction requires: FPARMv8 133 vrintp.f64 d0, d0 134 @ CHECK-V7: error: instruction requires: FPARMv8 135 vrintp.f32.f32 s0, s0 136 @ CHECK-V7: error: instruction requires: FPARMv8 137 vrintp.f64.f64 d0, d0 138 @ CHECK-V7: error: instruction requires: FPARMv8 139 vrintm.f32 s0, s0 140 @ CHECK-V7: error: instruction requires: FPARMv8 141 vrintm.f64 d0, d0 142 @ CHECK-V7: error: instruction requires: FPARMv8 143 vrintm.f32.f32 s0, s0 144 @ CHECK-V7: error: instruction requires: FPARMv8 145 vrintm.f64.f64 d0, d0 146 @ CHECK-V7: error: instruction requires: FPARMv8 147 148 .arch_extension nofp 149 @ CHECK-V7: error: architectural extension 'fp' is not allowed for the current base architecture 150 @ CHECK-V7-NEXT: .arch_extension nofp 151 @ CHECK-V7-NEXT: ^ 152 153 .type nofp,%function 154 nofp: 155 vmrs r0, mvfr2 156 @ CHECK: error: instruction requires: FPARMv8 157 158 vselgt.f32 s0, s0, s0 159 @ CHECK: error: instruction requires: FPARMv8 160 vselge.f32 s0, s0, s0 161 @ CHECK: error: instruction requires: FPARMv8 162 vseleq.f32 s0, s0, s0 163 @ CHECK: error: instruction requires: FPARMv8 164 vselvs.f32 s0, s0, s0 165 @ CHECK: error: instruction requires: FPARMv8 166 vmaxnm.f32 s0, s0, s0 167 @ CHECK: error: instruction requires: FPARMv8 168 vminnm.f32 s0, s0, s0 169 @ CHECK: error: instruction requires: FPARMv8 170 171 vselgt.f64 d0, d0, d0 172 @ CHECK: error: instruction requires: FPARMv8 173 vselge.f64 d0, d0, d0 174 @ CHECK: error: instruction requires: FPARMv8 175 vseleq.f64 d0, d0, d0 176 @ CHECK: error: instruction requires: FPARMv8 177 vselvs.f64 d0, d0, d0 178 @ CHECK: error: instruction requires: FPARMv8 179 vmaxnm.f64 d0, d0, d0 180 @ CHECK: error: instruction requires: FPARMv8 181 vminnm.f64 d0, d0, d0 182 @ CHECK: error: instruction requires: FPARMv8 183 184 vcvtb.f64.f16 d0, s0 185 @ CHECK: error: instruction requires: FPARMv8 186 vcvtb.f16.f64 s0, d0 187 @ CHECK: error: instruction requires: FPARMv8 188 vcvtt.f64.f16 d0, s0 189 @ CHECK: error: instruction requires: FPARMv8 190 vcvtt.f16.f64 s0, d0 191 @ CHECK: error: instruction requires: FPARMv8 192 193 vcvta.s32.f32 s0, s0 194 @ CHECK: error: instruction requires: FPARMv8 195 vcvta.u32.f32 s0, s0 196 @ CHECK: error: instruction requires: FPARMv8 197 vcvta.s32.f64 s0, d0 198 @ CHECK: error: instruction requires: FPARMv8 199 vcvta.u32.f64 s0, d0 200 @ CHECK: error: instruction requires: FPARMv8 201 vcvtn.s32.f32 s0, s0 202 @ CHECK: error: instruction requires: FPARMv8 203 vcvtn.u32.f32 s0, s0 204 @ CHECK: error: instruction requires: FPARMv8 205 vcvtn.s32.f64 s0, d0 206 @ CHECK: error: instruction requires: FPARMv8 207 vcvtn.u32.f64 s0, d0 208 @ CHECK: error: instruction requires: FPARMv8 209 vcvtp.s32.f32 s0, s0 210 @ CHECK: error: instruction requires: FPARMv8 211 vcvtp.u32.f32 s0, s0 212 @ CHECK: error: instruction requires: FPARMv8 213 vcvtp.s32.f64 s0, d0 214 @ CHECK: error: instruction requires: FPARMv8 215 vcvtp.u32.f64 s0, d0 216 @ CHECK: error: instruction requires: FPARMv8 217 vcvtm.s32.f32 s0, s0 218 @ CHECK: error: instruction requires: FPARMv8 219 vcvtm.u32.f32 s0, s0 220 @ CHECK: error: instruction requires: FPARMv8 221 vcvtm.s32.f64 s0, d0 222 @ CHECK: error: instruction requires: FPARMv8 223 vcvtm.u32.f64 s0, d0 224 @ CHECK: error: instruction requires: FPARMv8 225 226 vrintz.f32 s0, s1 227 @ CHECK: error: instruction requires: FPARMv8 228 vrintz.f64 d0, d1 229 @ CHECK: error: instruction requires: FPARMv8 230 vrintz.f32.f32 s0, s0 231 @ CHECK: error: instruction requires: FPARMv8 232 vrintz.f64.f64 d0, d0 233 @ CHECK: error: instruction requires: FPARMv8 234 vrintr.f32 s0, s1 235 @ CHECK: error: instruction requires: FPARMv8 236 vrintr.f64 d0, d1 237 @ CHECK: error: instruction requires: FPARMv8 238 vrintr.f32.f32 s0, s0 239 @ CHECK: error: instruction requires: FPARMv8 240 vrintr.f64.f64 d0, d0 241 @ CHECK: error: instruction requires: FPARMv8 242 vrintx.f32 s0, s1 243 @ CHECK: error: instruction requires: FPARMv8 244 vrintx.f64 d0, d1 245 @ CHECK: error: instruction requires: FPARMv8 246 vrintx.f32.f32 s0, s0 247 @ CHECK: error: instruction requires: FPARMv8 248 vrintx.f64.f64 d0, d0 249 @ CHECK: error: instruction requires: FPARMv8 250 251 vrinta.f32 s0, s0 252 @ CHECK: error: instruction requires: FPARMv8 253 vrinta.f64 d0, d0 254 @ CHECK: error: instruction requires: FPARMv8 255 vrinta.f32.f32 s0, s0 256 @ CHECK: error: instruction requires: FPARMv8 257 vrinta.f64.f64 d0, d0 258 @ CHECK: error: instruction requires: FPARMv8 259 vrintn.f32 s0, s0 260 @ CHECK: error: instruction requires: FPARMv8 261 vrintn.f64 d0, d0 262 @ CHECK: error: instruction requires: FPARMv8 263 vrintn.f32.f32 s0, s0 264 @ CHECK: error: instruction requires: FPARMv8 265 vrintn.f64.f64 d0, d0 266 @ CHECK: error: instruction requires: FPARMv8 267 vrintp.f32 s0, s0 268 @ CHECK: error: instruction requires: FPARMv8 269 vrintp.f64 d0, d0 270 @ CHECK: error: instruction requires: FPARMv8 271 vrintp.f32.f32 s0, s0 272 @ CHECK: error: instruction requires: FPARMv8 273 vrintp.f64.f64 d0, d0 274 @ CHECK: error: instruction requires: FPARMv8 275 vrintm.f32 s0, s0 276 @ CHECK: error: instruction requires: FPARMv8 277 vrintm.f64 d0, d0 278 @ CHECK: error: instruction requires: FPARMv8 279 vrintm.f32.f32 s0, s0 280 @ CHECK: error: instruction requires: FPARMv8 281 vrintm.f64.f64 d0, d0 282 @ CHECK: error: instruction requires: FPARMv8 283 284