[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / phi-vgpr-input-moveimm.mir
blob7d26589ed4e0c4b7ea49ebd7c44d3a2a90ce3915
1 # RUN: llc  -march=amdgcn -mcpu=gfx900 -verify-machineinstrs -run-pass=si-fix-sgpr-copies -o - %s | FileCheck -check-prefix=GCN %s
2 ---
3 # GCN_LABEL: phi_moveimm_input
4 # GCN-NOT: %{{[0-9]+}}:vgpr_32 = PHI %{{[0-9]+}}, %bb.3, %{{[0-9]+}}, %bb.1
5 # GCN:     %{{[0-9]+}}:sreg_32 = PHI %{{[0-9]+}}, %bb.3, %{{[0-9]+}}, %bb.1
7 name:            phi_moveimm_input
8 tracksRegLiveness: true
9 body:             |
10   bb.0:
11     successors: %bb.1
12     liveins: $sgpr0, $sgpr1
14     %0:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
16     %4:sreg_32 = COPY $sgpr0
17     %5:sreg_32 = COPY $sgpr1
19   bb.1:
20     successors: %bb.2
21     %2:sreg_32 = S_ADD_U32 %4, %5, implicit-def $scc
22     S_BRANCH %bb.2
24   bb.2:
25     successors: %bb.3
26     %3:sreg_32 = PHI %1, %bb.3, %2, %bb.1
27     S_BRANCH %bb.3
29   bb.3:
30     successors: %bb.2
31     %1:sreg_32 = COPY %0
32     S_BRANCH %bb.2
33 ...
35 ---
36 # GCN_LABEL: phi_moveimm_subreg_input
37 # GCN-NOT: %{{[0-9]+}}:sreg_64 = PHI %{{[0-9]+}}, %bb.3, %{{[0-9]+}}, %bb.1
38 # GCN: %{{[0-9]+}}:vreg_64 = PHI %{{[0-9]+}}, %bb.3, %{{[0-9]+}}, %bb.1
39 name:            phi_moveimm_subreg_input
40 tracksRegLiveness: true
41 body:             |
42   bb.0:
43     successors: %bb.1
44     liveins: $sgpr0, $sgpr1
46     %0:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
48     %4:sreg_32 = COPY $sgpr0
49     %5:sreg_32 = COPY $sgpr1
51   bb.1:
52     successors: %bb.2
53     undef %2.sub0:sreg_64 = S_ADD_U32 %4, %5, implicit-def $scc
54     S_BRANCH %bb.2
56   bb.2:
57     successors: %bb.3
58     %3:sreg_64 = PHI %1, %bb.3, %2, %bb.1
59     S_BRANCH %bb.3
61   bb.3:
62     successors: %bb.2
63     undef %1.sub0:sreg_64 = COPY %0
64     S_BRANCH %bb.2
65 ...
68 ---
69 # GCN_LABEL: phi_moveimm_bad_opcode_input
70 # GCN-NOT: %{{[0-9]+}}:sreg_32 = PHI %{{[0-9]+}}, %bb.3, %{{[0-9]+}}, %bb.1
71 # GCN: %{{[0-9]+}}:vgpr_32 = PHI %{{[0-9]+}}, %bb.3, %{{[0-9]+}}, %bb.1
72 name:            phi_moveimm_bad_opcode_input
73 tracksRegLiveness: true
74 body:             |
75   bb.0:
76     successors: %bb.1
77     liveins: $sgpr0, $sgpr1, $vgpr0
78     %6:vgpr_32 = COPY $vgpr0
79     %0:vgpr_32 = V_MOV_B32_sdwa 0, %6:vgpr_32, 0, 5, 2, 4,  implicit $exec, implicit %6:vgpr_32(tied-def 0)
81     %4:sreg_32 = COPY $sgpr0
82     %5:sreg_32 = COPY $sgpr1
84   bb.1:
86     successors: %bb.2
87     %2:sreg_32 = S_ADD_U32 %4, %5, implicit-def $scc
88     S_BRANCH %bb.2
89   bb.2:
90     successors: %bb.3
91     %3:sreg_32 = PHI %1, %bb.3, %2, %bb.1
92     S_BRANCH %bb.3
93   bb.3:
94     successors: %bb.2
95     %1:sreg_32 = COPY %0
96     S_BRANCH %bb.2
97 ...