284 lines · plain
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 CHECK3@ RUN: not llvm-mc -triple armv8-eabi -filetype asm -o /dev/null 2>&1 %s \4@ RUN: | FileCheck %s -check-prefix CHECK5@ 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 CHECK7@ RUN: not llvm-mc -triple thumbv8-eabi -filetype asm -o /dev/null 2>&1 %s \8@ RUN: | FileCheck %s -check-prefix CHECK9 10 .syntax unified11 12 .arch_extension fp13@ CHECK-V7: error: architectural extension 'fp' is not allowed for the current base architecture14@ CHECK-V7-NEXT: .arch_extension fp15@ CHECK-V7-NEXT: ^16 17 .type fp,%function18fp:19 vmrs r0, mvfr220@ CHECK-V7: instruction requires: FPARMv821 22 vselgt.f32 s0, s0, s023@ CHECK-V7: instruction requires: FPARMv824 vselge.f32 s0, s0, s025@ CHECK-V7: instruction requires: FPARMv826 vseleq.f32 s0, s0, s027@ CHECK-V7: instruction requires: FPARMv828 vselvs.f32 s0, s0, s029@ CHECK-V7: instruction requires: FPARMv830 vmaxnm.f32 s0, s0, s031@ CHECK-V7: instruction requires: FPARMv832 vminnm.f32 s0, s0, s033@ CHECK-V7: instruction requires: FPARMv834 35 vselgt.f64 d0, d0, d036@ CHECK-V7: instruction requires: FPARMv837 vselge.f64 d0, d0, d038@ CHECK-V7: instruction requires: FPARMv839 vseleq.f64 d0, d0, d040@ CHECK-V7: instruction requires: FPARMv841 vselvs.f64 d0, d0, d042@ CHECK-V7: instruction requires: FPARMv843 vmaxnm.f64 d0, d0, d044@ CHECK-V7: instruction requires: FPARMv845 vminnm.f64 d0, d0, d046@ CHECK-V7: instruction requires: FPARMv847 48 vcvtb.f64.f16 d0, s049@ CHECK-V7: instruction requires: FPARMv850 vcvtb.f16.f64 s0, d051@ CHECK-V7: instruction requires: FPARMv852 vcvtt.f64.f16 d0, s053@ CHECK-V7: instruction requires: FPARMv854 vcvtt.f16.f64 s0, d055@ CHECK-V7: instruction requires: FPARMv856 57 vcvta.s32.f32 s0, s058@ CHECK-V7: instruction requires: FPARMv859 vcvta.u32.f32 s0, s060@ CHECK-V7: instruction requires: FPARMv861 vcvta.s32.f64 s0, d062@ CHECK-V7: instruction requires: FPARMv863 vcvta.u32.f64 s0, d064@ CHECK-V7: instruction requires: FPARMv865 vcvtn.s32.f32 s0, s066@ CHECK-V7: instruction requires: FPARMv867 vcvtn.u32.f32 s0, s068@ CHECK-V7: instruction requires: FPARMv869 vcvtn.s32.f64 s0, d070@ CHECK-V7: instruction requires: FPARMv871 vcvtn.u32.f64 s0, d072@ CHECK-V7: instruction requires: FPARMv873 vcvtp.s32.f32 s0, s074@ CHECK-V7: instruction requires: FPARMv875 vcvtp.u32.f32 s0, s076@ CHECK-V7: instruction requires: FPARMv877 vcvtp.s32.f64 s0, d078@ CHECK-V7: instruction requires: FPARMv879 vcvtp.u32.f64 s0, d080@ CHECK-V7: instruction requires: FPARMv881 vcvtm.s32.f32 s0, s082@ CHECK-V7: instruction requires: FPARMv883 vcvtm.u32.f32 s0, s084@ CHECK-V7: instruction requires: FPARMv885 vcvtm.s32.f64 s0, d086@ CHECK-V7: instruction requires: FPARMv887 vcvtm.u32.f64 s0, d088@ CHECK-V7: instruction requires: FPARMv889 90 vrintz.f32 s0, s191@ CHECK-V7: instruction requires: FPARMv892 vrintz.f64 d0, d193@ CHECK-V7: instruction requires: FPARMv894 vrintz.f32.f32 s0, s095@ CHECK-V7: instruction requires: FPARMv896 vrintz.f64.f64 d0, d097@ CHECK-V7: instruction requires: FPARMv898 vrintr.f32 s0, s199@ CHECK-V7: instruction requires: FPARMv8100 vrintr.f64 d0, d1101@ CHECK-V7: instruction requires: FPARMv8102 vrintr.f32.f32 s0, s0103@ CHECK-V7: instruction requires: FPARMv8104 vrintr.f64.f64 d0, d0105@ CHECK-V7: instruction requires: FPARMv8106 vrintx.f32 s0, s1107@ CHECK-V7: instruction requires: FPARMv8108 vrintx.f64 d0, d1109@ CHECK-V7: instruction requires: FPARMv8110 vrintx.f32.f32 s0, s0111@ CHECK-V7: instruction requires: FPARMv8112 vrintx.f64.f64 d0, d0113@ CHECK-V7: instruction requires: FPARMv8114 115 vrinta.f32 s0, s0116@ CHECK-V7: instruction requires: FPARMv8117 vrinta.f64 d0, d0118@ CHECK-V7: instruction requires: FPARMv8119 vrinta.f32.f32 s0, s0120@ CHECK-V7: instruction requires: FPARMv8121 vrinta.f64.f64 d0, d0122@ CHECK-V7: instruction requires: FPARMv8123 vrintn.f32 s0, s0124@ CHECK-V7: instruction requires: FPARMv8125 vrintn.f64 d0, d0126@ CHECK-V7: instruction requires: FPARMv8127 vrintn.f32.f32 s0, s0128@ CHECK-V7: instruction requires: FPARMv8129 vrintn.f64.f64 d0, d0130@ CHECK-V7: instruction requires: FPARMv8131 vrintp.f32 s0, s0132@ CHECK-V7: instruction requires: FPARMv8133 vrintp.f64 d0, d0134@ CHECK-V7: instruction requires: FPARMv8135 vrintp.f32.f32 s0, s0136@ CHECK-V7: instruction requires: FPARMv8137 vrintp.f64.f64 d0, d0138@ CHECK-V7: instruction requires: FPARMv8139 vrintm.f32 s0, s0140@ CHECK-V7: instruction requires: FPARMv8141 vrintm.f64 d0, d0142@ CHECK-V7: instruction requires: FPARMv8143 vrintm.f32.f32 s0, s0144@ CHECK-V7: instruction requires: FPARMv8145 vrintm.f64.f64 d0, d0146@ CHECK-V7: instruction requires: FPARMv8147 148 .arch_extension nofp149@ CHECK-V7: error: architectural extension 'fp' is not allowed for the current base architecture150@ CHECK-V7-NEXT: .arch_extension nofp151@ CHECK-V7-NEXT: ^152 153 .type nofp,%function154nofp:155 vmrs r0, mvfr2156@ CHECK: instruction requires: FPARMv8157 158 vselgt.f32 s0, s0, s0159@ CHECK: instruction requires: FPARMv8160 vselge.f32 s0, s0, s0161@ CHECK: instruction requires: FPARMv8162 vseleq.f32 s0, s0, s0163@ CHECK: instruction requires: FPARMv8164 vselvs.f32 s0, s0, s0165@ CHECK: instruction requires: FPARMv8166 vmaxnm.f32 s0, s0, s0167@ CHECK: instruction requires: FPARMv8168 vminnm.f32 s0, s0, s0169@ CHECK: instruction requires: FPARMv8170 171 vselgt.f64 d0, d0, d0172@ CHECK: instruction requires: FPARMv8173 vselge.f64 d0, d0, d0174@ CHECK: instruction requires: FPARMv8175 vseleq.f64 d0, d0, d0176@ CHECK: instruction requires: FPARMv8177 vselvs.f64 d0, d0, d0178@ CHECK: instruction requires: FPARMv8179 vmaxnm.f64 d0, d0, d0180@ CHECK: instruction requires: FPARMv8181 vminnm.f64 d0, d0, d0182@ CHECK: instruction requires: FPARMv8183 184 vcvtb.f64.f16 d0, s0185@ CHECK: instruction requires: FPARMv8186 vcvtb.f16.f64 s0, d0187@ CHECK: instruction requires: FPARMv8188 vcvtt.f64.f16 d0, s0189@ CHECK: instruction requires: FPARMv8190 vcvtt.f16.f64 s0, d0191@ CHECK: instruction requires: FPARMv8192 193 vcvta.s32.f32 s0, s0194@ CHECK: instruction requires: FPARMv8195 vcvta.u32.f32 s0, s0196@ CHECK: instruction requires: FPARMv8197 vcvta.s32.f64 s0, d0198@ CHECK: instruction requires: FPARMv8199 vcvta.u32.f64 s0, d0200@ CHECK: instruction requires: FPARMv8201 vcvtn.s32.f32 s0, s0202@ CHECK: instruction requires: FPARMv8203 vcvtn.u32.f32 s0, s0204@ CHECK: instruction requires: FPARMv8205 vcvtn.s32.f64 s0, d0206@ CHECK: instruction requires: FPARMv8207 vcvtn.u32.f64 s0, d0208@ CHECK: instruction requires: FPARMv8209 vcvtp.s32.f32 s0, s0210@ CHECK: instruction requires: FPARMv8211 vcvtp.u32.f32 s0, s0212@ CHECK: instruction requires: FPARMv8213 vcvtp.s32.f64 s0, d0214@ CHECK: instruction requires: FPARMv8215 vcvtp.u32.f64 s0, d0216@ CHECK: instruction requires: FPARMv8217 vcvtm.s32.f32 s0, s0218@ CHECK: instruction requires: FPARMv8219 vcvtm.u32.f32 s0, s0220@ CHECK: instruction requires: FPARMv8221 vcvtm.s32.f64 s0, d0222@ CHECK: instruction requires: FPARMv8223 vcvtm.u32.f64 s0, d0224@ CHECK: instruction requires: FPARMv8225 226 vrintz.f32 s0, s1227@ CHECK: instruction requires: FPARMv8228 vrintz.f64 d0, d1229@ CHECK: instruction requires: FPARMv8230 vrintz.f32.f32 s0, s0231@ CHECK: instruction requires: FPARMv8232 vrintz.f64.f64 d0, d0233@ CHECK: instruction requires: FPARMv8234 vrintr.f32 s0, s1235@ CHECK: instruction requires: FPARMv8236 vrintr.f64 d0, d1237@ CHECK: instruction requires: FPARMv8238 vrintr.f32.f32 s0, s0239@ CHECK: instruction requires: FPARMv8240 vrintr.f64.f64 d0, d0241@ CHECK: instruction requires: FPARMv8242 vrintx.f32 s0, s1243@ CHECK: instruction requires: FPARMv8244 vrintx.f64 d0, d1245@ CHECK: instruction requires: FPARMv8246 vrintx.f32.f32 s0, s0247@ CHECK: instruction requires: FPARMv8248 vrintx.f64.f64 d0, d0249@ CHECK: instruction requires: FPARMv8250 251 vrinta.f32 s0, s0252@ CHECK: instruction requires: FPARMv8253 vrinta.f64 d0, d0254@ CHECK: instruction requires: FPARMv8255 vrinta.f32.f32 s0, s0256@ CHECK: instruction requires: FPARMv8257 vrinta.f64.f64 d0, d0258@ CHECK: instruction requires: FPARMv8259 vrintn.f32 s0, s0260@ CHECK: instruction requires: FPARMv8261 vrintn.f64 d0, d0262@ CHECK: instruction requires: FPARMv8263 vrintn.f32.f32 s0, s0264@ CHECK: instruction requires: FPARMv8265 vrintn.f64.f64 d0, d0266@ CHECK: instruction requires: FPARMv8267 vrintp.f32 s0, s0268@ CHECK: instruction requires: FPARMv8269 vrintp.f64 d0, d0270@ CHECK: instruction requires: FPARMv8271 vrintp.f32.f32 s0, s0272@ CHECK: instruction requires: FPARMv8273 vrintp.f64.f64 d0, d0274@ CHECK: instruction requires: FPARMv8275 vrintm.f32 s0, s0276@ CHECK: instruction requires: FPARMv8277 vrintm.f64 d0, d0278@ CHECK: instruction requires: FPARMv8279 vrintm.f32.f32 s0, s0280@ CHECK: instruction requires: FPARMv8281 vrintm.f64.f64 d0, d0282@ CHECK: instruction requires: FPARMv8283 284