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