1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=legalizer %s -o - | FileCheck -check-prefix=GFX6 %s
3 # RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -run-pass=legalizer %s -o - | FileCheck -check-prefix=GFX8 %s
6 name: test_uitofp_s32_to_s32
11 ; GFX6-LABEL: name: test_uitofp_s32_to_s32
12 ; GFX6: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
13 ; GFX6: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[COPY]](s32)
14 ; GFX6: $vgpr0 = COPY [[UITOFP]](s32)
15 ; GFX8-LABEL: name: test_uitofp_s32_to_s32
16 ; GFX8: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
17 ; GFX8: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[COPY]](s32)
18 ; GFX8: $vgpr0 = COPY [[UITOFP]](s32)
19 %0:_(s32) = COPY $vgpr0
20 %1:_(s32) = G_UITOFP %0
25 name: test_uitofp_s32_to_s64
30 ; GFX6-LABEL: name: test_uitofp_s32_to_s64
31 ; GFX6: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
32 ; GFX6: [[UITOFP:%[0-9]+]]:_(s64) = G_UITOFP [[COPY]](s32)
33 ; GFX6: $vgpr0_vgpr1 = COPY [[UITOFP]](s64)
34 ; GFX8-LABEL: name: test_uitofp_s32_to_s64
35 ; GFX8: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
36 ; GFX8: [[UITOFP:%[0-9]+]]:_(s64) = G_UITOFP [[COPY]](s32)
37 ; GFX8: $vgpr0_vgpr1 = COPY [[UITOFP]](s64)
38 %0:_(s32) = COPY $vgpr0
39 %1:_(s64) = G_UITOFP %0
40 $vgpr0_vgpr1 = COPY %1
44 name: test_uitofp_v2s32_to_v2s32
49 ; GFX6-LABEL: name: test_uitofp_v2s32_to_v2s32
50 ; GFX6: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr1
51 ; GFX6: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)
52 ; GFX6: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[UV]](s32)
53 ; GFX6: [[UITOFP1:%[0-9]+]]:_(s32) = G_UITOFP [[UV1]](s32)
54 ; GFX6: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[UITOFP]](s32), [[UITOFP1]](s32)
55 ; GFX6: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
56 ; GFX8-LABEL: name: test_uitofp_v2s32_to_v2s32
57 ; GFX8: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr1
58 ; GFX8: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)
59 ; GFX8: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[UV]](s32)
60 ; GFX8: [[UITOFP1:%[0-9]+]]:_(s32) = G_UITOFP [[UV1]](s32)
61 ; GFX8: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[UITOFP]](s32), [[UITOFP1]](s32)
62 ; GFX8: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
63 %0:_(<2 x s32>) = COPY $vgpr0_vgpr1
64 %1:_(<2 x s32>) = G_UITOFP %0
65 $vgpr0_vgpr1 = COPY %1
69 name: test_uitofp_s64_to_s32
74 ; GFX6-LABEL: name: test_uitofp_s64_to_s32
75 ; GFX6: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1
76 ; GFX6: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
77 ; GFX6: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 0
78 ; GFX6: [[CTLZ_ZERO_UNDEF:%[0-9]+]]:_(s32) = G_CTLZ_ZERO_UNDEF [[COPY]](s64)
79 ; GFX6: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 190
80 ; GFX6: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[C2]], [[CTLZ_ZERO_UNDEF]]
81 ; GFX6: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[COPY]](s64), [[C1]]
82 ; GFX6: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s1), [[SUB]], [[C]]
83 ; GFX6: [[C3:%[0-9]+]]:_(s64) = G_CONSTANT i64 9223372036854775807
84 ; GFX6: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[CTLZ_ZERO_UNDEF]](s32)
85 ; GFX6: [[AND:%[0-9]+]]:_(s64) = G_AND [[SHL]], [[C3]]
86 ; GFX6: [[C4:%[0-9]+]]:_(s64) = G_CONSTANT i64 1099511627775
87 ; GFX6: [[AND1:%[0-9]+]]:_(s64) = G_AND [[AND]], [[C4]]
88 ; GFX6: [[C5:%[0-9]+]]:_(s64) = G_CONSTANT i64 40
89 ; GFX6: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[C5]](s64)
90 ; GFX6: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR [[AND]], [[TRUNC]](s32)
91 ; GFX6: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 23
92 ; GFX6: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[SELECT]], [[C6]](s32)
93 ; GFX6: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[LSHR]](s64)
94 ; GFX6: [[OR:%[0-9]+]]:_(s32) = G_OR [[SHL1]], [[TRUNC1]]
95 ; GFX6: [[C7:%[0-9]+]]:_(s64) = G_CONSTANT i64 549755813888
96 ; GFX6: [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(ugt), [[AND1]](s64), [[C7]]
97 ; GFX6: [[ICMP2:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[AND1]](s64), [[C7]]
98 ; GFX6: [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
99 ; GFX6: [[AND2:%[0-9]+]]:_(s32) = G_AND [[OR]], [[C8]]
100 ; GFX6: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s1), [[AND2]], [[C]]
101 ; GFX6: [[SELECT2:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s1), [[C8]], [[SELECT1]]
102 ; GFX6: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[OR]], [[SELECT2]]
103 ; GFX6: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[COPY]](s64)
104 ; GFX6: $vgpr0 = COPY [[UITOFP]](s32)
105 ; GFX8-LABEL: name: test_uitofp_s64_to_s32
106 ; GFX8: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1
107 ; GFX8: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
108 ; GFX8: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 0
109 ; GFX8: [[CTLZ_ZERO_UNDEF:%[0-9]+]]:_(s32) = G_CTLZ_ZERO_UNDEF [[COPY]](s64)
110 ; GFX8: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 190
111 ; GFX8: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[C2]], [[CTLZ_ZERO_UNDEF]]
112 ; GFX8: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[COPY]](s64), [[C1]]
113 ; GFX8: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s1), [[SUB]], [[C]]
114 ; GFX8: [[C3:%[0-9]+]]:_(s64) = G_CONSTANT i64 9223372036854775807
115 ; GFX8: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[CTLZ_ZERO_UNDEF]](s32)
116 ; GFX8: [[AND:%[0-9]+]]:_(s64) = G_AND [[SHL]], [[C3]]
117 ; GFX8: [[C4:%[0-9]+]]:_(s64) = G_CONSTANT i64 1099511627775
118 ; GFX8: [[AND1:%[0-9]+]]:_(s64) = G_AND [[AND]], [[C4]]
119 ; GFX8: [[C5:%[0-9]+]]:_(s64) = G_CONSTANT i64 40
120 ; GFX8: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[C5]](s64)
121 ; GFX8: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR [[AND]], [[TRUNC]](s32)
122 ; GFX8: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 23
123 ; GFX8: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[SELECT]], [[C6]](s32)
124 ; GFX8: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[LSHR]](s64)
125 ; GFX8: [[OR:%[0-9]+]]:_(s32) = G_OR [[SHL1]], [[TRUNC1]]
126 ; GFX8: [[C7:%[0-9]+]]:_(s64) = G_CONSTANT i64 549755813888
127 ; GFX8: [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(ugt), [[AND1]](s64), [[C7]]
128 ; GFX8: [[ICMP2:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[AND1]](s64), [[C7]]
129 ; GFX8: [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
130 ; GFX8: [[AND2:%[0-9]+]]:_(s32) = G_AND [[OR]], [[C8]]
131 ; GFX8: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s1), [[AND2]], [[C]]
132 ; GFX8: [[SELECT2:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s1), [[C8]], [[SELECT1]]
133 ; GFX8: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[OR]], [[SELECT2]]
134 ; GFX8: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[COPY]](s64)
135 ; GFX8: $vgpr0 = COPY [[UITOFP]](s32)
136 %0:_(s64) = COPY $vgpr0_vgpr1
137 %1:_(s32) = G_UITOFP %0
142 name: test_uitofp_s64_to_s64
145 liveins: $vgpr0_vgpr1
147 ; GFX6-LABEL: name: test_uitofp_s64_to_s64
148 ; GFX6: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1
149 ; GFX6: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](s64)
150 ; GFX6: [[UITOFP:%[0-9]+]]:_(s64) = G_UITOFP [[UV1]](s32)
151 ; GFX6: [[UITOFP1:%[0-9]+]]:_(s64) = G_UITOFP [[UV]](s32)
152 ; GFX6: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 32
153 ; GFX6: [[INT:%[0-9]+]]:_(s64) = G_INTRINSIC intrinsic(@llvm.amdgcn.ldexp), [[UITOFP]](s64), [[C]](s32)
154 ; GFX6: [[FADD:%[0-9]+]]:_(s64) = G_FADD [[INT]], [[UITOFP1]]
155 ; GFX6: $vgpr0_vgpr1 = COPY [[FADD]](s64)
156 ; GFX8-LABEL: name: test_uitofp_s64_to_s64
157 ; GFX8: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1
158 ; GFX8: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](s64)
159 ; GFX8: [[UITOFP:%[0-9]+]]:_(s64) = G_UITOFP [[UV1]](s32)
160 ; GFX8: [[UITOFP1:%[0-9]+]]:_(s64) = G_UITOFP [[UV]](s32)
161 ; GFX8: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 32
162 ; GFX8: [[INT:%[0-9]+]]:_(s64) = G_INTRINSIC intrinsic(@llvm.amdgcn.ldexp), [[UITOFP]](s64), [[C]](s32)
163 ; GFX8: [[FADD:%[0-9]+]]:_(s64) = G_FADD [[INT]], [[UITOFP1]]
164 ; GFX8: $vgpr0_vgpr1 = COPY [[FADD]](s64)
165 %0:_(s64) = COPY $vgpr0_vgpr1
166 %1:_(s64) = G_UITOFP %0
167 $vgpr0_vgpr1 = COPY %1
171 name: test_uitofp_s16_to_s16
176 ; GFX6-LABEL: name: test_uitofp_s16_to_s16
177 ; GFX6: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
178 ; GFX6: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
179 ; GFX6: [[COPY1:%[0-9]+]]:_(s32) = COPY [[COPY]](s32)
180 ; GFX6: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
181 ; GFX6: [[UITOFP:%[0-9]+]]:_(s16) = G_UITOFP [[AND]](s32)
182 ; GFX6: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[UITOFP]](s16)
183 ; GFX6: $vgpr0 = COPY [[ANYEXT]](s32)
184 ; GFX8-LABEL: name: test_uitofp_s16_to_s16
185 ; GFX8: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
186 ; GFX8: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)
187 ; GFX8: [[UITOFP:%[0-9]+]]:_(s16) = G_UITOFP [[TRUNC]](s16)
188 ; GFX8: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[UITOFP]](s16)
189 ; GFX8: $vgpr0 = COPY [[ANYEXT]](s32)
190 %0:_(s32) = COPY $vgpr0
191 %1:_(s16) = G_TRUNC %0
192 %2:_(s16) = G_UITOFP %1
193 %3:_(s32) = G_ANYEXT %2
198 name: test_uitofp_s16_to_s32
203 ; GFX6-LABEL: name: test_uitofp_s16_to_s32
204 ; GFX6: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
205 ; GFX6: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
206 ; GFX6: [[COPY1:%[0-9]+]]:_(s32) = COPY [[COPY]](s32)
207 ; GFX6: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
208 ; GFX6: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[AND]](s32)
209 ; GFX6: $vgpr0 = COPY [[UITOFP]](s32)
210 ; GFX8-LABEL: name: test_uitofp_s16_to_s32
211 ; GFX8: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
212 ; GFX8: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
213 ; GFX8: [[COPY1:%[0-9]+]]:_(s32) = COPY [[COPY]](s32)
214 ; GFX8: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
215 ; GFX8: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[AND]](s32)
216 ; GFX8: $vgpr0 = COPY [[UITOFP]](s32)
217 %0:_(s32) = COPY $vgpr0
218 %1:_(s16) = G_TRUNC %0
219 %2:_(s32) = G_UITOFP %1
224 name: test_uitofp_s16_to_s64
229 ; GFX6-LABEL: name: test_uitofp_s16_to_s64
230 ; GFX6: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
231 ; GFX6: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
232 ; GFX6: [[COPY1:%[0-9]+]]:_(s32) = COPY [[COPY]](s32)
233 ; GFX6: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
234 ; GFX6: [[UITOFP:%[0-9]+]]:_(s64) = G_UITOFP [[AND]](s32)
235 ; GFX6: $vgpr0_vgpr1 = COPY [[UITOFP]](s64)
236 ; GFX8-LABEL: name: test_uitofp_s16_to_s64
237 ; GFX8: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
238 ; GFX8: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
239 ; GFX8: [[COPY1:%[0-9]+]]:_(s32) = COPY [[COPY]](s32)
240 ; GFX8: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
241 ; GFX8: [[UITOFP:%[0-9]+]]:_(s64) = G_UITOFP [[AND]](s32)
242 ; GFX8: $vgpr0_vgpr1 = COPY [[UITOFP]](s64)
243 %0:_(s32) = COPY $vgpr0
244 %1:_(s16) = G_TRUNC %0
245 %2:_(s64) = G_UITOFP %1
246 $vgpr0_vgpr1 = COPY %2
250 name: test_uitofp_s8_to_s16
255 ; GFX6-LABEL: name: test_uitofp_s8_to_s16
256 ; GFX6: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
257 ; GFX6: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
258 ; GFX6: [[COPY1:%[0-9]+]]:_(s32) = COPY [[COPY]](s32)
259 ; GFX6: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
260 ; GFX6: [[UITOFP:%[0-9]+]]:_(s16) = G_UITOFP [[AND]](s32)
261 ; GFX6: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[UITOFP]](s16)
262 ; GFX6: $vgpr0 = COPY [[ANYEXT]](s32)
263 ; GFX8-LABEL: name: test_uitofp_s8_to_s16
264 ; GFX8: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
265 ; GFX8: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
266 ; GFX8: [[COPY1:%[0-9]+]]:_(s32) = COPY [[COPY]](s32)
267 ; GFX8: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
268 ; GFX8: [[UITOFP:%[0-9]+]]:_(s16) = G_UITOFP [[AND]](s32)
269 ; GFX8: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[UITOFP]](s16)
270 ; GFX8: $vgpr0 = COPY [[ANYEXT]](s32)
271 %0:_(s32) = COPY $vgpr0
272 %1:_(s8) = G_TRUNC %0
273 %2:_(s16) = G_UITOFP %1
274 %3:_(s32) = G_ANYEXT %2
279 name: test_uitofp_s8_to_s32
284 ; GFX6-LABEL: name: test_uitofp_s8_to_s32
285 ; GFX6: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
286 ; GFX6: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
287 ; GFX6: [[COPY1:%[0-9]+]]:_(s32) = COPY [[COPY]](s32)
288 ; GFX6: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
289 ; GFX6: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[AND]](s32)
290 ; GFX6: $vgpr0 = COPY [[UITOFP]](s32)
291 ; GFX8-LABEL: name: test_uitofp_s8_to_s32
292 ; GFX8: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
293 ; GFX8: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
294 ; GFX8: [[COPY1:%[0-9]+]]:_(s32) = COPY [[COPY]](s32)
295 ; GFX8: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
296 ; GFX8: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[AND]](s32)
297 ; GFX8: $vgpr0 = COPY [[UITOFP]](s32)
298 %0:_(s32) = COPY $vgpr0
299 %1:_(s8) = G_TRUNC %0
300 %2:_(s32) = G_UITOFP %1
305 name: test_uitofp_s8_to_s64
310 ; GFX6-LABEL: name: test_uitofp_s8_to_s64
311 ; GFX6: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
312 ; GFX6: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
313 ; GFX6: [[COPY1:%[0-9]+]]:_(s32) = COPY [[COPY]](s32)
314 ; GFX6: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
315 ; GFX6: [[UITOFP:%[0-9]+]]:_(s64) = G_UITOFP [[AND]](s32)
316 ; GFX6: $vgpr0_vgpr1 = COPY [[UITOFP]](s64)
317 ; GFX8-LABEL: name: test_uitofp_s8_to_s64
318 ; GFX8: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
319 ; GFX8: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
320 ; GFX8: [[COPY1:%[0-9]+]]:_(s32) = COPY [[COPY]](s32)
321 ; GFX8: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
322 ; GFX8: [[UITOFP:%[0-9]+]]:_(s64) = G_UITOFP [[AND]](s32)
323 ; GFX8: $vgpr0_vgpr1 = COPY [[UITOFP]](s64)
324 %0:_(s32) = COPY $vgpr0
325 %1:_(s8) = G_TRUNC %0
326 %2:_(s64) = G_UITOFP %1
327 $vgpr0_vgpr1 = COPY %2