1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -march=amdgcn -mcpu=fiji -run-pass=regbankselect  -regbankselect-fast -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX8 %s
3# RUN: llc -march=amdgcn -mcpu=fiji -run-pass=regbankselect -regbankselect-greedy  -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX8  %s
4
5---
6name: icmp_eq_s16_ss
7legalized: true
8
9body: |
10  bb.0:
11    liveins: $sgpr0, $sgpr1
12    ; GFX8-LABEL: name: icmp_eq_s16_ss
13    ; GFX8: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
14    ; GFX8: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
15    ; GFX8: [[TRUNC:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY]](s32)
16    ; GFX8: [[TRUNC1:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY1]](s32)
17    ; GFX8: [[COPY2:%[0-9]+]]:vgpr(s16) = COPY [[TRUNC]](s16)
18    ; GFX8: [[COPY3:%[0-9]+]]:vgpr(s16) = COPY [[TRUNC1]](s16)
19    ; GFX8: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY2]](s16), [[COPY3]]
20    %0:_(s32) = COPY $sgpr0
21    %1:_(s32) = COPY $sgpr1
22    %2:_(s16) = G_TRUNC %0
23    %3:_(s16) = G_TRUNC %1
24    %4:_(s1) = G_ICMP intpred(eq), %2, %3
25...
26
27---
28name: icmp_eq_s16_sv
29legalized: true
30
31body: |
32  bb.0:
33    liveins: $sgpr0, $vgpr0
34    ; GFX8-LABEL: name: icmp_eq_s16_sv
35    ; GFX8: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
36    ; GFX8: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
37    ; GFX8: [[TRUNC:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY]](s32)
38    ; GFX8: [[TRUNC1:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY1]](s32)
39    ; GFX8: [[COPY2:%[0-9]+]]:vgpr(s16) = COPY [[TRUNC]](s16)
40    ; GFX8: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY2]](s16), [[TRUNC1]]
41    %0:_(s32) = COPY $sgpr0
42    %1:_(s32) = COPY $vgpr0
43    %2:_(s16) = G_TRUNC %0
44    %3:_(s16) = G_TRUNC %1
45    %4:_(s1) = G_ICMP intpred(eq), %2, %3
46...
47
48---
49name: icmp_eq_s16_vs
50legalized: true
51
52body: |
53  bb.0:
54    liveins: $sgpr0, $vgpr0
55    ; GFX8-LABEL: name: icmp_eq_s16_vs
56    ; GFX8: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
57    ; GFX8: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
58    ; GFX8: [[TRUNC:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY]](s32)
59    ; GFX8: [[TRUNC1:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY1]](s32)
60    ; GFX8: [[COPY2:%[0-9]+]]:vgpr(s16) = COPY [[TRUNC]](s16)
61    ; GFX8: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY2]](s16), [[TRUNC1]]
62    %0:_(s32) = COPY $sgpr0
63    %1:_(s32) = COPY $vgpr0
64    %2:_(s16) = G_TRUNC %0
65    %3:_(s16) = G_TRUNC %1
66    %4:_(s1) = G_ICMP intpred(eq), %2, %3
67...
68
69---
70name: icmp_eq_s16_vv
71legalized: true
72
73body: |
74  bb.0:
75    liveins: $vgpr0, $vgpr1
76    ; GFX8-LABEL: name: icmp_eq_s16_vv
77    ; GFX8: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
78    ; GFX8: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
79    ; GFX8: [[TRUNC:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY]](s32)
80    ; GFX8: [[TRUNC1:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY1]](s32)
81    ; GFX8: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[TRUNC]](s16), [[TRUNC1]]
82    %0:_(s32) = COPY $vgpr0
83    %1:_(s32) = COPY $vgpr1
84    %2:_(s16) = G_TRUNC %0
85    %3:_(s16) = G_TRUNC %1
86    %4:_(s1) = G_ICMP intpred(eq), %2, %3
87...
88