R600/SI: Initial support for assembler and inline assembly
[oota-llvm.git] / test / MC / R600 / sop1.s
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]