1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -march=amdgcn -mcpu=fiji -run-pass=regbankselect -global-isel %s -verify-machineinstrs -o - -regbankselect-fast | FileCheck -check-prefix=FAST %s
3 # RUN: llc -march=amdgcn -mcpu=fiji -run-pass=regbankselect -global-isel %s -verify-machineinstrs -o - -regbankselect-greedy | FileCheck -check-prefix=GREEDY %s
6 name: select_s32_scc_ss
10 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3
11 ; FAST-LABEL: name: select_s32_scc_ss
12 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
13 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
14 ; FAST: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr2
15 ; FAST: [[COPY3:%[0-9]+]]:sgpr(s32) = COPY $sgpr3
16 ; FAST: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
17 ; FAST: [[SELECT:%[0-9]+]]:sgpr(s32) = G_SELECT [[ICMP]](s1), [[COPY2]], [[COPY3]]
18 ; GREEDY-LABEL: name: select_s32_scc_ss
19 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
20 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
21 ; GREEDY: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr2
22 ; GREEDY: [[COPY3:%[0-9]+]]:sgpr(s32) = COPY $sgpr3
23 ; GREEDY: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
24 ; GREEDY: [[SELECT:%[0-9]+]]:sgpr(s32) = G_SELECT [[ICMP]](s1), [[COPY2]], [[COPY3]]
25 %0:_(s32) = COPY $sgpr0
26 %1:_(s32) = COPY $sgpr1
27 %2:_(s32) = COPY $sgpr2
28 %3:_(s32) = COPY $sgpr3
29 %4:_(s1) = G_ICMP intpred(ne), %0, %1
30 %5:_(s32) = G_SELECT %4, %2, %3
34 name: select_s32_scc_sv
38 liveins: $sgpr0, $sgpr1, $sgpr2, $vgpr0
39 ; FAST-LABEL: name: select_s32_scc_sv
40 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
41 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
42 ; FAST: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr2
43 ; FAST: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
44 ; FAST: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
45 ; FAST: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[COPY2]](s32)
46 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[COPY4]], [[COPY3]]
47 ; GREEDY-LABEL: name: select_s32_scc_sv
48 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
49 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
50 ; GREEDY: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr2
51 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
52 ; GREEDY: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
53 ; GREEDY: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[COPY2]](s32)
54 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[COPY4]], [[COPY3]]
55 %0:_(s32) = COPY $sgpr0
56 %1:_(s32) = COPY $sgpr1
57 %2:_(s32) = COPY $sgpr2
58 %3:_(s32) = COPY $vgpr0
59 %4:_(s1) = G_ICMP intpred(ne), %0, %1
60 %5:_(s32) = G_SELECT %4, %2, %3
65 name: select_s32_scc_vs
69 liveins: $sgpr0, $sgpr1, $sgpr2, $vgpr0
70 ; FAST-LABEL: name: select_s32_scc_vs
71 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
72 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
73 ; FAST: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr2
74 ; FAST: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
75 ; FAST: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
76 ; FAST: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[COPY2]](s32)
77 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[COPY3]], [[COPY4]]
78 ; GREEDY-LABEL: name: select_s32_scc_vs
79 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
80 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
81 ; GREEDY: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr2
82 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
83 ; GREEDY: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
84 ; GREEDY: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[COPY2]](s32)
85 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[COPY3]], [[COPY4]]
86 %0:_(s32) = COPY $sgpr0
87 %1:_(s32) = COPY $sgpr1
88 %2:_(s32) = COPY $sgpr2
89 %3:_(s32) = COPY $vgpr0
90 %4:_(s1) = G_ICMP intpred(ne), %0, %1
91 %5:_(s32) = G_SELECT %4, %3, %2
95 name: select_s32_scc_vv
99 liveins: $sgpr0, $sgpr1, $vgpr0, $vgpr1
100 ; FAST-LABEL: name: select_s32_scc_vv
101 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
102 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
103 ; FAST: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
104 ; FAST: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
105 ; FAST: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
106 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[COPY2]], [[COPY3]]
107 ; GREEDY-LABEL: name: select_s32_scc_vv
108 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
109 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
110 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
111 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
112 ; GREEDY: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
113 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[COPY2]], [[COPY3]]
114 %0:_(s32) = COPY $sgpr0
115 %1:_(s32) = COPY $sgpr1
116 %2:_(s32) = COPY $vgpr0
117 %3:_(s32) = COPY $vgpr1
118 %4:_(s1) = G_ICMP intpred(ne), %0, %1
119 %5:_(s32) = G_SELECT %4, %2, %3
123 name: select_s32_vcc_ss
127 liveins: $sgpr0, $sgpr1, $vgpr0, $vgpr1
128 ; FAST-LABEL: name: select_s32_vcc_ss
129 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
130 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
131 ; FAST: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
132 ; FAST: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
133 ; FAST: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY2]](s32), [[COPY3]]
134 ; FAST: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)
135 ; FAST: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)
136 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[COPY4]], [[COPY5]]
137 ; GREEDY-LABEL: name: select_s32_vcc_ss
138 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
139 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
140 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
141 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
142 ; GREEDY: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY2]](s32), [[COPY3]]
143 ; GREEDY: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)
144 ; GREEDY: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)
145 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[COPY4]], [[COPY5]]
146 %0:_(s32) = COPY $sgpr0
147 %1:_(s32) = COPY $sgpr1
148 %2:_(s32) = COPY $vgpr0
149 %3:_(s32) = COPY $vgpr1
150 %4:_(s1) = G_ICMP intpred(ne), %2, %3
151 %5:_(s32) = G_SELECT %4, %0, %1
155 name: select_s32_vcc_sv
159 liveins: $sgpr0, $vgpr0, $vgpr1, $vgpr2
160 ; FAST-LABEL: name: select_s32_vcc_sv
161 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
162 ; FAST: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
163 ; FAST: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
164 ; FAST: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr2
165 ; FAST: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY1]](s32), [[COPY2]]
166 ; FAST: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)
167 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[COPY4]], [[COPY3]]
168 ; GREEDY-LABEL: name: select_s32_vcc_sv
169 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
170 ; GREEDY: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
171 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
172 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr2
173 ; GREEDY: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY1]](s32), [[COPY2]]
174 ; GREEDY: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)
175 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[COPY4]], [[COPY3]]
176 %0:_(s32) = COPY $sgpr0
177 %1:_(s32) = COPY $vgpr0
178 %2:_(s32) = COPY $vgpr1
179 %3:_(s32) = COPY $vgpr2
180 %4:_(s1) = G_ICMP intpred(ne), %1, %2
181 %5:_(s32) = G_SELECT %4, %0, %3
185 name: select_s32_vcc_vs
189 liveins: $sgpr0, $vgpr0, $vgpr1, $vgpr2
190 ; FAST-LABEL: name: select_s32_vcc_vs
191 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
192 ; FAST: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
193 ; FAST: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
194 ; FAST: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr2
195 ; FAST: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY1]](s32), [[COPY2]]
196 ; FAST: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)
197 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[COPY3]], [[COPY4]]
198 ; GREEDY-LABEL: name: select_s32_vcc_vs
199 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
200 ; GREEDY: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
201 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
202 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr2
203 ; GREEDY: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY1]](s32), [[COPY2]]
204 ; GREEDY: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)
205 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[COPY3]], [[COPY4]]
206 %0:_(s32) = COPY $sgpr0
207 %1:_(s32) = COPY $vgpr0
208 %2:_(s32) = COPY $vgpr1
209 %3:_(s32) = COPY $vgpr2
210 %4:_(s1) = G_ICMP intpred(ne), %1, %2
211 %5:_(s32) = G_SELECT %4, %3, %0
215 name: select_s32_vcc_vv
219 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
220 ; FAST-LABEL: name: select_s32_vcc_vv
221 ; FAST: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
222 ; FAST: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
223 ; FAST: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr2
224 ; FAST: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr3
225 ; FAST: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
226 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[COPY2]], [[COPY3]]
227 ; GREEDY-LABEL: name: select_s32_vcc_vv
228 ; GREEDY: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
229 ; GREEDY: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
230 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr2
231 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr3
232 ; GREEDY: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
233 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[COPY2]], [[COPY3]]
234 %0:_(s32) = COPY $vgpr0
235 %1:_(s32) = COPY $vgpr1
236 %2:_(s32) = COPY $vgpr2
237 %3:_(s32) = COPY $vgpr3
238 %4:_(s1) = G_ICMP intpred(ne), %0, %1
239 %5:_(s32) = G_SELECT %4, %2, %3
247 liveins: $sgpr0, $sgpr1, $sgpr2_sgpr3, $sgpr4_sgpr5
248 ; FAST-LABEL: name: select_s64_sss
249 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
250 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
251 ; FAST: [[COPY2:%[0-9]+]]:sgpr(s64) = COPY $sgpr2_sgpr3
252 ; FAST: [[COPY3:%[0-9]+]]:sgpr(s64) = COPY $sgpr4_sgpr5
253 ; FAST: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
254 ; FAST: [[SELECT:%[0-9]+]]:sgpr(s64) = G_SELECT [[ICMP]](s1), [[COPY2]], [[COPY3]]
255 ; GREEDY-LABEL: name: select_s64_sss
256 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
257 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
258 ; GREEDY: [[COPY2:%[0-9]+]]:sgpr(s64) = COPY $sgpr2_sgpr3
259 ; GREEDY: [[COPY3:%[0-9]+]]:sgpr(s64) = COPY $sgpr4_sgpr5
260 ; GREEDY: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
261 ; GREEDY: [[SELECT:%[0-9]+]]:sgpr(s64) = G_SELECT [[ICMP]](s1), [[COPY2]], [[COPY3]]
262 %0:_(s32) = COPY $sgpr0
263 %1:_(s32) = COPY $sgpr1
264 %2:_(s64) = COPY $sgpr2_sgpr3
265 %3:_(s64) = COPY $sgpr4_sgpr5
266 %4:_(s1) = G_ICMP intpred(ne), %0, %1
267 %5:_(s64) = G_SELECT %4, %2, %3
275 liveins: $sgpr0, $sgpr1, $sgpr2_sgpr3, $vgpr0_vgpr1
276 ; FAST-LABEL: name: select_s64_ssv
277 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
278 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
279 ; FAST: [[COPY2:%[0-9]+]]:sgpr(s64) = COPY $sgpr2_sgpr3
280 ; FAST: [[COPY3:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1
281 ; FAST: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
282 ; FAST: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY2]](s64)
283 ; FAST: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](s64)
284 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
285 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
286 ; FAST: [[MV:%[0-9]+]]:vgpr(s64) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
287 ; GREEDY-LABEL: name: select_s64_ssv
288 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
289 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
290 ; GREEDY: [[COPY2:%[0-9]+]]:sgpr(s64) = COPY $sgpr2_sgpr3
291 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1
292 ; GREEDY: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
293 ; GREEDY: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY2]](s64)
294 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](s64)
295 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
296 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
297 ; GREEDY: [[MV:%[0-9]+]]:vgpr(s64) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
298 %0:_(s32) = COPY $sgpr0
299 %1:_(s32) = COPY $sgpr1
300 %2:_(s64) = COPY $sgpr2_sgpr3
301 %3:_(s64) = COPY $vgpr0_vgpr1
302 %4:_(s1) = G_ICMP intpred(ne), %0, %1
303 %5:_(s64) = G_SELECT %4, %2, %3
312 liveins: $sgpr0, $sgpr1, $sgpr2_sgpr3, $vgpr0_vgpr1
313 ; FAST-LABEL: name: select_s64_svs
314 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
315 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
316 ; FAST: [[COPY2:%[0-9]+]]:sgpr(s64) = COPY $sgpr2_sgpr3
317 ; FAST: [[COPY3:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1
318 ; FAST: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
319 ; FAST: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](s64)
320 ; FAST: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY2]](s64)
321 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
322 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
323 ; FAST: [[MV:%[0-9]+]]:vgpr(s64) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
324 ; GREEDY-LABEL: name: select_s64_svs
325 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
326 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
327 ; GREEDY: [[COPY2:%[0-9]+]]:sgpr(s64) = COPY $sgpr2_sgpr3
328 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1
329 ; GREEDY: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
330 ; GREEDY: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](s64)
331 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY2]](s64)
332 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
333 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
334 ; GREEDY: [[MV:%[0-9]+]]:vgpr(s64) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
335 %0:_(s32) = COPY $sgpr0
336 %1:_(s32) = COPY $sgpr1
337 %2:_(s64) = COPY $sgpr2_sgpr3
338 %3:_(s64) = COPY $vgpr0_vgpr1
339 %4:_(s1) = G_ICMP intpred(ne), %0, %1
340 %5:_(s64) = G_SELECT %4, %3, %2
348 liveins: $sgpr0, $sgpr1, $sgpr2_sgpr3, $vgpr0_vgpr1, $vgpr2_vgpr3
349 ; FAST-LABEL: name: select_s64_svv
350 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
351 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
352 ; FAST: [[COPY2:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1
353 ; FAST: [[COPY3:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3
354 ; FAST: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
355 ; FAST: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY2]](s64)
356 ; FAST: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](s64)
357 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
358 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
359 ; FAST: [[MV:%[0-9]+]]:vgpr(s64) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
360 ; GREEDY-LABEL: name: select_s64_svv
361 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
362 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
363 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1
364 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3
365 ; GREEDY: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
366 ; GREEDY: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY2]](s64)
367 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](s64)
368 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
369 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
370 ; GREEDY: [[MV:%[0-9]+]]:vgpr(s64) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
371 %0:_(s32) = COPY $sgpr0
372 %1:_(s32) = COPY $sgpr1
373 %2:_(s64) = COPY $vgpr0_vgpr1
374 %3:_(s64) = COPY $vgpr2_vgpr3
375 %4:_(s1) = G_ICMP intpred(ne), %0, %1
376 %5:_(s64) = G_SELECT %4, %2, %3
384 liveins: $sgpr0_sgpr1, $sgpr2_sgpr3, $vgpr0, $vgpr1
385 ; FAST-LABEL: name: select_s64_vss
386 ; FAST: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1
387 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s64) = COPY $sgpr2_sgpr3
388 ; FAST: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
389 ; FAST: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
390 ; FAST: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY2]](s32), [[COPY3]]
391 ; FAST: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY]](s64)
392 ; FAST: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY1]](s64)
393 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
394 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
395 ; FAST: [[MV:%[0-9]+]]:vgpr(s64) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
396 ; GREEDY-LABEL: name: select_s64_vss
397 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1
398 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s64) = COPY $sgpr2_sgpr3
399 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
400 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
401 ; GREEDY: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY2]](s32), [[COPY3]]
402 ; GREEDY: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY]](s64)
403 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY1]](s64)
404 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
405 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
406 ; GREEDY: [[MV:%[0-9]+]]:vgpr(s64) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
407 %0:_(s64) = COPY $sgpr0_sgpr1
408 %1:_(s64) = COPY $sgpr2_sgpr3
409 %2:_(s32) = COPY $vgpr0
410 %3:_(s32) = COPY $vgpr1
411 %4:_(s1) = G_ICMP intpred(ne), %2, %3
412 %5:_(s64) = G_SELECT %4, %0, %1
420 liveins: $sgpr0_sgpr1, $vgpr0, $vgpr1, $vgpr2_vgpr3
421 ; FAST-LABEL: name: select_s64_vsv
422 ; FAST: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1
423 ; FAST: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
424 ; FAST: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
425 ; FAST: [[COPY3:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3
426 ; FAST: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY1]](s32), [[COPY2]]
427 ; FAST: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY]](s64)
428 ; FAST: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](s64)
429 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
430 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
431 ; FAST: [[MV:%[0-9]+]]:vgpr(s64) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
432 ; GREEDY-LABEL: name: select_s64_vsv
433 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1
434 ; GREEDY: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
435 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
436 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3
437 ; GREEDY: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY1]](s32), [[COPY2]]
438 ; GREEDY: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY]](s64)
439 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](s64)
440 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
441 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
442 ; GREEDY: [[MV:%[0-9]+]]:vgpr(s64) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
443 %0:_(s64) = COPY $sgpr0_sgpr1
444 %1:_(s32) = COPY $vgpr0
445 %2:_(s32) = COPY $vgpr1
446 %3:_(s64) = COPY $vgpr2_vgpr3
447 %4:_(s1) = G_ICMP intpred(ne), %1, %2
448 %5:_(s64) = G_SELECT %4, %0, %3
456 liveins: $sgpr0_sgpr1, $vgpr0, $vgpr1, $vgpr2_vgpr3
457 ; FAST-LABEL: name: select_s64_vvs
458 ; FAST: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1
459 ; FAST: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
460 ; FAST: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
461 ; FAST: [[COPY3:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3
462 ; FAST: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY1]](s32), [[COPY2]]
463 ; FAST: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](s64)
464 ; FAST: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY]](s64)
465 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
466 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
467 ; FAST: [[MV:%[0-9]+]]:vgpr(s64) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
468 ; GREEDY-LABEL: name: select_s64_vvs
469 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1
470 ; GREEDY: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
471 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
472 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3
473 ; GREEDY: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY1]](s32), [[COPY2]]
474 ; GREEDY: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](s64)
475 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY]](s64)
476 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
477 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
478 ; GREEDY: [[MV:%[0-9]+]]:vgpr(s64) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
479 %0:_(s64) = COPY $sgpr0_sgpr1
480 %1:_(s32) = COPY $vgpr0
481 %2:_(s32) = COPY $vgpr1
482 %3:_(s64) = COPY $vgpr2_vgpr3
483 %4:_(s1) = G_ICMP intpred(ne), %1, %2
484 %5:_(s64) = G_SELECT %4, %3, %0
492 liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5
493 ; FAST-LABEL: name: select_s64_vvv
494 ; FAST: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
495 ; FAST: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
496 ; FAST: [[COPY2:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3
497 ; FAST: [[COPY3:%[0-9]+]]:vgpr(s64) = COPY $vgpr4_vgpr5
498 ; FAST: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
499 ; FAST: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY2]](s64)
500 ; FAST: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](s64)
501 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
502 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
503 ; FAST: [[MV:%[0-9]+]]:vgpr(s64) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
504 ; GREEDY-LABEL: name: select_s64_vvv
505 ; GREEDY: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
506 ; GREEDY: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
507 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3
508 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(s64) = COPY $vgpr4_vgpr5
509 ; GREEDY: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
510 ; GREEDY: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY2]](s64)
511 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](s64)
512 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
513 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
514 ; GREEDY: [[MV:%[0-9]+]]:vgpr(s64) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
515 %0:_(s32) = COPY $vgpr0
516 %1:_(s32) = COPY $vgpr1
517 %2:_(s64) = COPY $vgpr2_vgpr3
518 %3:_(s64) = COPY $vgpr4_vgpr5
519 %4:_(s1) = G_ICMP intpred(ne), %0, %1
520 %5:_(s64) = G_SELECT %4, %2, %3
524 name: select_v2s32_scc_ss
528 liveins: $sgpr0, $sgpr1, $sgpr2_sgpr3, $sgpr4_sgpr5
529 ; FAST-LABEL: name: select_v2s32_scc_ss
530 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
531 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
532 ; FAST: [[COPY2:%[0-9]+]]:sgpr(<2 x s32>) = COPY $sgpr2_sgpr3
533 ; FAST: [[COPY3:%[0-9]+]]:sgpr(<2 x s32>) = COPY $sgpr4_sgpr5
534 ; FAST: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
535 ; FAST: [[SELECT:%[0-9]+]]:sgpr(<2 x s32>) = G_SELECT [[ICMP]](s1), [[COPY2]], [[COPY3]]
536 ; GREEDY-LABEL: name: select_v2s32_scc_ss
537 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
538 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
539 ; GREEDY: [[COPY2:%[0-9]+]]:sgpr(<2 x s32>) = COPY $sgpr2_sgpr3
540 ; GREEDY: [[COPY3:%[0-9]+]]:sgpr(<2 x s32>) = COPY $sgpr4_sgpr5
541 ; GREEDY: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
542 ; GREEDY: [[SELECT:%[0-9]+]]:sgpr(<2 x s32>) = G_SELECT [[ICMP]](s1), [[COPY2]], [[COPY3]]
543 %0:_(s32) = COPY $sgpr0
544 %1:_(s32) = COPY $sgpr1
545 %2:_(<2 x s32>) = COPY $sgpr2_sgpr3
546 %3:_(<2 x s32>) = COPY $sgpr4_sgpr5
547 %4:_(s1) = G_ICMP intpred(ne), %0, %1
548 %5:_(<2 x s32>) = G_SELECT %4, %2, %3
552 name: select_v2s32_scc_sv
556 liveins: $sgpr0, $sgpr1, $sgpr2_sgpr3, $vgpr0_vgpr1
557 ; FAST-LABEL: name: select_v2s32_scc_sv
558 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
559 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
560 ; FAST: [[COPY2:%[0-9]+]]:sgpr(<2 x s32>) = COPY $sgpr2_sgpr3
561 ; FAST: [[COPY3:%[0-9]+]]:vgpr(<2 x s32>) = COPY $vgpr0_vgpr1
562 ; FAST: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
563 ; FAST: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY2]](<2 x s32>)
564 ; FAST: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](<2 x s32>)
565 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
566 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
567 ; FAST: [[BUILD_VECTOR:%[0-9]+]]:vgpr(<2 x s32>) = G_BUILD_VECTOR [[SELECT]](s32), [[SELECT1]](s32)
568 ; GREEDY-LABEL: name: select_v2s32_scc_sv
569 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
570 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
571 ; GREEDY: [[COPY2:%[0-9]+]]:sgpr(<2 x s32>) = COPY $sgpr2_sgpr3
572 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(<2 x s32>) = COPY $vgpr0_vgpr1
573 ; GREEDY: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
574 ; GREEDY: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY2]](<2 x s32>)
575 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](<2 x s32>)
576 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
577 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
578 ; GREEDY: [[BUILD_VECTOR:%[0-9]+]]:vgpr(<2 x s32>) = G_BUILD_VECTOR [[SELECT]](s32), [[SELECT1]](s32)
579 %0:_(s32) = COPY $sgpr0
580 %1:_(s32) = COPY $sgpr1
581 %2:_(<2 x s32>) = COPY $sgpr2_sgpr3
582 %3:_(<2 x s32>) = COPY $vgpr0_vgpr1
583 %4:_(s1) = G_ICMP intpred(ne), %0, %1
584 %5:_(<2 x s32>) = G_SELECT %4, %2, %3
589 name: select_v2s32_scc_vs
593 liveins: $sgpr0, $sgpr1, $sgpr2_sgpr3, $vgpr0_vgpr1
594 ; FAST-LABEL: name: select_v2s32_scc_vs
595 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
596 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
597 ; FAST: [[COPY2:%[0-9]+]]:sgpr(<2 x s32>) = COPY $sgpr2_sgpr3
598 ; FAST: [[COPY3:%[0-9]+]]:vgpr(<2 x s32>) = COPY $vgpr0_vgpr1
599 ; FAST: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
600 ; FAST: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](<2 x s32>)
601 ; FAST: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY2]](<2 x s32>)
602 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
603 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
604 ; FAST: [[BUILD_VECTOR:%[0-9]+]]:vgpr(<2 x s32>) = G_BUILD_VECTOR [[SELECT]](s32), [[SELECT1]](s32)
605 ; GREEDY-LABEL: name: select_v2s32_scc_vs
606 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
607 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
608 ; GREEDY: [[COPY2:%[0-9]+]]:sgpr(<2 x s32>) = COPY $sgpr2_sgpr3
609 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(<2 x s32>) = COPY $vgpr0_vgpr1
610 ; GREEDY: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
611 ; GREEDY: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](<2 x s32>)
612 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY2]](<2 x s32>)
613 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
614 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
615 ; GREEDY: [[BUILD_VECTOR:%[0-9]+]]:vgpr(<2 x s32>) = G_BUILD_VECTOR [[SELECT]](s32), [[SELECT1]](s32)
616 %0:_(s32) = COPY $sgpr0
617 %1:_(s32) = COPY $sgpr1
618 %2:_(<2 x s32>) = COPY $sgpr2_sgpr3
619 %3:_(<2 x s32>) = COPY $vgpr0_vgpr1
620 %4:_(s1) = G_ICMP intpred(ne), %0, %1
621 %5:_(<2 x s32>) = G_SELECT %4, %3, %2
625 name: select_v2s32_scc_vv
629 liveins: $sgpr0, $sgpr1, $sgpr2_sgpr3, $vgpr0_vgpr1, $vgpr2_vgpr3
630 ; FAST-LABEL: name: select_v2s32_scc_vv
631 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
632 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
633 ; FAST: [[COPY2:%[0-9]+]]:vgpr(<2 x s32>) = COPY $vgpr0_vgpr1
634 ; FAST: [[COPY3:%[0-9]+]]:vgpr(<2 x s32>) = COPY $vgpr2_vgpr3
635 ; FAST: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
636 ; FAST: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY2]](<2 x s32>)
637 ; FAST: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](<2 x s32>)
638 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
639 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
640 ; FAST: [[BUILD_VECTOR:%[0-9]+]]:vgpr(<2 x s32>) = G_BUILD_VECTOR [[SELECT]](s32), [[SELECT1]](s32)
641 ; GREEDY-LABEL: name: select_v2s32_scc_vv
642 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
643 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
644 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(<2 x s32>) = COPY $vgpr0_vgpr1
645 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(<2 x s32>) = COPY $vgpr2_vgpr3
646 ; GREEDY: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
647 ; GREEDY: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY2]](<2 x s32>)
648 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](<2 x s32>)
649 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
650 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
651 ; GREEDY: [[BUILD_VECTOR:%[0-9]+]]:vgpr(<2 x s32>) = G_BUILD_VECTOR [[SELECT]](s32), [[SELECT1]](s32)
652 %0:_(s32) = COPY $sgpr0
653 %1:_(s32) = COPY $sgpr1
654 %2:_(<2 x s32>) = COPY $vgpr0_vgpr1
655 %3:_(<2 x s32>) = COPY $vgpr2_vgpr3
656 %4:_(s1) = G_ICMP intpred(ne), %0, %1
657 %5:_(<2 x s32>) = G_SELECT %4, %2, %3
661 name: select_v2s32_vcc_ss
665 liveins: $sgpr0_sgpr1, $sgpr2_sgpr3, $vgpr0, $vgpr1
666 ; FAST-LABEL: name: select_v2s32_vcc_ss
667 ; FAST: [[COPY:%[0-9]+]]:sgpr(<2 x s32>) = COPY $sgpr0_sgpr1
668 ; FAST: [[COPY1:%[0-9]+]]:sgpr(<2 x s32>) = COPY $sgpr2_sgpr3
669 ; FAST: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
670 ; FAST: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
671 ; FAST: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY2]](s32), [[COPY3]]
672 ; FAST: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)
673 ; FAST: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY1]](<2 x s32>)
674 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
675 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
676 ; FAST: [[BUILD_VECTOR:%[0-9]+]]:vgpr(<2 x s32>) = G_BUILD_VECTOR [[SELECT]](s32), [[SELECT1]](s32)
677 ; GREEDY-LABEL: name: select_v2s32_vcc_ss
678 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(<2 x s32>) = COPY $sgpr0_sgpr1
679 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(<2 x s32>) = COPY $sgpr2_sgpr3
680 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
681 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
682 ; GREEDY: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY2]](s32), [[COPY3]]
683 ; GREEDY: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)
684 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY1]](<2 x s32>)
685 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
686 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
687 ; GREEDY: [[BUILD_VECTOR:%[0-9]+]]:vgpr(<2 x s32>) = G_BUILD_VECTOR [[SELECT]](s32), [[SELECT1]](s32)
688 %0:_(<2 x s32>) = COPY $sgpr0_sgpr1
689 %1:_(<2 x s32>) = COPY $sgpr2_sgpr3
690 %2:_(s32) = COPY $vgpr0
691 %3:_(s32) = COPY $vgpr1
692 %4:_(s1) = G_ICMP intpred(ne), %2, %3
693 %5:_(<2 x s32>) = G_SELECT %4, %0, %1
697 name: select_v2s32_vcc_sv
701 liveins: $sgpr0_sgpr1, $vgpr0, $vgpr1, $vgpr2_vgpr3
702 ; FAST-LABEL: name: select_v2s32_vcc_sv
703 ; FAST: [[COPY:%[0-9]+]]:sgpr(<2 x s32>) = COPY $sgpr0_sgpr1
704 ; FAST: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
705 ; FAST: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
706 ; FAST: [[COPY3:%[0-9]+]]:vgpr(<2 x s32>) = COPY $vgpr2_vgpr3
707 ; FAST: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY1]](s32), [[COPY2]]
708 ; FAST: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)
709 ; FAST: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](<2 x s32>)
710 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
711 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
712 ; FAST: [[BUILD_VECTOR:%[0-9]+]]:vgpr(<2 x s32>) = G_BUILD_VECTOR [[SELECT]](s32), [[SELECT1]](s32)
713 ; GREEDY-LABEL: name: select_v2s32_vcc_sv
714 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(<2 x s32>) = COPY $sgpr0_sgpr1
715 ; GREEDY: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
716 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
717 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(<2 x s32>) = COPY $vgpr2_vgpr3
718 ; GREEDY: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY1]](s32), [[COPY2]]
719 ; GREEDY: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)
720 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](<2 x s32>)
721 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
722 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
723 ; GREEDY: [[BUILD_VECTOR:%[0-9]+]]:vgpr(<2 x s32>) = G_BUILD_VECTOR [[SELECT]](s32), [[SELECT1]](s32)
724 %0:_(<2 x s32>) = COPY $sgpr0_sgpr1
725 %1:_(s32) = COPY $vgpr0
726 %2:_(s32) = COPY $vgpr1
727 %3:_(<2 x s32>) = COPY $vgpr2_vgpr3
728 %4:_(s1) = G_ICMP intpred(ne), %1, %2
729 %5:_(<2 x s32>) = G_SELECT %4, %0, %3
733 name: select_v2s32_vcc_vs
737 liveins: $sgpr0_sgpr1, $vgpr0, $vgpr1, $vgpr2_vgpr3
738 ; FAST-LABEL: name: select_v2s32_vcc_vs
739 ; FAST: [[COPY:%[0-9]+]]:sgpr(<2 x s32>) = COPY $sgpr0_sgpr1
740 ; FAST: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
741 ; FAST: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
742 ; FAST: [[COPY3:%[0-9]+]]:vgpr(<2 x s32>) = COPY $vgpr2_vgpr3
743 ; FAST: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY1]](s32), [[COPY2]]
744 ; FAST: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](<2 x s32>)
745 ; FAST: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)
746 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
747 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
748 ; FAST: [[BUILD_VECTOR:%[0-9]+]]:vgpr(<2 x s32>) = G_BUILD_VECTOR [[SELECT]](s32), [[SELECT1]](s32)
749 ; GREEDY-LABEL: name: select_v2s32_vcc_vs
750 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(<2 x s32>) = COPY $sgpr0_sgpr1
751 ; GREEDY: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
752 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
753 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(<2 x s32>) = COPY $vgpr2_vgpr3
754 ; GREEDY: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY1]](s32), [[COPY2]]
755 ; GREEDY: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](<2 x s32>)
756 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)
757 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
758 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
759 ; GREEDY: [[BUILD_VECTOR:%[0-9]+]]:vgpr(<2 x s32>) = G_BUILD_VECTOR [[SELECT]](s32), [[SELECT1]](s32)
760 %0:_(<2 x s32>) = COPY $sgpr0_sgpr1
761 %1:_(s32) = COPY $vgpr0
762 %2:_(s32) = COPY $vgpr1
763 %3:_(<2 x s32>) = COPY $vgpr2_vgpr3
764 %4:_(s1) = G_ICMP intpred(ne), %1, %2
765 %5:_(<2 x s32>) = G_SELECT %4, %3, %0
769 name: select_v2s32_vcc_vv
773 liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5
774 ; FAST-LABEL: name: select_v2s32_vcc_vv
775 ; FAST: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
776 ; FAST: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
777 ; FAST: [[COPY2:%[0-9]+]]:vgpr(<2 x s32>) = COPY $vgpr2_vgpr3
778 ; FAST: [[COPY3:%[0-9]+]]:vgpr(<2 x s32>) = COPY $vgpr4_vgpr5
779 ; FAST: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
780 ; FAST: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY2]](<2 x s32>)
781 ; FAST: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](<2 x s32>)
782 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
783 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
784 ; FAST: [[BUILD_VECTOR:%[0-9]+]]:vgpr(<2 x s32>) = G_BUILD_VECTOR [[SELECT]](s32), [[SELECT1]](s32)
785 ; GREEDY-LABEL: name: select_v2s32_vcc_vv
786 ; GREEDY: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
787 ; GREEDY: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
788 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(<2 x s32>) = COPY $vgpr2_vgpr3
789 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(<2 x s32>) = COPY $vgpr4_vgpr5
790 ; GREEDY: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
791 ; GREEDY: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY2]](<2 x s32>)
792 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](<2 x s32>)
793 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
794 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
795 ; GREEDY: [[BUILD_VECTOR:%[0-9]+]]:vgpr(<2 x s32>) = G_BUILD_VECTOR [[SELECT]](s32), [[SELECT1]](s32)
796 %0:_(s32) = COPY $vgpr0
797 %1:_(s32) = COPY $vgpr1
798 %2:_(<2 x s32>) = COPY $vgpr2_vgpr3
799 %3:_(<2 x s32>) = COPY $vgpr4_vgpr5
800 %4:_(s1) = G_ICMP intpred(ne), %0, %1
801 %5:_(<2 x s32>) = G_SELECT %4, %2, %3
805 name: select_v4s16_scc_ss
809 liveins: $sgpr0, $sgpr1, $sgpr2_sgpr3, $sgpr4_sgpr5
810 ; FAST-LABEL: name: select_v4s16_scc_ss
811 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
812 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
813 ; FAST: [[COPY2:%[0-9]+]]:sgpr(<4 x s16>) = COPY $sgpr2_sgpr3
814 ; FAST: [[COPY3:%[0-9]+]]:sgpr(<4 x s16>) = COPY $sgpr4_sgpr5
815 ; FAST: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
816 ; FAST: [[SELECT:%[0-9]+]]:sgpr(<4 x s16>) = G_SELECT [[ICMP]](s1), [[COPY2]], [[COPY3]]
817 ; GREEDY-LABEL: name: select_v4s16_scc_ss
818 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
819 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
820 ; GREEDY: [[COPY2:%[0-9]+]]:sgpr(<4 x s16>) = COPY $sgpr2_sgpr3
821 ; GREEDY: [[COPY3:%[0-9]+]]:sgpr(<4 x s16>) = COPY $sgpr4_sgpr5
822 ; GREEDY: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
823 ; GREEDY: [[SELECT:%[0-9]+]]:sgpr(<4 x s16>) = G_SELECT [[ICMP]](s1), [[COPY2]], [[COPY3]]
824 %0:_(s32) = COPY $sgpr0
825 %1:_(s32) = COPY $sgpr1
826 %2:_(<4 x s16>) = COPY $sgpr2_sgpr3
827 %3:_(<4 x s16>) = COPY $sgpr4_sgpr5
828 %4:_(s1) = G_ICMP intpred(ne), %0, %1
829 %5:_(<4 x s16>) = G_SELECT %4, %2, %3
833 name: select_v4s16_scc_sv
837 liveins: $sgpr0, $sgpr1, $sgpr2_sgpr3, $vgpr0_vgpr1
838 ; FAST-LABEL: name: select_v4s16_scc_sv
839 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
840 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
841 ; FAST: [[COPY2:%[0-9]+]]:sgpr(<4 x s16>) = COPY $sgpr2_sgpr3
842 ; FAST: [[COPY3:%[0-9]+]]:vgpr(<4 x s16>) = COPY $vgpr0_vgpr1
843 ; FAST: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
844 ; FAST: [[UV:%[0-9]+]]:vgpr(<2 x s16>), [[UV1:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY2]](<4 x s16>)
845 ; FAST: [[UV2:%[0-9]+]]:vgpr(<2 x s16>), [[UV3:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY3]](<4 x s16>)
846 ; FAST: [[SELECT:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
847 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
848 ; FAST: [[CONCAT_VECTORS:%[0-9]+]]:vgpr(<4 x s16>) = G_CONCAT_VECTORS [[SELECT]](<2 x s16>), [[SELECT1]](<2 x s16>)
849 ; GREEDY-LABEL: name: select_v4s16_scc_sv
850 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
851 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
852 ; GREEDY: [[COPY2:%[0-9]+]]:sgpr(<4 x s16>) = COPY $sgpr2_sgpr3
853 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(<4 x s16>) = COPY $vgpr0_vgpr1
854 ; GREEDY: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
855 ; GREEDY: [[UV:%[0-9]+]]:vgpr(<2 x s16>), [[UV1:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY2]](<4 x s16>)
856 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(<2 x s16>), [[UV3:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY3]](<4 x s16>)
857 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
858 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
859 ; GREEDY: [[CONCAT_VECTORS:%[0-9]+]]:vgpr(<4 x s16>) = G_CONCAT_VECTORS [[SELECT]](<2 x s16>), [[SELECT1]](<2 x s16>)
860 %0:_(s32) = COPY $sgpr0
861 %1:_(s32) = COPY $sgpr1
862 %2:_(<4 x s16>) = COPY $sgpr2_sgpr3
863 %3:_(<4 x s16>) = COPY $vgpr0_vgpr1
864 %4:_(s1) = G_ICMP intpred(ne), %0, %1
865 %5:_(<4 x s16>) = G_SELECT %4, %2, %3
870 name: select_v4s16_scc_vs
874 liveins: $sgpr0, $sgpr1, $sgpr2_sgpr3, $vgpr0_vgpr1
875 ; FAST-LABEL: name: select_v4s16_scc_vs
876 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
877 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
878 ; FAST: [[COPY2:%[0-9]+]]:sgpr(<4 x s16>) = COPY $sgpr2_sgpr3
879 ; FAST: [[COPY3:%[0-9]+]]:vgpr(<4 x s16>) = COPY $vgpr0_vgpr1
880 ; FAST: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
881 ; FAST: [[UV:%[0-9]+]]:vgpr(<2 x s16>), [[UV1:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY3]](<4 x s16>)
882 ; FAST: [[UV2:%[0-9]+]]:vgpr(<2 x s16>), [[UV3:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY2]](<4 x s16>)
883 ; FAST: [[SELECT:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
884 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
885 ; FAST: [[CONCAT_VECTORS:%[0-9]+]]:vgpr(<4 x s16>) = G_CONCAT_VECTORS [[SELECT]](<2 x s16>), [[SELECT1]](<2 x s16>)
886 ; GREEDY-LABEL: name: select_v4s16_scc_vs
887 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
888 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
889 ; GREEDY: [[COPY2:%[0-9]+]]:sgpr(<4 x s16>) = COPY $sgpr2_sgpr3
890 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(<4 x s16>) = COPY $vgpr0_vgpr1
891 ; GREEDY: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
892 ; GREEDY: [[UV:%[0-9]+]]:vgpr(<2 x s16>), [[UV1:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY3]](<4 x s16>)
893 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(<2 x s16>), [[UV3:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY2]](<4 x s16>)
894 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
895 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
896 ; GREEDY: [[CONCAT_VECTORS:%[0-9]+]]:vgpr(<4 x s16>) = G_CONCAT_VECTORS [[SELECT]](<2 x s16>), [[SELECT1]](<2 x s16>)
897 %0:_(s32) = COPY $sgpr0
898 %1:_(s32) = COPY $sgpr1
899 %2:_(<4 x s16>) = COPY $sgpr2_sgpr3
900 %3:_(<4 x s16>) = COPY $vgpr0_vgpr1
901 %4:_(s1) = G_ICMP intpred(ne), %0, %1
902 %5:_(<4 x s16>) = G_SELECT %4, %3, %2
906 name: select_v4s16_scc_vv
910 liveins: $sgpr0, $sgpr1, $sgpr2_sgpr3, $vgpr0_vgpr1, $vgpr2_vgpr3
911 ; FAST-LABEL: name: select_v4s16_scc_vv
912 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
913 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
914 ; FAST: [[COPY2:%[0-9]+]]:vgpr(<4 x s16>) = COPY $vgpr0_vgpr1
915 ; FAST: [[COPY3:%[0-9]+]]:vgpr(<4 x s16>) = COPY $vgpr2_vgpr3
916 ; FAST: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
917 ; FAST: [[UV:%[0-9]+]]:vgpr(<2 x s16>), [[UV1:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY2]](<4 x s16>)
918 ; FAST: [[UV2:%[0-9]+]]:vgpr(<2 x s16>), [[UV3:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY3]](<4 x s16>)
919 ; FAST: [[SELECT:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
920 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
921 ; FAST: [[CONCAT_VECTORS:%[0-9]+]]:vgpr(<4 x s16>) = G_CONCAT_VECTORS [[SELECT]](<2 x s16>), [[SELECT1]](<2 x s16>)
922 ; GREEDY-LABEL: name: select_v4s16_scc_vv
923 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
924 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
925 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(<4 x s16>) = COPY $vgpr0_vgpr1
926 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(<4 x s16>) = COPY $vgpr2_vgpr3
927 ; GREEDY: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
928 ; GREEDY: [[UV:%[0-9]+]]:vgpr(<2 x s16>), [[UV1:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY2]](<4 x s16>)
929 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(<2 x s16>), [[UV3:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY3]](<4 x s16>)
930 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
931 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
932 ; GREEDY: [[CONCAT_VECTORS:%[0-9]+]]:vgpr(<4 x s16>) = G_CONCAT_VECTORS [[SELECT]](<2 x s16>), [[SELECT1]](<2 x s16>)
933 %0:_(s32) = COPY $sgpr0
934 %1:_(s32) = COPY $sgpr1
935 %2:_(<4 x s16>) = COPY $vgpr0_vgpr1
936 %3:_(<4 x s16>) = COPY $vgpr2_vgpr3
937 %4:_(s1) = G_ICMP intpred(ne), %0, %1
938 %5:_(<4 x s16>) = G_SELECT %4, %2, %3
942 name: select_v4s16_vcc_ss
946 liveins: $sgpr0_sgpr1, $sgpr2_sgpr3, $vgpr0, $vgpr1
947 ; FAST-LABEL: name: select_v4s16_vcc_ss
948 ; FAST: [[COPY:%[0-9]+]]:sgpr(<4 x s16>) = COPY $sgpr0_sgpr1
949 ; FAST: [[COPY1:%[0-9]+]]:sgpr(<4 x s16>) = COPY $sgpr2_sgpr3
950 ; FAST: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
951 ; FAST: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
952 ; FAST: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY2]](s32), [[COPY3]]
953 ; FAST: [[UV:%[0-9]+]]:vgpr(<2 x s16>), [[UV1:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY]](<4 x s16>)
954 ; FAST: [[UV2:%[0-9]+]]:vgpr(<2 x s16>), [[UV3:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY1]](<4 x s16>)
955 ; FAST: [[SELECT:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
956 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
957 ; FAST: [[CONCAT_VECTORS:%[0-9]+]]:vgpr(<4 x s16>) = G_CONCAT_VECTORS [[SELECT]](<2 x s16>), [[SELECT1]](<2 x s16>)
958 ; GREEDY-LABEL: name: select_v4s16_vcc_ss
959 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(<4 x s16>) = COPY $sgpr0_sgpr1
960 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(<4 x s16>) = COPY $sgpr2_sgpr3
961 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
962 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
963 ; GREEDY: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY2]](s32), [[COPY3]]
964 ; GREEDY: [[UV:%[0-9]+]]:vgpr(<2 x s16>), [[UV1:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY]](<4 x s16>)
965 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(<2 x s16>), [[UV3:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY1]](<4 x s16>)
966 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
967 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
968 ; GREEDY: [[CONCAT_VECTORS:%[0-9]+]]:vgpr(<4 x s16>) = G_CONCAT_VECTORS [[SELECT]](<2 x s16>), [[SELECT1]](<2 x s16>)
969 %0:_(<4 x s16>) = COPY $sgpr0_sgpr1
970 %1:_(<4 x s16>) = COPY $sgpr2_sgpr3
971 %2:_(s32) = COPY $vgpr0
972 %3:_(s32) = COPY $vgpr1
973 %4:_(s1) = G_ICMP intpred(ne), %2, %3
974 %5:_(<4 x s16>) = G_SELECT %4, %0, %1
978 name: select_v4s16_vcc_sv
982 liveins: $sgpr0_sgpr1, $vgpr0, $vgpr1, $vgpr2_vgpr3
983 ; CHECK-LABEL: name: select_v4s16_vcc_sv
984 ; FAST-LABEL: name: select_v4s16_vcc_sv
985 ; FAST: [[COPY:%[0-9]+]]:sgpr(<4 x s16>) = COPY $sgpr0_sgpr1
986 ; FAST: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
987 ; FAST: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
988 ; FAST: [[COPY3:%[0-9]+]]:vgpr(<4 x s16>) = COPY $vgpr2_vgpr3
989 ; FAST: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY1]](s32), [[COPY2]]
990 ; FAST: [[UV:%[0-9]+]]:vgpr(<2 x s16>), [[UV1:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY]](<4 x s16>)
991 ; FAST: [[UV2:%[0-9]+]]:vgpr(<2 x s16>), [[UV3:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY3]](<4 x s16>)
992 ; FAST: [[SELECT:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
993 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
994 ; FAST: [[CONCAT_VECTORS:%[0-9]+]]:vgpr(<4 x s16>) = G_CONCAT_VECTORS [[SELECT]](<2 x s16>), [[SELECT1]](<2 x s16>)
995 ; GREEDY-LABEL: name: select_v4s16_vcc_sv
996 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(<4 x s16>) = COPY $sgpr0_sgpr1
997 ; GREEDY: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
998 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
999 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(<4 x s16>) = COPY $vgpr2_vgpr3
1000 ; GREEDY: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY1]](s32), [[COPY2]]
1001 ; GREEDY: [[UV:%[0-9]+]]:vgpr(<2 x s16>), [[UV1:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY]](<4 x s16>)
1002 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(<2 x s16>), [[UV3:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY3]](<4 x s16>)
1003 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
1004 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
1005 ; GREEDY: [[CONCAT_VECTORS:%[0-9]+]]:vgpr(<4 x s16>) = G_CONCAT_VECTORS [[SELECT]](<2 x s16>), [[SELECT1]](<2 x s16>)
1006 %0:_(<4 x s16>) = COPY $sgpr0_sgpr1
1007 %1:_(s32) = COPY $vgpr0
1008 %2:_(s32) = COPY $vgpr1
1009 %3:_(<4 x s16>) = COPY $vgpr2_vgpr3
1010 %4:_(s1) = G_ICMP intpred(ne), %1, %2
1011 %5:_(<4 x s16>) = G_SELECT %4, %0, %3
1015 name: select_v4s16_vcc_vs
1019 liveins: $sgpr0_sgpr1, $vgpr0, $vgpr1, $vgpr2_vgpr3
1020 ; FAST-LABEL: name: select_v4s16_vcc_vs
1021 ; FAST: [[COPY:%[0-9]+]]:sgpr(<4 x s16>) = COPY $sgpr0_sgpr1
1022 ; FAST: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
1023 ; FAST: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
1024 ; FAST: [[COPY3:%[0-9]+]]:vgpr(<4 x s16>) = COPY $vgpr2_vgpr3
1025 ; FAST: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY1]](s32), [[COPY2]]
1026 ; FAST: [[UV:%[0-9]+]]:vgpr(<2 x s16>), [[UV1:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY3]](<4 x s16>)
1027 ; FAST: [[UV2:%[0-9]+]]:vgpr(<2 x s16>), [[UV3:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY]](<4 x s16>)
1028 ; FAST: [[SELECT:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
1029 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
1030 ; FAST: [[CONCAT_VECTORS:%[0-9]+]]:vgpr(<4 x s16>) = G_CONCAT_VECTORS [[SELECT]](<2 x s16>), [[SELECT1]](<2 x s16>)
1031 ; GREEDY-LABEL: name: select_v4s16_vcc_vs
1032 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(<4 x s16>) = COPY $sgpr0_sgpr1
1033 ; GREEDY: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
1034 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
1035 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(<4 x s16>) = COPY $vgpr2_vgpr3
1036 ; GREEDY: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY1]](s32), [[COPY2]]
1037 ; GREEDY: [[UV:%[0-9]+]]:vgpr(<2 x s16>), [[UV1:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY3]](<4 x s16>)
1038 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(<2 x s16>), [[UV3:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY]](<4 x s16>)
1039 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
1040 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
1041 ; GREEDY: [[CONCAT_VECTORS:%[0-9]+]]:vgpr(<4 x s16>) = G_CONCAT_VECTORS [[SELECT]](<2 x s16>), [[SELECT1]](<2 x s16>)
1042 %0:_(<4 x s16>) = COPY $sgpr0_sgpr1
1043 %1:_(s32) = COPY $vgpr0
1044 %2:_(s32) = COPY $vgpr1
1045 %3:_(<4 x s16>) = COPY $vgpr2_vgpr3
1046 %4:_(s1) = G_ICMP intpred(ne), %1, %2
1047 %5:_(<4 x s16>) = G_SELECT %4, %3, %0
1051 name: select_v4s16_vcc_vv
1055 liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5
1056 ; FAST-LABEL: name: select_v4s16_vcc_vv
1057 ; FAST: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
1058 ; FAST: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
1059 ; FAST: [[COPY2:%[0-9]+]]:vgpr(<4 x s16>) = COPY $vgpr2_vgpr3
1060 ; FAST: [[COPY3:%[0-9]+]]:vgpr(<4 x s16>) = COPY $vgpr4_vgpr5
1061 ; FAST: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
1062 ; FAST: [[UV:%[0-9]+]]:vgpr(<2 x s16>), [[UV1:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY2]](<4 x s16>)
1063 ; FAST: [[UV2:%[0-9]+]]:vgpr(<2 x s16>), [[UV3:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY3]](<4 x s16>)
1064 ; FAST: [[SELECT:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
1065 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
1066 ; FAST: [[CONCAT_VECTORS:%[0-9]+]]:vgpr(<4 x s16>) = G_CONCAT_VECTORS [[SELECT]](<2 x s16>), [[SELECT1]](<2 x s16>)
1067 ; GREEDY-LABEL: name: select_v4s16_vcc_vv
1068 ; GREEDY: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
1069 ; GREEDY: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
1070 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(<4 x s16>) = COPY $vgpr2_vgpr3
1071 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(<4 x s16>) = COPY $vgpr4_vgpr5
1072 ; GREEDY: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
1073 ; GREEDY: [[UV:%[0-9]+]]:vgpr(<2 x s16>), [[UV1:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY2]](<4 x s16>)
1074 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(<2 x s16>), [[UV3:%[0-9]+]]:vgpr(<2 x s16>) = G_UNMERGE_VALUES [[COPY3]](<4 x s16>)
1075 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
1076 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(<2 x s16>) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
1077 ; GREEDY: [[CONCAT_VECTORS:%[0-9]+]]:vgpr(<4 x s16>) = G_CONCAT_VECTORS [[SELECT]](<2 x s16>), [[SELECT1]](<2 x s16>)
1078 %0:_(s32) = COPY $vgpr0
1079 %1:_(s32) = COPY $vgpr1
1080 %2:_(<4 x s16>) = COPY $vgpr2_vgpr3
1081 %3:_(<4 x s16>) = COPY $vgpr4_vgpr5
1082 %4:_(s1) = G_ICMP intpred(ne), %0, %1
1083 %5:_(<4 x s16>) = G_SELECT %4, %2, %3
1087 name: select_p1_scc_ss
1091 liveins: $sgpr0, $sgpr1, $sgpr2_sgpr3, $sgpr4_sgpr5
1092 ; FAST-LABEL: name: select_p1_scc_ss
1093 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
1094 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
1095 ; FAST: [[COPY2:%[0-9]+]]:sgpr(p1) = COPY $sgpr2_sgpr3
1096 ; FAST: [[COPY3:%[0-9]+]]:sgpr(p1) = COPY $sgpr4_sgpr5
1097 ; FAST: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
1098 ; FAST: [[SELECT:%[0-9]+]]:sgpr(p1) = G_SELECT [[ICMP]](s1), [[COPY2]], [[COPY3]]
1099 ; GREEDY-LABEL: name: select_p1_scc_ss
1100 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
1101 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
1102 ; GREEDY: [[COPY2:%[0-9]+]]:sgpr(p1) = COPY $sgpr2_sgpr3
1103 ; GREEDY: [[COPY3:%[0-9]+]]:sgpr(p1) = COPY $sgpr4_sgpr5
1104 ; GREEDY: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
1105 ; GREEDY: [[SELECT:%[0-9]+]]:sgpr(p1) = G_SELECT [[ICMP]](s1), [[COPY2]], [[COPY3]]
1106 %0:_(s32) = COPY $sgpr0
1107 %1:_(s32) = COPY $sgpr1
1108 %2:_(p1) = COPY $sgpr2_sgpr3
1109 %3:_(p1) = COPY $sgpr4_sgpr5
1110 %4:_(s1) = G_ICMP intpred(ne), %0, %1
1111 %5:_(p1) = G_SELECT %4, %2, %3
1115 name: select_p1_scc_sv
1119 liveins: $sgpr0, $sgpr1, $sgpr2_sgpr3, $vgpr0_vgpr1
1120 ; FAST-LABEL: name: select_p1_scc_sv
1121 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
1122 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
1123 ; FAST: [[COPY2:%[0-9]+]]:sgpr(p1) = COPY $sgpr2_sgpr3
1124 ; FAST: [[COPY3:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr1
1125 ; FAST: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
1126 ; FAST: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY2]](p1)
1127 ; FAST: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](p1)
1128 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
1129 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
1130 ; FAST: [[MV:%[0-9]+]]:vgpr(p1) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
1131 ; GREEDY-LABEL: name: select_p1_scc_sv
1132 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
1133 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
1134 ; GREEDY: [[COPY2:%[0-9]+]]:sgpr(p1) = COPY $sgpr2_sgpr3
1135 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr1
1136 ; GREEDY: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
1137 ; GREEDY: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY2]](p1)
1138 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](p1)
1139 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
1140 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
1141 ; GREEDY: [[MV:%[0-9]+]]:vgpr(p1) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
1142 %0:_(s32) = COPY $sgpr0
1143 %1:_(s32) = COPY $sgpr1
1144 %2:_(p1) = COPY $sgpr2_sgpr3
1145 %3:_(p1) = COPY $vgpr0_vgpr1
1146 %4:_(s1) = G_ICMP intpred(ne), %0, %1
1147 %5:_(p1) = G_SELECT %4, %2, %3
1152 name: select_p1_scc_vs
1156 liveins: $sgpr0, $sgpr1, $sgpr2_sgpr3, $vgpr0_vgpr1
1157 ; FAST-LABEL: name: select_p1_scc_vs
1158 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
1159 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
1160 ; FAST: [[COPY2:%[0-9]+]]:sgpr(p1) = COPY $sgpr2_sgpr3
1161 ; FAST: [[COPY3:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr1
1162 ; FAST: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
1163 ; FAST: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](p1)
1164 ; FAST: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY2]](p1)
1165 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
1166 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
1167 ; FAST: [[MV:%[0-9]+]]:vgpr(p1) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
1168 ; GREEDY-LABEL: name: select_p1_scc_vs
1169 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
1170 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
1171 ; GREEDY: [[COPY2:%[0-9]+]]:sgpr(p1) = COPY $sgpr2_sgpr3
1172 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr1
1173 ; GREEDY: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
1174 ; GREEDY: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](p1)
1175 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY2]](p1)
1176 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
1177 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
1178 ; GREEDY: [[MV:%[0-9]+]]:vgpr(p1) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
1179 %0:_(s32) = COPY $sgpr0
1180 %1:_(s32) = COPY $sgpr1
1181 %2:_(p1) = COPY $sgpr2_sgpr3
1182 %3:_(p1) = COPY $vgpr0_vgpr1
1183 %4:_(s1) = G_ICMP intpred(ne), %0, %1
1184 %5:_(p1) = G_SELECT %4, %3, %2
1188 name: select_p1_scc_vv
1192 liveins: $sgpr0, $sgpr1, $sgpr2_sgpr3, $vgpr0_vgpr1, $vgpr2_vgpr3
1193 ; FAST-LABEL: name: select_p1_scc_vv
1194 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
1195 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
1196 ; FAST: [[COPY2:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr1
1197 ; FAST: [[COPY3:%[0-9]+]]:vgpr(p1) = COPY $vgpr2_vgpr3
1198 ; FAST: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
1199 ; FAST: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY2]](p1)
1200 ; FAST: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](p1)
1201 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
1202 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
1203 ; FAST: [[MV:%[0-9]+]]:vgpr(p1) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
1204 ; GREEDY-LABEL: name: select_p1_scc_vv
1205 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
1206 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
1207 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr1
1208 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(p1) = COPY $vgpr2_vgpr3
1209 ; GREEDY: [[ICMP:%[0-9]+]]:scc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
1210 ; GREEDY: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY2]](p1)
1211 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](p1)
1212 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
1213 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
1214 ; GREEDY: [[MV:%[0-9]+]]:vgpr(p1) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
1215 %0:_(s32) = COPY $sgpr0
1216 %1:_(s32) = COPY $sgpr1
1217 %2:_(p1) = COPY $vgpr0_vgpr1
1218 %3:_(p1) = COPY $vgpr2_vgpr3
1219 %4:_(s1) = G_ICMP intpred(ne), %0, %1
1220 %5:_(p1) = G_SELECT %4, %2, %3
1224 name: select_p1_vcc_ss
1228 liveins: $sgpr0_sgpr1, $sgpr2_sgpr3, $vgpr0, $vgpr1
1229 ; FAST-LABEL: name: select_p1_vcc_ss
1230 ; FAST: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1
1231 ; FAST: [[COPY1:%[0-9]+]]:sgpr(p1) = COPY $sgpr2_sgpr3
1232 ; FAST: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
1233 ; FAST: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
1234 ; FAST: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY2]](s32), [[COPY3]]
1235 ; FAST: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY]](p1)
1236 ; FAST: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY1]](p1)
1237 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
1238 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
1239 ; FAST: [[MV:%[0-9]+]]:vgpr(p1) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
1240 ; GREEDY-LABEL: name: select_p1_vcc_ss
1241 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1
1242 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(p1) = COPY $sgpr2_sgpr3
1243 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
1244 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
1245 ; GREEDY: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY2]](s32), [[COPY3]]
1246 ; GREEDY: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY]](p1)
1247 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY1]](p1)
1248 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
1249 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
1250 ; GREEDY: [[MV:%[0-9]+]]:vgpr(p1) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
1251 %0:_(p1) = COPY $sgpr0_sgpr1
1252 %1:_(p1) = COPY $sgpr2_sgpr3
1253 %2:_(s32) = COPY $vgpr0
1254 %3:_(s32) = COPY $vgpr1
1255 %4:_(s1) = G_ICMP intpred(ne), %2, %3
1256 %5:_(p1) = G_SELECT %4, %0, %1
1260 name: select_p1_vcc_sv
1264 liveins: $sgpr0_sgpr1, $vgpr0, $vgpr1, $vgpr2_vgpr3
1265 ; FAST-LABEL: name: select_p1_vcc_sv
1266 ; FAST: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1
1267 ; FAST: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
1268 ; FAST: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
1269 ; FAST: [[COPY3:%[0-9]+]]:vgpr(p1) = COPY $vgpr2_vgpr3
1270 ; FAST: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY1]](s32), [[COPY2]]
1271 ; FAST: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY]](p1)
1272 ; FAST: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](p1)
1273 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
1274 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
1275 ; FAST: [[MV:%[0-9]+]]:vgpr(p1) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
1276 ; GREEDY-LABEL: name: select_p1_vcc_sv
1277 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1
1278 ; GREEDY: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
1279 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
1280 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(p1) = COPY $vgpr2_vgpr3
1281 ; GREEDY: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY1]](s32), [[COPY2]]
1282 ; GREEDY: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY]](p1)
1283 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](p1)
1284 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
1285 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
1286 ; GREEDY: [[MV:%[0-9]+]]:vgpr(p1) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
1287 %0:_(p1) = COPY $sgpr0_sgpr1
1288 %1:_(s32) = COPY $vgpr0
1289 %2:_(s32) = COPY $vgpr1
1290 %3:_(p1) = COPY $vgpr2_vgpr3
1291 %4:_(s1) = G_ICMP intpred(ne), %1, %2
1292 %5:_(p1) = G_SELECT %4, %0, %3
1296 name: select_p1_vcc_vs
1300 liveins: $sgpr0_sgpr1, $vgpr0, $vgpr1, $vgpr2_vgpr3
1301 ; FAST-LABEL: name: select_p1_vcc_vs
1302 ; FAST: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1
1303 ; FAST: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
1304 ; FAST: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
1305 ; FAST: [[COPY3:%[0-9]+]]:vgpr(p1) = COPY $vgpr2_vgpr3
1306 ; FAST: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY1]](s32), [[COPY2]]
1307 ; FAST: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](p1)
1308 ; FAST: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY]](p1)
1309 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
1310 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
1311 ; FAST: [[MV:%[0-9]+]]:vgpr(p1) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
1312 ; GREEDY-LABEL: name: select_p1_vcc_vs
1313 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1
1314 ; GREEDY: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
1315 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
1316 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(p1) = COPY $vgpr2_vgpr3
1317 ; GREEDY: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY1]](s32), [[COPY2]]
1318 ; GREEDY: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](p1)
1319 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY]](p1)
1320 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
1321 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
1322 ; GREEDY: [[MV:%[0-9]+]]:vgpr(p1) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
1323 %0:_(p1) = COPY $sgpr0_sgpr1
1324 %1:_(s32) = COPY $vgpr0
1325 %2:_(s32) = COPY $vgpr1
1326 %3:_(p1) = COPY $vgpr2_vgpr3
1327 %4:_(s1) = G_ICMP intpred(ne), %1, %2
1328 %5:_(p1) = G_SELECT %4, %3, %0
1332 name: select_p1_vcc_vv
1336 liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5
1337 ; FAST-LABEL: name: select_p1_vcc_vv
1338 ; FAST: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
1339 ; FAST: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
1340 ; FAST: [[COPY2:%[0-9]+]]:vgpr(p1) = COPY $vgpr2_vgpr3
1341 ; FAST: [[COPY3:%[0-9]+]]:vgpr(p1) = COPY $vgpr4_vgpr5
1342 ; FAST: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
1343 ; FAST: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY2]](p1)
1344 ; FAST: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](p1)
1345 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
1346 ; FAST: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
1347 ; FAST: [[MV:%[0-9]+]]:vgpr(p1) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
1348 ; GREEDY-LABEL: name: select_p1_vcc_vv
1349 ; GREEDY: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
1350 ; GREEDY: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
1351 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(p1) = COPY $vgpr2_vgpr3
1352 ; GREEDY: [[COPY3:%[0-9]+]]:vgpr(p1) = COPY $vgpr4_vgpr5
1353 ; GREEDY: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
1354 ; GREEDY: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY2]](p1)
1355 ; GREEDY: [[UV2:%[0-9]+]]:vgpr(s32), [[UV3:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY3]](p1)
1356 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]
1357 ; GREEDY: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]
1358 ; GREEDY: [[MV:%[0-9]+]]:vgpr(p1) = G_MERGE_VALUES [[SELECT]](s32), [[SELECT1]](s32)
1359 %0:_(s32) = COPY $vgpr0
1360 %1:_(s32) = COPY $vgpr1
1361 %2:_(p1) = COPY $vgpr2_vgpr3
1362 %3:_(p1) = COPY $vgpr4_vgpr5
1363 %4:_(s1) = G_ICMP intpred(ne), %0, %1
1364 %5:_(p1) = G_SELECT %4, %2, %3
1368 name: select_s32_vgpr_vv
1372 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
1373 ; FAST-LABEL: name: select_s32_vgpr_vv
1374 ; FAST: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
1375 ; FAST: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
1376 ; FAST: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr2
1377 ; FAST: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)
1378 ; FAST: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)
1379 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY1]], [[COPY2]]
1380 ; GREEDY-LABEL: name: select_s32_vgpr_vv
1381 ; GREEDY: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
1382 ; GREEDY: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
1383 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr2
1384 ; GREEDY: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)
1385 ; GREEDY: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)
1386 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY1]], [[COPY2]]
1387 %0:_(s32) = COPY $vgpr0
1388 %1:_(s32) = COPY $vgpr1
1389 %2:_(s32) = COPY $vgpr2
1390 %3:_(s1) = G_TRUNC %0
1391 %4:_(s32) = G_SELECT %3, %1, %2
1395 name: select_s32_vgpr_ss
1399 liveins: $vgpr0, $sgpr0, $sgpr1
1400 ; FAST-LABEL: name: select_s32_vgpr_ss
1401 ; FAST: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
1402 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
1403 ; FAST: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
1404 ; FAST: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)
1405 ; FAST: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)
1406 ; FAST: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)
1407 ; FAST: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[COPY2]](s32)
1408 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY5]]
1409 ; GREEDY-LABEL: name: select_s32_vgpr_ss
1410 ; GREEDY: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
1411 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
1412 ; GREEDY: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
1413 ; GREEDY: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)
1414 ; GREEDY: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)
1415 ; GREEDY: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)
1416 ; GREEDY: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[COPY2]](s32)
1417 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY5]]
1418 %0:_(s32) = COPY $vgpr0
1419 %1:_(s32) = COPY $sgpr0
1420 %2:_(s32) = COPY $sgpr1
1421 %3:_(s1) = G_TRUNC %0
1422 %4:_(s32) = G_SELECT %3, %1, %2
1426 name: select_s32_sgpr_vv
1430 liveins: $sgpr0, $vgpr0, $vgpr1
1431 ; FAST-LABEL: name: select_s32_sgpr_vv
1432 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
1433 ; FAST: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
1434 ; FAST: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
1435 ; FAST: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)
1436 ; FAST: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)
1437 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY1]], [[COPY2]]
1438 ; GREEDY-LABEL: name: select_s32_sgpr_vv
1439 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
1440 ; GREEDY: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
1441 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
1442 ; GREEDY: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)
1443 ; GREEDY: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)
1444 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY1]], [[COPY2]]
1445 %0:_(s32) = COPY $sgpr0
1446 %1:_(s32) = COPY $vgpr0
1447 %2:_(s32) = COPY $vgpr1
1448 %3:_(s1) = G_TRUNC %0
1449 %4:_(s32) = G_SELECT %3, %1, %2
1453 name: select_s32_sgpr_vs
1457 liveins: $sgpr0, $vgpr0, $sgpr1
1458 ; FAST-LABEL: name: select_s32_sgpr_vs
1459 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
1460 ; FAST: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
1461 ; FAST: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
1462 ; FAST: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)
1463 ; FAST: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)
1464 ; FAST: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[COPY2]](s32)
1465 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY1]], [[COPY4]]
1466 ; GREEDY-LABEL: name: select_s32_sgpr_vs
1467 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
1468 ; GREEDY: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
1469 ; GREEDY: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
1470 ; GREEDY: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)
1471 ; GREEDY: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)
1472 ; GREEDY: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[COPY2]](s32)
1473 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY1]], [[COPY4]]
1474 %0:_(s32) = COPY $sgpr0
1475 %1:_(s32) = COPY $vgpr0
1476 %2:_(s32) = COPY $sgpr1
1477 %3:_(s1) = G_TRUNC %0
1478 %4:_(s32) = G_SELECT %3, %1, %2
1482 name: select_s32_sgpr_sv
1486 liveins: $sgpr0, $sgpr0, $vgpr0
1487 ; FAST-LABEL: name: select_s32_sgpr_sv
1488 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
1489 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
1490 ; FAST: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
1491 ; FAST: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)
1492 ; FAST: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)
1493 ; FAST: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)
1494 ; FAST: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY2]]
1495 ; GREEDY-LABEL: name: select_s32_sgpr_sv
1496 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
1497 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
1498 ; GREEDY: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
1499 ; GREEDY: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)
1500 ; GREEDY: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)
1501 ; GREEDY: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)
1502 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY2]]
1503 %0:_(s32) = COPY $sgpr0
1504 %1:_(s32) = COPY $sgpr1
1505 %2:_(s32) = COPY $vgpr0
1506 %3:_(s1) = G_TRUNC %0
1507 %4:_(s32) = G_SELECT %3, %1, %2
1510 # FIXME: greedy unnecessairly uses vcc/vgpr
1512 name: select_s32_sgpr_ss
1516 liveins: $sgpr0, $sgpr1, $sgpr2
1517 ; FAST-LABEL: name: select_s32_sgpr_ss
1518 ; FAST: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
1519 ; FAST: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
1520 ; FAST: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr2
1521 ; FAST: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)
1522 ; FAST: [[COPY3:%[0-9]+]]:scc(s1) = COPY [[TRUNC]](s1)
1523 ; FAST: [[SELECT:%[0-9]+]]:sgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY1]], [[COPY2]]
1524 ; GREEDY-LABEL: name: select_s32_sgpr_ss
1525 ; GREEDY: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
1526 ; GREEDY: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
1527 ; GREEDY: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr2
1528 ; GREEDY: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)
1529 ; GREEDY: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)
1530 ; GREEDY: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)
1531 ; GREEDY: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[COPY2]](s32)
1532 ; GREEDY: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY5]]
1533 %0:_(s32) = COPY $sgpr0
1534 %1:_(s32) = COPY $sgpr1
1535 %2:_(s32) = COPY $sgpr2
1536 %3:_(s1) = G_TRUNC %0
1537 %4:_(s32) = G_SELECT %3, %1, %2