Home | History | Annotate | Download | only in ARM
      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 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
     18 simd:
     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
    126 nosimd:
    127 	vmaxnm.f32 s0, s0, s0
    128 @ CHECK: error: instruction requires: FPARMv8
    129 	vminnm.f32 s0, s0, s0
    130 @ CHECK: error: instruction requires: FPARMv8
    131 
    132 	vmaxnm.f64 d0, d0, d0
    133 @ CHECK: error: instruction requires: FPARMv8
    134 	vminnm.f64 d0, d0, d0
    135 @ CHECK: error: instruction requires: FPARMv8
    136 
    137 	vcvta.s32.f32 s0, s0
    138 @ CHECK: error: instruction requires: FPARMv8
    139 	vcvta.u32.f32 s0, s0
    140 @ CHECK: error: instruction requires: FPARMv8
    141 	vcvta.s32.f64 s0, d0
    142 @ CHECK: error: instruction requires: FPARMv8
    143 	vcvta.u32.f64 s0, d0
    144 @ CHECK: error: instruction requires: FPARMv8
    145 	vcvtn.s32.f32 s0, s0
    146 @ CHECK: error: instruction requires: FPARMv8
    147 	vcvtn.u32.f32 s0, s0
    148 @ CHECK: error: instruction requires: FPARMv8
    149 	vcvtn.s32.f64 s0, d0
    150 @ CHECK: error: instruction requires: FPARMv8
    151 	vcvtn.u32.f64 s0, d0
    152 @ CHECK: error: instruction requires: FPARMv8
    153 	vcvtp.s32.f32 s0, s0
    154 @ CHECK: error: instruction requires: FPARMv8
    155 	vcvtp.u32.f32 s0, s0
    156 @ CHECK: error: instruction requires: FPARMv8
    157 	vcvtp.s32.f64 s0, d0
    158 @ CHECK: error: instruction requires: FPARMv8
    159 	vcvtp.u32.f64 s0, d0
    160 @ CHECK: error: instruction requires: FPARMv8
    161 	vcvtm.s32.f32 s0, s0
    162 @ CHECK: error: instruction requires: FPARMv8
    163 	vcvtm.u32.f32 s0, s0
    164 @ CHECK: error: instruction requires: FPARMv8
    165 	vcvtm.s32.f64 s0, d0
    166 @ CHECK: error: instruction requires: FPARMv8
    167 	vcvtm.u32.f64 s0, d0
    168 @ CHECK: error: instruction requires: FPARMv8
    169 
    170 	vrintz.f32 s0, s1
    171 @ CHECK: error: instruction requires: FPARMv8
    172 	vrintz.f64 d0, d1
    173 @ CHECK: error: instruction requires: FPARMv8
    174 	vrintz.f32.f32 s0, s0
    175 @ CHECK: error: instruction requires: FPARMv8
    176 	vrintz.f64.f64 d0, d0
    177 @ CHECK: error: instruction requires: FPARMv8
    178 	vrintr.f32 s0, s1
    179 @ CHECK: error: instruction requires: FPARMv8
    180 	vrintr.f64 d0, d1
    181 @ CHECK: error: instruction requires: FPARMv8
    182 	vrintr.f32.f32 s0, s0
    183 @ CHECK: error: instruction requires: FPARMv8
    184 	vrintr.f64.f64 d0, d0
    185 @ CHECK: error: instruction requires: FPARMv8
    186 	vrintx.f32 s0, s1
    187 @ CHECK: error: instruction requires: FPARMv8
    188 	vrintx.f64 d0, d1
    189 @ CHECK: error: instruction requires: FPARMv8
    190 	vrintx.f32.f32 s0, s0
    191 @ CHECK: error: instruction requires: FPARMv8
    192 	vrintx.f64.f64 d0, d0
    193 @ CHECK: error: instruction requires: FPARMv8
    194 
    195 	vrinta.f32 s0, s0
    196 @ CHECK: error: instruction requires: FPARMv8
    197 	vrinta.f64 d0, d0
    198 @ CHECK: error: instruction requires: FPARMv8
    199 	vrinta.f32.f32 s0, s0
    200 @ CHECK: error: instruction requires: FPARMv8
    201 	vrinta.f64.f64 d0, d0
    202 @ CHECK: error: instruction requires: FPARMv8
    203 	vrintn.f32 s0, s0
    204 @ CHECK: error: instruction requires: FPARMv8
    205 	vrintn.f64 d0, d0
    206 @ CHECK: error: instruction requires: FPARMv8
    207 	vrintn.f32.f32 s0, s0
    208 @ CHECK: error: instruction requires: FPARMv8
    209 	vrintn.f64.f64 d0, d0
    210 @ CHECK: error: instruction requires: FPARMv8
    211 	vrintp.f32 s0, s0
    212 @ CHECK: error: instruction requires: FPARMv8
    213 	vrintp.f64 d0, d0
    214 @ CHECK: error: instruction requires: FPARMv8
    215 	vrintp.f32.f32 s0, s0
    216 @ CHECK: error: instruction requires: FPARMv8
    217 	vrintp.f64.f64 d0, d0
    218 @ CHECK: error: instruction requires: FPARMv8
    219 	vrintm.f32 s0, s0
    220 @ CHECK: error: instruction requires: FPARMv8
    221 	vrintm.f64 d0, d0
    222 @ CHECK: error: instruction requires: FPARMv8
    223 	vrintm.f32.f32 s0, s0
    224 @ CHECK: error: instruction requires: FPARMv8
    225 	vrintm.f64.f64 d0, d0
    226 @ CHECK: error: instruction requires: FPARMv8
    227 
    228