Home | History | Annotate | Download | only in ARM
      1 @ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s \
      2 @ RUN: | FileCheck %s
      3 
      4 	vand	d16, d17, d16
      5 	vand	q8, q8, q9
      6 
      7 @ CHECK: vand	d16, d17, d16           @ encoding: [0xb0,0x01,0x41,0xf2]
      8 @ CHECK: vand	q8, q8, q9              @ encoding: [0xf2,0x01,0x40,0xf2]
      9 
     10 	veor	d16, d17, d16
     11 	veor	q8, q8, q9
     12 
     13 @ CHECK: veor	d16, d17, d16           @ encoding: [0xb0,0x01,0x41,0xf3]
     14 @ CHECK: veor	q8, q8, q9              @ encoding: [0xf2,0x01,0x40,0xf3]
     15 
     16 	vorr	d16, d17, d16
     17 	vorr	q8, q8, q9
     18 
     19 @ CHECK: vorr	d16, d17, d16           @ encoding: [0xb0,0x01,0x61,0xf2]
     20 @ CHECK: vorr	q8, q8, q9              @ encoding: [0xf2,0x01,0x60,0xf2]
     21 
     22 	vorr.i32	d16, #0x1000000
     23 	vorr.i32	q8, #0x1000000
     24 	vorr.i32	q8, #0x0
     25 
     26 @ CHECK: vorr.i32	d16, #0x1000000 @ encoding: [0x11,0x07,0xc0,0xf2]
     27 @ CHECK: vorr.i32	q8, #0x1000000  @ encoding: [0x51,0x07,0xc0,0xf2]
     28 @ CHECK: vorr.i32	q8, #0x0        @ encoding: [0x50,0x01,0xc0,0xf2]
     29 
     30 	vbic	d16, d17, d16
     31 	vbic	q8, q8, q9
     32 	vbic.i32	d16, #0xFF000000
     33 	vbic.i32	q8, #0xFF000000
     34         vbic q10, q11
     35         vbic d9, d1
     36 
     37 @ CHECK: vbic	d16, d17, d16           @ encoding: [0xb0,0x01,0x51,0xf2]
     38 @ CHECK: vbic	q8, q8, q9              @ encoding: [0xf2,0x01,0x50,0xf2]
     39 @ CHECK: vbic.i32	d16, #0xff000000 @ encoding: [0x3f,0x07,0xc7,0xf3]
     40 @ CHECK: vbic.i32	q8, #0xff000000 @ encoding: [0x7f,0x07,0xc7,0xf3]
     41 @ CHECK: vbic	q10, q10, q11           @ encoding: [0xf6,0x41,0x54,0xf2]
     42 @ CHECK: vbic	d9, d9, d1              @ encoding: [0x11,0x91,0x19,0xf2]
     43 
     44 
     45 	vorn	d16, d17, d16
     46 	vorn	q8, q8, q9
     47 
     48 @ CHECK: vorn	d16, d17, d16           @ encoding: [0xb0,0x01,0x71,0xf2]
     49 @ CHECK: vorn	q8, q8, q9              @ encoding: [0xf2,0x01,0x70,0xf2]
     50 
     51 	vmvn	d16, d16
     52 	vmvn	q8, q8
     53 
     54 @ CHECK: vmvn	d16, d16                @ encoding: [0xa0,0x05,0xf0,0xf3]
     55 @ CHECK: vmvn	q8, q8                  @ encoding: [0xe0,0x05,0xf0,0xf3]
     56 
     57 	vbsl	d18, d17, d16
     58 	vbsl	q8, q10, q9
     59 
     60 @ CHECK: vbsl	d18, d17, d16           @ encoding: [0xb0,0x21,0x51,0xf3]
     61 @ CHECK: vbsl	q8, q10, q9             @ encoding: [0xf2,0x01,0x54,0xf3]
     62 
     63 
     64 @ Size suffices are optional.
     65         veor q4, q7, q3
     66         veor.8 q4, q7, q3
     67         veor.16 q4, q7, q3
     68         veor.32 q4, q7, q3
     69         veor.64 q4, q7, q3
     70 
     71         veor.i8 q4, q7, q3
     72         veor.i16 q4, q7, q3
     73         veor.i32 q4, q7, q3
     74         veor.i64 q4, q7, q3
     75 
     76         veor.s8 q4, q7, q3
     77         veor.s16 q4, q7, q3
     78         veor.s32 q4, q7, q3
     79         veor.s64 q4, q7, q3
     80 
     81         veor.u8 q4, q7, q3
     82         veor.u16 q4, q7, q3
     83         veor.u32 q4, q7, q3
     84         veor.u64 q4, q7, q3
     85 
     86         veor.p8 q4, q7, q3
     87         veor.p16 q4, q7, q3
     88         veor.f32 q4, q7, q3
     89         veor.f64 q4, q7, q3
     90 
     91         veor.f q4, q7, q3
     92         veor.d q4, q7, q3
     93 
     94 @ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
     95 @ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
     96 @ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
     97 @ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
     98 @ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
     99 
    100 @ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
    101 @ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
    102 @ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
    103 @ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
    104 
    105 @ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
    106 @ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
    107 @ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
    108 @ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
    109 
    110 @ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
    111 @ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
    112 @ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
    113 @ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
    114 
    115 @ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
    116 @ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
    117 @ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
    118 @ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
    119 
    120 @ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
    121 @ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
    122 
    123 
    124         vand d4, d7, d3
    125         vand.8 d4, d7, d3
    126         vand.16 d4, d7, d3
    127         vand.32 d4, d7, d3
    128         vand.64 d4, d7, d3
    129 
    130         vand.i8 d4, d7, d3
    131         vand.i16 d4, d7, d3
    132         vand.i32 d4, d7, d3
    133         vand.i64 d4, d7, d3
    134 
    135         vand.s8 d4, d7, d3
    136         vand.s16 d4, d7, d3
    137         vand.s32 d4, d7, d3
    138         vand.s64 d4, d7, d3
    139 
    140         vand.u8 d4, d7, d3
    141         vand.u16 d4, d7, d3
    142         vand.u32 d4, d7, d3
    143         vand.u64 d4, d7, d3
    144 
    145         vand.p8 d4, d7, d3
    146         vand.p16 d4, d7, d3
    147         vand.f32 d4, d7, d3
    148         vand.f64 d4, d7, d3
    149 
    150         vand.f d4, d7, d3
    151         vand.d d4, d7, d3
    152 
    153 @ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
    154 @ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
    155 @ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
    156 @ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
    157 @ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
    158 
    159 @ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
    160 @ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
    161 @ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
    162 @ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
    163 
    164 @ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
    165 @ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
    166 @ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
    167 @ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
    168 
    169 @ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
    170 @ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
    171 @ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
    172 @ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
    173 
    174 @ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
    175 @ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
    176 @ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
    177 @ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
    178 
    179 @ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
    180 @ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
    181 
    182         vorr d4, d7, d3
    183         vorr.8 d4, d7, d3
    184         vorr.16 d4, d7, d3
    185         vorr.32 d4, d7, d3
    186         vorr.64 d4, d7, d3
    187 
    188         vorr.i8 d4, d7, d3
    189         vorr.i16 d4, d7, d3
    190         vorr.i32 d4, d7, d3
    191         vorr.i64 d4, d7, d3
    192 
    193         vorr.s8 d4, d7, d3
    194         vorr.s16 d4, d7, d3
    195         vorr.s32 q4, q7, q3
    196         vorr.s64 q4, q7, q3
    197 
    198         vorr.u8 q4, q7, q3
    199         vorr.u16 q4, q7, q3
    200         vorr.u32 q4, q7, q3
    201         vorr.u64 q4, q7, q3
    202 
    203         vorr.p8 q4, q7, q3
    204         vorr.p16 q4, q7, q3
    205         vorr.f32 q4, q7, q3
    206         vorr.f64 q4, q7, q3
    207 
    208         vorr.f q4, q7, q3
    209         vorr.d q4, q7, q3
    210 
    211 @ CHECK: vorr	d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
    212 @ CHECK: vorr	d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
    213 @ CHECK: vorr	d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
    214 @ CHECK: vorr	d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
    215 @ CHECK: vorr	d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
    216 
    217 @ CHECK: vorr	d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
    218 @ CHECK: vorr	d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
    219 @ CHECK: vorr	d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
    220 @ CHECK: vorr	d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
    221 
    222 @ CHECK: vorr	d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
    223 @ CHECK: vorr	d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
    224 @ CHECK: vorr	q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
    225 @ CHECK: vorr	q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
    226 
    227 @ CHECK: vorr	q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
    228 @ CHECK: vorr	q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
    229 @ CHECK: vorr	q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
    230 @ CHECK: vorr	q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
    231 
    232 @ CHECK: vorr	q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
    233 @ CHECK: vorr	q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
    234 @ CHECK: vorr	q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
    235 @ CHECK: vorr	q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
    236 
    237 @ CHECK: vorr	q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
    238 @ CHECK: vorr	q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
    239 
    240 @ Two-operand aliases
    241 	vand  q6, q5
    242 	vand.s8  q6, q5
    243 	vand.s16 q7, q1
    244 	vand.s32 q8, q2
    245 	vand.f64 q8, q2
    246 
    247 	veor   q6, q5
    248 	veor.8   q6, q5
    249 	veor.p16 q7, q1
    250 	veor.u32 q8, q2
    251 	veor.d   q8, q2
    252 
    253 	veor  q6, q5
    254 	veor.i8  q6, q5
    255 	veor.16  q7, q1
    256 	veor.f   q8, q2
    257 	veor.i64 q8, q2
    258 
    259 	vclt.s16 q5, #0
    260 	vclt.s16 d5, #0
    261 
    262 	vceq.s16 q5, q3
    263 	vceq.s16 d5, d3
    264 
    265 	vcgt.s16 q5, q3
    266 	vcgt.s16 d5, d3
    267 
    268 	vcge.s16 q5, q3
    269 	vcge.s16 d5, d3
    270 
    271 	vcgt.s16 q5, #0
    272 	vcgt.s16 d5, #0
    273 
    274 	vcge.s16 q5, #0
    275 	vcge.s16 d5, #0
    276 
    277 	vceq.s16 q5, #0
    278 	vceq.s16 d5, #0
    279 
    280 	vcle.s16 q5, #0
    281 	vcle.s16 d5, #0
    282 
    283 	vacge.f32 d5, d30
    284 	vacge.f32 q5, q3
    285 
    286 	vacgt.f32 d5, d30
    287 	vacgt.f32 q5, q3
    288 
    289 @ FIXME: We don't have an alias that reverses the operands
    290 @  vacle.f32 d5, d30
    291 @  vacle.f32 q5, q3
    292 @  vaclt.f32 d5, d30
    293 @  vaclt.f32 q5, q3
    294 
    295 @ CHECK: vand	q6, q6, q5              @ encoding: [0x5a,0xc1,0x0c,0xf2]
    296 @ CHECK: vand	q6, q6, q5              @ encoding: [0x5a,0xc1,0x0c,0xf2]
    297 @ CHECK: vand	q7, q7, q1              @ encoding: [0x52,0xe1,0x0e,0xf2]
    298 @ CHECK: vand	q8, q8, q2              @ encoding: [0xd4,0x01,0x40,0xf2]
    299 @ CHECK: vand	q8, q8, q2              @ encoding: [0xd4,0x01,0x40,0xf2]
    300 
    301 @ CHECK: veor	q6, q6, q5              @ encoding: [0x5a,0xc1,0x0c,0xf3]
    302 @ CHECK: veor	q6, q6, q5              @ encoding: [0x5a,0xc1,0x0c,0xf3]
    303 @ CHECK: veor	q7, q7, q1              @ encoding: [0x52,0xe1,0x0e,0xf3]
    304 @ CHECK: veor	q8, q8, q2              @ encoding: [0xd4,0x01,0x40,0xf3]
    305 @ CHECK: veor	q8, q8, q2              @ encoding: [0xd4,0x01,0x40,0xf3]
    306 
    307 @ CHECK: veor	q6, q6, q5              @ encoding: [0x5a,0xc1,0x0c,0xf3]
    308 @ CHECK: veor	q6, q6, q5              @ encoding: [0x5a,0xc1,0x0c,0xf3]
    309 @ CHECK: veor	q7, q7, q1              @ encoding: [0x52,0xe1,0x0e,0xf3]
    310 @ CHECK: veor	q8, q8, q2              @ encoding: [0xd4,0x01,0x40,0xf3]
    311 @ CHECK: veor	q8, q8, q2              @ encoding: [0xd4,0x01,0x40,0xf3]
    312 @ CHECK: vclt.s16        q5, q5, #0      @ encoding: [0x4a,0xa2,0xb5,0xf3]
    313 @ CHECK: vclt.s16        d5, d5, #0      @ encoding: [0x05,0x52,0xb5,0xf3]
    314 
    315 @ CHECK: vceq.i16        q5, q5, q3      @ encoding: [0x56,0xa8,0x1a,0xf3]
    316 @ CHECK: vceq.i16        d5, d5, d3      @ encoding: [0x13,0x58,0x15,0xf3]
    317 
    318 @ CHECK: vcgt.s16        q5, q5, q3      @ encoding: [0x46,0xa3,0x1a,0xf2]
    319 @ CHECK: vcgt.s16        d5, d5, d3      @ encoding: [0x03,0x53,0x15,0xf2]
    320 
    321 @ CHECK: vcge.s16        q5, q5, q3      @ encoding: [0x56,0xa3,0x1a,0xf2]
    322 @ CHECK: vcge.s16        d5, d5, d3      @ encoding: [0x13,0x53,0x15,0xf2]
    323 
    324 @ CHECK: vcgt.s16        q5, q5, #0      @ encoding: [0x4a,0xa0,0xb5,0xf3]
    325 @ CHECK: vcgt.s16        d5, d5, #0      @ encoding: [0x05,0x50,0xb5,0xf3]
    326 
    327 @ CHECK: vcge.s16        q5, q5, #0      @ encoding: [0xca,0xa0,0xb5,0xf3]
    328 @ CHECK: vcge.s16        d5, d5, #0      @ encoding: [0x85,0x50,0xb5,0xf3]
    329 
    330 @ CHECK: vceq.i16        q5, q5, #0      @ encoding: [0x4a,0xa1,0xb5,0xf3]
    331 @ CHECK: vceq.i16        d5, d5, #0      @ encoding: [0x05,0x51,0xb5,0xf3]
    332 
    333 @ CHECK: vcle.s16        q5, q5, #0      @ encoding: [0xca,0xa1,0xb5,0xf3]
    334 @ CHECK: vcle.s16        d5, d5, #0      @ encoding: [0x85,0x51,0xb5,0xf3]
    335 
    336 @ CHECK: vacge.f32       d5, d5, d30     @ encoding: [0x3e,0x5e,0x05,0xf3]
    337 @ CHECK: vacge.f32       q5, q5, q3      @ encoding: [0x56,0xae,0x0a,0xf3]
    338 
    339 @ CHECK: vacgt.f32       d5, d5, d30     @ encoding: [0x3e,0x5e,0x25,0xf3]
    340 @ CHECK: vacgt.f32       q5, q5, q3      @ encoding: [0x56,0xae,0x2a,0xf3]
    341