Home | History | Annotate | Download | only in R600
      1 // RUN: llvm-mc -arch=amdgcn -show-encoding %s | FileCheck %s
      2 // RUN: llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s | FileCheck %s
      3 
      4 s_mov_b32 s1, s2
      5 // CHECK: s_mov_b32 s1, s2 ; encoding: [0x02,0x03,0x81,0xbe]
      6 
      7 s_mov_b32 s1, 1
      8 // CHECK: s_mov_b32 s1, 1 ; encoding: [0x81,0x03,0x81,0xbe]
      9 
     10 s_mov_b32 s1, 100
     11 // CHECK: s_mov_b32 s1, 0x64 ; encoding: [0xff,0x03,0x81,0xbe,0x64,0x00,0x00,0x00]
     12 
     13 s_mov_b64 s[2:3], s[4:5]
     14 // CHECK: s_mov_b64 s[2:3], s[4:5] ; encoding: [0x04,0x04,0x82,0xbe]
     15 
     16 s_mov_b64 s[2:3], 0xffffffffffffffff
     17 // CHECK: s_mov_b64 s[2:3], -1 ; encoding: [0xc1,0x04,0x82,0xbe]
     18 
     19 s_cmov_b32 s1, 200
     20 // CHECK: s_cmov_b32 s1, 0xc8 ; encoding: [0xff,0x05,0x81,0xbe,0xc8,0x00,0x00,0x00]
     21 
     22 s_cmov_b32 s1, 1.0
     23 // CHECK: s_cmov_b32 s1, 1.0 ; encoding: [0xf2,0x05,0x81,0xbe]
     24 
     25 //s_cmov_b64 s[2:3], 1.0
     26 //CHECK-FIXME: s_cmov_b64 s[2:3], 1.0 ; encoding: [0xf2,0x05,0x82,0xb3]
     27 
     28 //===----------------------------------------------------------------------===//
     29 // Instructions
     30 //===----------------------------------------------------------------------===//
     31 
     32 s_mov_b32 s1, s2
     33 // CHECK: s_mov_b32 s1, s2 ; encoding: [0x02,0x03,0x81,0xbe]
     34 
     35 s_mov_b64 s[2:3], s[4:5]
     36 // CHECK: s_mov_b64 s[2:3], s[4:5] ; encoding: [0x04,0x04,0x82,0xbe]
     37 
     38 s_cmov_b32 s1, s2
     39 // CHECK: s_cmov_b32 s1, s2 ; encoding: [0x02,0x05,0x81,0xbe]
     40 
     41 s_cmov_b64 s[2:3], s[4:5]
     42 // CHECK: s_cmov_b64 s[2:3], s[4:5] ; encoding: [0x04,0x06,0x82,0xbe]
     43 
     44 s_not_b32 s1, s2
     45 // CHECK: s_not_b32 s1, s2 ; encoding: [0x02,0x07,0x81,0xbe]
     46 
     47 s_not_b64 s[2:3], s[4:5]
     48 // CHECK: s_not_b64 s[2:3], s[4:5] ; encoding: [0x04,0x08,0x82,0xbe]
     49 
     50 s_wqm_b32 s1, s2
     51 // CHECK: s_wqm_b32 s1, s2 ; encoding: [0x02,0x09,0x81,0xbe]
     52 
     53 s_wqm_b64 s[2:3], s[4:5]
     54 // CHECK: s_wqm_b64 s[2:3], s[4:5] ; encoding: [0x04,0x0a,0x82,0xbe]
     55 
     56 s_brev_b32 s1, s2
     57 // CHECK: s_brev_b32 s1, s2 ; encoding: [0x02,0x0b,0x81,0xbe]
     58 
     59 s_brev_b64 s[2:3], s[4:5]
     60 // CHECK: s_brev_b64 s[2:3], s[4:5] ; encoding: [0x04,0x0c,0x82,0xbe]
     61 
     62 s_bcnt0_i32_b32 s1, s2
     63 // CHECK: s_bcnt0_i32_b32 s1, s2 ; encoding: [0x02,0x0d,0x81,0xbe]
     64 
     65 s_bcnt0_i32_b64 s1, s[2:3]
     66 // CHECK: s_bcnt0_i32_b64 s1, s[2:3] ; encoding: [0x02,0x0e,0x81,0xbe]
     67 
     68 s_bcnt1_i32_b32 s1, s2
     69 // CHECK: s_bcnt1_i32_b32 s1, s2 ; encoding: [0x02,0x0f,0x81,0xbe]
     70 
     71 s_bcnt1_i32_b64 s1, s[2:3]
     72 // CHECK: s_bcnt1_i32_b64 s1, s[2:3] ; encoding: [0x02,0x10,0x81,0xbe]
     73 
     74 s_ff0_i32_b32 s1, s2
     75 // CHECK: s_ff0_i32_b32 s1, s2 ; encoding: [0x02,0x11,0x81,0xbe]
     76 
     77 s_ff0_i32_b64 s1, s[2:3]
     78 // CHECK: s_ff0_i32_b64 s1, s[2:3] ; encoding: [0x02,0x12,0x81,0xbe]
     79 
     80 s_ff1_i32_b32 s1, s2
     81 // CHECK: s_ff1_i32_b32 s1, s2 ; encoding: [0x02,0x13,0x81,0xbe]
     82 
     83 s_ff1_i32_b64 s1, s[2:3]
     84 // CHECK: s_ff1_i32_b64 s1, s[2:3] ; encoding: [0x02,0x14,0x81,0xbe]
     85 
     86 s_flbit_i32_b32 s1, s2
     87 // CHECK: s_flbit_i32_b32 s1, s2 ; encoding: [0x02,0x15,0x81,0xbe]
     88 
     89 s_flbit_i32_b64 s1, s[2:3]
     90 // CHECK: s_flbit_i32_b64 s1, s[2:3] ; encoding: [0x02,0x16,0x81,0xbe]
     91 
     92 s_flbit_i32 s1, s2
     93 // CHECK: s_flbit_i32 s1, s2 ; encoding: [0x02,0x17,0x81,0xbe]
     94 
     95 s_flbit_i32_i64 s1, s[2:3]
     96 // CHECK: s_flbit_i32_i64 s1, s[2:3] ; encoding: [0x02,0x18,0x81,0xbe]
     97 
     98 s_sext_i32_i8 s1, s2
     99 // CHECK: s_sext_i32_i8 s1, s2 ; encoding: [0x02,0x19,0x81,0xbe]
    100 
    101 s_sext_i32_i16 s1, s2
    102 // CHECK: s_sext_i32_i16 s1, s2 ; encoding: [0x02,0x1a,0x81,0xbe]
    103 
    104 s_bitset0_b32 s1, s2
    105 // CHECK: s_bitset0_b32 s1, s2 ; encoding: [0x02,0x1b,0x81,0xbe]
    106 
    107 s_bitset0_b64 s[2:3], s[4:5]
    108 // CHECK: s_bitset0_b64 s[2:3], s[4:5] ; encoding: [0x04,0x1c,0x82,0xbe]
    109 
    110 s_bitset1_b32 s1, s2
    111 // CHECK: s_bitset1_b32 s1, s2 ; encoding: [0x02,0x1d,0x81,0xbe]
    112 
    113 s_bitset1_b64 s[2:3], s[4:5]
    114 // CHECK: s_bitset1_b64 s[2:3], s[4:5] ; encoding: [0x04,0x1e,0x82,0xbe]
    115 
    116 s_getpc_b64 s[2:3]
    117 // CHECK: s_getpc_b64 s[2:3] ; encoding: [0x00,0x1f,0x82,0xbe]
    118 
    119 s_setpc_b64 s[2:3], s[4:5]
    120 // CHECK: s_setpc_b64 s[2:3], s[4:5] ; encoding: [0x04,0x20,0x82,0xbe]
    121 
    122 s_swappc_b64 s[2:3], s[4:5]
    123 // CHECK: s_swappc_b64 s[2:3], s[4:5] ; encoding: [0x04,0x21,0x82,0xbe]
    124 
    125 s_rfe_b64 s[2:3], s[4:5]
    126 // CHECK: s_rfe_b64 s[2:3], s[4:5] ; encoding: [0x04,0x22,0x82,0xbe]
    127 
    128 s_and_saveexec_b64 s[2:3], s[4:5]
    129 // CHECK: s_and_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x24,0x82,0xbe]
    130 
    131 s_or_saveexec_b64 s[2:3], s[4:5]
    132 // CHECK: s_or_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x25,0x82,0xbe]
    133 
    134 s_xor_saveexec_b64 s[2:3], s[4:5]
    135 // CHECK: s_xor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x26,0x82,0xbe]
    136 
    137 s_andn2_saveexec_b64 s[2:3], s[4:5]
    138 // CHECK: s_andn2_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x27,0x82,0xbe]
    139 
    140 s_orn2_saveexec_b64 s[2:3], s[4:5]
    141 // CHECK: s_orn2_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x28,0x82,0xbe]
    142 
    143 s_nand_saveexec_b64 s[2:3], s[4:5]
    144 // CHECK: s_nand_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x29,0x82,0xbe]
    145 
    146 s_nor_saveexec_b64 s[2:3], s[4:5]
    147 // CHECK: s_nor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2a,0x82,0xbe]
    148 
    149 s_xnor_saveexec_b64 s[2:3], s[4:5]
    150 // CHECK: s_xnor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2b,0x82,0xbe]
    151 
    152 s_quadmask_b32 s1, s2
    153 // CHECK: s_quadmask_b32 s1, s2 ; encoding: [0x02,0x2c,0x81,0xbe]
    154 
    155 s_quadmask_b64 s[2:3], s[4:5]
    156 // CHECK: s_quadmask_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2d,0x82,0xbe]
    157 
    158 s_movrels_b32 s1, s2
    159 // CHECK: s_movrels_b32 s1, s2 ; encoding: [0x02,0x2e,0x81,0xbe]
    160 
    161 s_movrels_b64 s[2:3], s[4:5]
    162 // CHECK: s_movrels_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2f,0x82,0xbe]
    163 
    164 s_movreld_b32 s1, s2
    165 // CHECK: s_movreld_b32 s1, s2 ; encoding: [0x02,0x30,0x81,0xbe]
    166 
    167 s_movreld_b64 s[2:3], s[4:5]
    168 // CHECK: s_movreld_b64 s[2:3], s[4:5] ; encoding: [0x04,0x31,0x82,0xbe]
    169 
    170 s_cbranch_join s[4:5]
    171 // CHECK: s_cbranch_join s[4:5] ; encoding: [0x04,0x32,0x80,0xbe]
    172 
    173 s_abs_i32 s1, s2
    174 // CHECK: s_abs_i32 s1, s2 ; encoding: [0x02,0x34,0x81,0xbe]
    175 
    176 s_mov_fed_b32 s1, s2
    177 // CHECK: s_mov_fed_b32 s1, s2 ; encoding: [0x02,0x35,0x81,0xbe]
    178