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
      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
     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-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