Home | History | Annotate | Download | only in SVE
      1 // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve < %s \
      2 // RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
      3 // RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \
      4 // RUN:        | FileCheck %s --check-prefix=CHECK-ERROR
      5 // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve < %s \
      6 // RUN:        | llvm-objdump -d -mattr=+sve - | FileCheck %s --check-prefix=CHECK-INST
      7 // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve < %s \
      8 // RUN:        | llvm-objdump -d - | FileCheck %s --check-prefix=CHECK-UNKNOWN
      9 
     10 
     11 // ---------------------------------------------------------------------------//
     12 // Test 64-bit form (x0) and its aliases
     13 // ---------------------------------------------------------------------------//
     14 uqdecb  x0
     15 // CHECK-INST: uqdecb  x0
     16 // CHECK-ENCODING: [0xe0,0xff,0x30,0x04]
     17 // CHECK-ERROR: instruction requires: sve
     18 // CHECK-UNKNOWN: e0 ff 30 04 <unknown>
     19 
     20 uqdecb  x0, all
     21 // CHECK-INST: uqdecb  x0
     22 // CHECK-ENCODING: [0xe0,0xff,0x30,0x04]
     23 // CHECK-ERROR: instruction requires: sve
     24 // CHECK-UNKNOWN: e0 ff 30 04 <unknown>
     25 
     26 uqdecb  x0, all, mul #1
     27 // CHECK-INST: uqdecb  x0
     28 // CHECK-ENCODING: [0xe0,0xff,0x30,0x04]
     29 // CHECK-ERROR: instruction requires: sve
     30 // CHECK-UNKNOWN: e0 ff 30 04 <unknown>
     31 
     32 uqdecb  x0, all, mul #16
     33 // CHECK-INST: uqdecb  x0, all, mul #16
     34 // CHECK-ENCODING: [0xe0,0xff,0x3f,0x04]
     35 // CHECK-ERROR: instruction requires: sve
     36 // CHECK-UNKNOWN: e0 ff 3f 04 <unknown>
     37 
     38 
     39 // ---------------------------------------------------------------------------//
     40 // Test 32-bit form (w0) and its aliases
     41 // ---------------------------------------------------------------------------//
     42 
     43 uqdecb  w0
     44 // CHECK-INST: uqdecb  w0
     45 // CHECK-ENCODING: [0xe0,0xff,0x20,0x04]
     46 // CHECK-ERROR: instruction requires: sve
     47 // CHECK-UNKNOWN: e0 ff 20 04 <unknown>
     48 
     49 uqdecb  w0, all
     50 // CHECK-INST: uqdecb  w0
     51 // CHECK-ENCODING: [0xe0,0xff,0x20,0x04]
     52 // CHECK-ERROR: instruction requires: sve
     53 // CHECK-UNKNOWN: e0 ff 20 04 <unknown>
     54 
     55 uqdecb  w0, all, mul #1
     56 // CHECK-INST: uqdecb  w0
     57 // CHECK-ENCODING: [0xe0,0xff,0x20,0x04]
     58 // CHECK-ERROR: instruction requires: sve
     59 // CHECK-UNKNOWN: e0 ff 20 04 <unknown>
     60 
     61 uqdecb  w0, all, mul #16
     62 // CHECK-INST: uqdecb  w0, all, mul #16
     63 // CHECK-ENCODING: [0xe0,0xff,0x2f,0x04]
     64 // CHECK-ERROR: instruction requires: sve
     65 // CHECK-UNKNOWN: e0 ff 2f 04 <unknown>
     66 
     67 uqdecb  w0, pow2
     68 // CHECK-INST: uqdecb  w0, pow2
     69 // CHECK-ENCODING: [0x00,0xfc,0x20,0x04]
     70 // CHECK-ERROR: instruction requires: sve
     71 // CHECK-UNKNOWN: 00 fc 20 04 <unknown>
     72 
     73 uqdecb  w0, pow2, mul #16
     74 // CHECK-INST: uqdecb  w0, pow2, mul #16
     75 // CHECK-ENCODING: [0x00,0xfc,0x2f,0x04]
     76 // CHECK-ERROR: instruction requires: sve
     77 // CHECK-UNKNOWN: 00 fc 2f 04 <unknown>
     78 
     79 
     80 // ---------------------------------------------------------------------------//
     81 // Test all patterns for 64-bit form
     82 // ---------------------------------------------------------------------------//
     83 
     84 uqdecb  x0, pow2
     85 // CHECK-INST: uqdecb  x0, pow2
     86 // CHECK-ENCODING: [0x00,0xfc,0x30,0x04]
     87 // CHECK-ERROR: instruction requires: sve
     88 // CHECK-UNKNOWN: 00 fc 30 04 <unknown>
     89 
     90 uqdecb  x0, vl1
     91 // CHECK-INST: uqdecb  x0, vl1
     92 // CHECK-ENCODING: [0x20,0xfc,0x30,0x04]
     93 // CHECK-ERROR: instruction requires: sve
     94 // CHECK-UNKNOWN: 20 fc 30 04 <unknown>
     95 
     96 uqdecb  x0, vl2
     97 // CHECK-INST: uqdecb  x0, vl2
     98 // CHECK-ENCODING: [0x40,0xfc,0x30,0x04]
     99 // CHECK-ERROR: instruction requires: sve
    100 // CHECK-UNKNOWN: 40 fc 30 04 <unknown>
    101 
    102 uqdecb  x0, vl3
    103 // CHECK-INST: uqdecb  x0, vl3
    104 // CHECK-ENCODING: [0x60,0xfc,0x30,0x04]
    105 // CHECK-ERROR: instruction requires: sve
    106 // CHECK-UNKNOWN: 60 fc 30 04 <unknown>
    107 
    108 uqdecb  x0, vl4
    109 // CHECK-INST: uqdecb  x0, vl4
    110 // CHECK-ENCODING: [0x80,0xfc,0x30,0x04]
    111 // CHECK-ERROR: instruction requires: sve
    112 // CHECK-UNKNOWN: 80 fc 30 04 <unknown>
    113 
    114 uqdecb  x0, vl5
    115 // CHECK-INST: uqdecb  x0, vl5
    116 // CHECK-ENCODING: [0xa0,0xfc,0x30,0x04]
    117 // CHECK-ERROR: instruction requires: sve
    118 // CHECK-UNKNOWN: a0 fc 30 04 <unknown>
    119 
    120 uqdecb  x0, vl6
    121 // CHECK-INST: uqdecb  x0, vl6
    122 // CHECK-ENCODING: [0xc0,0xfc,0x30,0x04]
    123 // CHECK-ERROR: instruction requires: sve
    124 // CHECK-UNKNOWN: c0 fc 30 04 <unknown>
    125 
    126 uqdecb  x0, vl7
    127 // CHECK-INST: uqdecb  x0, vl7
    128 // CHECK-ENCODING: [0xe0,0xfc,0x30,0x04]
    129 // CHECK-ERROR: instruction requires: sve
    130 // CHECK-UNKNOWN: e0 fc 30 04 <unknown>
    131 
    132 uqdecb  x0, vl8
    133 // CHECK-INST: uqdecb  x0, vl8
    134 // CHECK-ENCODING: [0x00,0xfd,0x30,0x04]
    135 // CHECK-ERROR: instruction requires: sve
    136 // CHECK-UNKNOWN: 00 fd 30 04 <unknown>
    137 
    138 uqdecb  x0, vl16
    139 // CHECK-INST: uqdecb  x0, vl16
    140 // CHECK-ENCODING: [0x20,0xfd,0x30,0x04]
    141 // CHECK-ERROR: instruction requires: sve
    142 // CHECK-UNKNOWN: 20 fd 30 04 <unknown>
    143 
    144 uqdecb  x0, vl32
    145 // CHECK-INST: uqdecb  x0, vl32
    146 // CHECK-ENCODING: [0x40,0xfd,0x30,0x04]
    147 // CHECK-ERROR: instruction requires: sve
    148 // CHECK-UNKNOWN: 40 fd 30 04 <unknown>
    149 
    150 uqdecb  x0, vl64
    151 // CHECK-INST: uqdecb  x0, vl64
    152 // CHECK-ENCODING: [0x60,0xfd,0x30,0x04]
    153 // CHECK-ERROR: instruction requires: sve
    154 // CHECK-UNKNOWN: 60 fd 30 04 <unknown>
    155 
    156 uqdecb  x0, vl128
    157 // CHECK-INST: uqdecb  x0, vl128
    158 // CHECK-ENCODING: [0x80,0xfd,0x30,0x04]
    159 // CHECK-ERROR: instruction requires: sve
    160 // CHECK-UNKNOWN: 80 fd 30 04 <unknown>
    161 
    162 uqdecb  x0, vl256
    163 // CHECK-INST: uqdecb  x0, vl256
    164 // CHECK-ENCODING: [0xa0,0xfd,0x30,0x04]
    165 // CHECK-ERROR: instruction requires: sve
    166 // CHECK-UNKNOWN: a0 fd 30 04 <unknown>
    167 
    168 uqdecb  x0, #14
    169 // CHECK-INST: uqdecb  x0, #14
    170 // CHECK-ENCODING: [0xc0,0xfd,0x30,0x04]
    171 // CHECK-ERROR: instruction requires: sve
    172 // CHECK-UNKNOWN: c0 fd 30 04 <unknown>
    173 
    174 uqdecb  x0, #15
    175 // CHECK-INST: uqdecb  x0, #15
    176 // CHECK-ENCODING: [0xe0,0xfd,0x30,0x04]
    177 // CHECK-ERROR: instruction requires: sve
    178 // CHECK-UNKNOWN: e0 fd 30 04 <unknown>
    179 
    180 uqdecb  x0, #16
    181 // CHECK-INST: uqdecb  x0, #16
    182 // CHECK-ENCODING: [0x00,0xfe,0x30,0x04]
    183 // CHECK-ERROR: instruction requires: sve
    184 // CHECK-UNKNOWN: 00 fe 30 04 <unknown>
    185 
    186 uqdecb  x0, #17
    187 // CHECK-INST: uqdecb  x0, #17
    188 // CHECK-ENCODING: [0x20,0xfe,0x30,0x04]
    189 // CHECK-ERROR: instruction requires: sve
    190 // CHECK-UNKNOWN: 20 fe 30 04 <unknown>
    191 
    192 uqdecb  x0, #18
    193 // CHECK-INST: uqdecb  x0, #18
    194 // CHECK-ENCODING: [0x40,0xfe,0x30,0x04]
    195 // CHECK-ERROR: instruction requires: sve
    196 // CHECK-UNKNOWN: 40 fe 30 04 <unknown>
    197 
    198 uqdecb  x0, #19
    199 // CHECK-INST: uqdecb  x0, #19
    200 // CHECK-ENCODING: [0x60,0xfe,0x30,0x04]
    201 // CHECK-ERROR: instruction requires: sve
    202 // CHECK-UNKNOWN: 60 fe 30 04 <unknown>
    203 
    204 uqdecb  x0, #20
    205 // CHECK-INST: uqdecb  x0, #20
    206 // CHECK-ENCODING: [0x80,0xfe,0x30,0x04]
    207 // CHECK-ERROR: instruction requires: sve
    208 // CHECK-UNKNOWN: 80 fe 30 04 <unknown>
    209 
    210 uqdecb  x0, #21
    211 // CHECK-INST: uqdecb  x0, #21
    212 // CHECK-ENCODING: [0xa0,0xfe,0x30,0x04]
    213 // CHECK-ERROR: instruction requires: sve
    214 // CHECK-UNKNOWN: a0 fe 30 04 <unknown>
    215 
    216 uqdecb  x0, #22
    217 // CHECK-INST: uqdecb  x0, #22
    218 // CHECK-ENCODING: [0xc0,0xfe,0x30,0x04]
    219 // CHECK-ERROR: instruction requires: sve
    220 // CHECK-UNKNOWN: c0 fe 30 04 <unknown>
    221 
    222 uqdecb  x0, #23
    223 // CHECK-INST: uqdecb  x0, #23
    224 // CHECK-ENCODING: [0xe0,0xfe,0x30,0x04]
    225 // CHECK-ERROR: instruction requires: sve
    226 // CHECK-UNKNOWN: e0 fe 30 04 <unknown>
    227 
    228 uqdecb  x0, #24
    229 // CHECK-INST: uqdecb  x0, #24
    230 // CHECK-ENCODING: [0x00,0xff,0x30,0x04]
    231 // CHECK-ERROR: instruction requires: sve
    232 // CHECK-UNKNOWN: 00 ff 30 04 <unknown>
    233 
    234 uqdecb  x0, #25
    235 // CHECK-INST: uqdecb  x0, #25
    236 // CHECK-ENCODING: [0x20,0xff,0x30,0x04]
    237 // CHECK-ERROR: instruction requires: sve
    238 // CHECK-UNKNOWN: 20 ff 30 04 <unknown>
    239 
    240 uqdecb  x0, #26
    241 // CHECK-INST: uqdecb  x0, #26
    242 // CHECK-ENCODING: [0x40,0xff,0x30,0x04]
    243 // CHECK-ERROR: instruction requires: sve
    244 // CHECK-UNKNOWN: 40 ff 30 04 <unknown>
    245 
    246 uqdecb  x0, #27
    247 // CHECK-INST: uqdecb  x0, #27
    248 // CHECK-ENCODING: [0x60,0xff,0x30,0x04]
    249 // CHECK-ERROR: instruction requires: sve
    250 // CHECK-UNKNOWN: 60 ff 30 04 <unknown>
    251 
    252 uqdecb  x0, #28
    253 // CHECK-INST: uqdecb  x0, #28
    254 // CHECK-ENCODING: [0x80,0xff,0x30,0x04]
    255 // CHECK-ERROR: instruction requires: sve
    256 // CHECK-UNKNOWN: 80 ff 30 04 <unknown>
    257