[DAGCombiner] Add target hook function to decide folding (mul (add x, c1), c2)
[llvm-project.git] / llvm / test / MC / AMDGPU / sopp-err.s
blob928a39bddf7b6e5c4f81e3b964c52905c3f4a20d
1 // RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck --check-prefixes=GCN,SICI --implicit-check-not=error: %s
2 // RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck --check-prefixes=GCN,SICI --implicit-check-not=error: %s
3 // RUN: not llvm-mc -arch=amdgcn -mcpu=fiji %s 2>&1 | FileCheck --check-prefixes=GCN,VI --implicit-check-not=error: %s
4 // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 %s 2>&1 | FileCheck --check-prefixes=GCN,GFX10 --implicit-check-not=error: %s
6 //===----------------------------------------------------------------------===//
7 // sendmsg
8 //===----------------------------------------------------------------------===//
10 s_sendmsg sendmsg(MSG_INTERRUPTX)
11 // GCN: error: expected a message name or an absolute expression
13 s_sendmsg sendmsg(1 -)
14 // GCN: error: unknown token in expression
16 s_sendmsg sendmsg(MSG_INTERRUPT, 0)
17 // GCN: error: message does not support operations
19 s_sendmsg sendmsg(MSG_INTERRUPT, 0, 0)
20 // GCN: error: message does not support operations
22 s_sendmsg sendmsg(MSG_GS)
23 // GCN: error: missing message operation
25 s_sendmsg sendmsg(MSG_GS, GS_OP_NOP)
26 // GCN: error: invalid operation id
28 s_sendmsg sendmsg(MSG_GS, SYSMSG_OP_ECC_ERR_INTERRUPT)
29 // GCN: error: expected an operation name or an absolute expression
31 s_sendmsg sendmsg(MSG_GS, 0)
32 // GCN: error: invalid operation id
34 s_sendmsg sendmsg(MSG_GS, -1)
35 // GCN: error: invalid operation id
37 s_sendmsg sendmsg(MSG_GS, 4)
38 // GCN: error: invalid operation id
40 s_sendmsg sendmsg(MSG_GS, 8)
41 // GCN: error: invalid operation id
43 s_sendmsg sendmsg(15, -1)
44 // GCN: error: invalid operation id
46 s_sendmsg sendmsg(15, 8)
47 // GCN: error: invalid operation id
49 s_sendmsg sendmsg(MSG_GS, GS_OP_CUT, 0, 0)
50 // GCN: error: expected a closing parenthesis
52 s_sendmsg sendmsg(MSG_GSX, GS_OP_CUT, 0)
53 // GCN: error: expected a message name or an absolute expression
55 s_sendmsg sendmsg(MSG_GS, GS_OP_CUTX, 0)
56 // GCN: error: expected an operation name or an absolute expression
58 s_sendmsg sendmsg(MSG_GS, 1 -)
59 // GCN: error: unknown token in expression
61 s_sendmsg sendmsg(MSG_GS, GS_OP_CUT, 4)
62 // GCN: error: invalid message stream id
64 s_sendmsg sendmsg(MSG_GS, GS_OP_CUT, 1 -)
65 // GCN: error: unknown token in expression
67 s_sendmsg sendmsg(2, 3, 0, 0)
68 // GCN: error: expected a closing parenthesis
70 s_sendmsg sendmsg(2, 2, -1)
71 // GCN: error: invalid message stream id
73 s_sendmsg sendmsg(2, 2, 4)
74 // GCN: error: invalid message stream id
76 s_sendmsg sendmsg(2, 2, 0, 0)
77 // GCN: error: expected a closing parenthesis
79 s_sendmsg sendmsg(MSG_GS_DONE, GS_OP_NOP, 0)
80 // GCN: error: message operation does not support streams
82 s_sendmsg sendmsg(MSG_GS_DONE, 0, 0)
83 // GCN: error: message operation does not support streams
85 s_sendmsg sendmsg(MSG_SAVEWAVE)
86 // SICI: error: invalid message id
88 s_sendmsg sendmsg(MSG_STALL_WAVE_GEN)
89 // SICI: error: invalid message id
90 // VI: error: invalid message id
92 s_sendmsg sendmsg(MSG_HALT_WAVES)
93 // SICI: error: invalid message id
94 // VI: error: invalid message id
96 s_sendmsg sendmsg(MSG_ORDERED_PS_DONE)
97 // SICI: error: invalid message id
98 // VI: error: invalid message id
100 s_sendmsg sendmsg(MSG_EARLY_PRIM_DEALLOC)
101 // SICI: error: invalid message id
102 // VI: error: invalid message id
103 // GFX10: error: invalid message id
105 s_sendmsg sendmsg(MSG_GS_ALLOC_REQ)
106 // VI: error: invalid message id
107 // SICI: error: invalid message id
109 s_sendmsg sendmsg(MSG_GS_ALLOC_REQ, 0)
110 // VI: error: invalid message id
111 // SICI: error: invalid message id
112 // GFX10: error: message does not support operations
114 s_sendmsg sendmsg(MSG_GET_DOORBELL)
115 // SICI: error: invalid message id
116 // VI: error: invalid message id
118 s_sendmsg sendmsg(MSG_GET_DDID)
119 // SICI: error: invalid message id
120 // VI: error: invalid message id
122 s_sendmsg sendmsg(-1)
123 // VI: error: invalid message id
124 // SICI: error: invalid message id
125 // GFX10: error: invalid message id
127 s_sendmsg sendmsg(16)
128 // VI: error: invalid message id
129 // SICI: error: invalid message id
130 // GFX10: error: invalid message id
132 s_sendmsg sendmsg(MSG_SYSMSG)
133 // GCN: error: missing message operation
135 s_sendmsg sendmsg(MSG_SYSMSG, SYSMSG_OP_ECC_ERR_INTERRUPT, 0)
136 // GCN: error: message operation does not support streams
138 s_sendmsg sendmsg(MSG_SYSMSG, 0)
139 // GCN: error: invalid operation id
141 s_sendmsg sendmsg(MSG_SYSMSG, 5)
142 // GCN: error: invalid operation id
144 //===----------------------------------------------------------------------===//
145 // waitcnt
146 //===----------------------------------------------------------------------===//
148 s_waitcnt lgkmcnt(16)
149 // VI: error: too large value for lgkmcnt
150 // SICI: error: too large value for lgkmcnt
152 s_waitcnt lgkmcnt(64)
153 // GCN: error: too large value for lgkmcnt
155 s_waitcnt expcnt(8)
156 // GCN: error: too large value for expcnt
158 s_waitcnt vmcnt(16)
159 // VI: error: too large value for vmcnt
160 // SICI: error: too large value for vmcnt
162 s_waitcnt vmcnt(64)
163 // GFX10: error: too large value for vmcnt
164 // SICI: error: too large value for vmcnt
165 // VI: error: too large value for vmcnt
167 s_waitcnt vmcnt(0xFFFFFFFFFFFF0000)
168 // GCN: error: too large value for vmcnt
170 s_waitcnt vmcnt(0), expcnt(0), lgkmcnt(0),
171 // GCN: error: expected a counter name
173 s_waitcnt vmcnt(0) & expcnt(0) & lgkmcnt(0)&
174 // GCN: error: expected a counter name
176 s_waitcnt vmcnt(0) & expcnt(0) & x
177 // GCN: error: expected a left parenthesis
179 s_waitcnt vmcnt(0) & expcnt(0) x
180 // GCN: error: expected a left parenthesis
182 s_waitcnt vmcnt(0) & expcnt(0) & 1
183 // GCN: error: expected a counter name
185 s_waitcnt vmcnt(0) & expcnt(0) 1
186 // GCN: error: expected a counter name
188 s_waitcnt vmcnt(0) & expcnt(0) x(0)
189 // GCN: error: invalid counter name x
191 s_waitcnt vmcnt(x)
192 // GCN: error: expected absolute expression
194 s_waitcnt x
195 // GCN: error: expected absolute expression
197 s_waitcnt vmcnt(0
198 // GCN: error: expected a closing parenthesis
200 s_branch 0x80000000ffff
201 // GCN: error: expected a 16-bit signed jump offset
203 s_branch 0x10000
204 // GCN: error: expected a 16-bit signed jump offset
206 s_branch -32769
207 // GCN: error: expected a 16-bit signed jump offset
209 s_branch 1.0
210 // GCN: error: expected a 16-bit signed jump offset
212 s_branch s0
213 // GCN: error: invalid operand for instruction
215 s_branch offset:1
216 // GCN: error: not a valid operand