Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / GlobalISel / regbankselect-reg-sequence.mir
blobcafbf0af2cf0e9108827f765f39d9b3d84f3545a
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=amdgpu-regbankselect %s -verify-machineinstrs -o - -regbankselect-fast | FileCheck %s
3 # RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=amdgpu-regbankselect %s -verify-machineinstrs -o - -regbankselect-greedy | FileCheck %s
5 ---
6 name: reg_sequence_ss_vreg
7 legalized: true
8 tracksRegLiveness: true
10 body: |
11   bb.0:
12     liveins: $sgpr0, $sgpr1
14     ; CHECK-LABEL: name: reg_sequence_ss_vreg
15     ; CHECK: liveins: $sgpr0, $sgpr1
16     ; CHECK-NEXT: {{  $}}
17     ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
18     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
19     ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr(s64) = REG_SEQUENCE [[COPY]](s32), %subreg.sub0, [[COPY1]](s32), %subreg.sub1
20     %0:_(s32) = COPY $sgpr0
21     %1:_(s32) = COPY $sgpr1
22     %2:_(s64) = REG_SEQUENCE %0, %subreg.sub0, %1, %subreg.sub1
23 ...
25 ---
26 name: reg_sequence_ss_physreg
27 legalized: true
28 tracksRegLiveness: true
30 body: |
31   bb.0:
32     liveins: $sgpr0, $sgpr1
34     ; CHECK-LABEL: name: reg_sequence_ss_physreg
35     ; CHECK: liveins: $sgpr0, $sgpr1
36     ; CHECK-NEXT: {{  $}}
37     ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr(s64) = REG_SEQUENCE $sgpr0, %subreg.sub0, $sgpr1, %subreg.sub1
38     %0:_(s64) = REG_SEQUENCE $sgpr0, %subreg.sub0, $sgpr1, %subreg.sub1
39 ...
41 ---
42 name: reg_sequence_sv_vreg
43 legalized: true
44 tracksRegLiveness: true
46 body: |
47   bb.0:
48     liveins: $sgpr0, $vgpr0
50     ; CHECK-LABEL: name: reg_sequence_sv_vreg
51     ; CHECK: liveins: $sgpr0, $vgpr0
52     ; CHECK-NEXT: {{  $}}
53     ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
54     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
55     ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vgpr(s64) = REG_SEQUENCE [[COPY]](s32), %subreg.sub0, [[COPY1]](s32), %subreg.sub1
56     %0:_(s32) = COPY $sgpr0
57     %1:_(s32) = COPY $vgpr0
58     %2:_(s64) = REG_SEQUENCE %0, %subreg.sub0, %1, %subreg.sub1
59 ...
61 ---
62 name: reg_sequence_sv_physreg
63 legalized: true
64 tracksRegLiveness: true
66 body: |
67   bb.0:
68     liveins: $sgpr0, $vgpr0
70     ; CHECK-LABEL: name: reg_sequence_sv_physreg
71     ; CHECK: liveins: $sgpr0, $vgpr0
72     ; CHECK-NEXT: {{  $}}
73     ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vgpr(s64) = REG_SEQUENCE $sgpr0, %subreg.sub0, $vgpr0, %subreg.sub1
74     %0:_(s64) = REG_SEQUENCE $sgpr0, %subreg.sub0, $vgpr0, %subreg.sub1
75 ...
77 ---
78 name: reg_sequence_vs_vreg
79 legalized: true
80 tracksRegLiveness: true
82 body: |
83   bb.0:
84     liveins: $vgpr0, $sgpr0
86     ; CHECK-LABEL: name: reg_sequence_vs_vreg
87     ; CHECK: liveins: $vgpr0, $sgpr0
88     ; CHECK-NEXT: {{  $}}
89     ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
90     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
91     ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vgpr(s64) = REG_SEQUENCE [[COPY]](s32), %subreg.sub0, [[COPY1]](s32), %subreg.sub1
92     %0:_(s32) = COPY $vgpr0
93     %1:_(s32) = COPY $sgpr0
94     %2:_(s64) = REG_SEQUENCE %0, %subreg.sub0, %1, %subreg.sub1
95 ...
97 ---
98 name: reg_sequence_vs_physreg
99 legalized: true
100 tracksRegLiveness: true
102 body: |
103   bb.0:
104     liveins: $vgpr0, $sgpr0
106     ; CHECK-LABEL: name: reg_sequence_vs_physreg
107     ; CHECK: liveins: $vgpr0, $sgpr0
108     ; CHECK-NEXT: {{  $}}
109     ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vgpr(s64) = REG_SEQUENCE $vgpr0, %subreg.sub0, $sgpr0, %subreg.sub1
110     %0:_(s64) = REG_SEQUENCE $vgpr0, %subreg.sub0, $sgpr0, %subreg.sub1
114 name: reg_sequence_vv_vreg
115 legalized: true
116 tracksRegLiveness: true
118 body: |
119   bb.0:
120     liveins: $vgpr0, $vgpr1
122     ; CHECK-LABEL: name: reg_sequence_vv_vreg
123     ; CHECK: liveins: $vgpr0, $vgpr1
124     ; CHECK-NEXT: {{  $}}
125     ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
126     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
127     ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vgpr(s64) = REG_SEQUENCE [[COPY]](s32), %subreg.sub0, [[COPY1]](s32), %subreg.sub1
128     %0:_(s32) = COPY $vgpr0
129     %1:_(s32) = COPY $vgpr1
130     %2:_(s64) = REG_SEQUENCE %0, %subreg.sub0, %1, %subreg.sub1
134 name: reg_sequence_vv_physreg
135 legalized: true
136 tracksRegLiveness: true
138 body: |
139   bb.0:
140     liveins: $vgpr0, $vgpr1
142     ; CHECK-LABEL: name: reg_sequence_vv_physreg
143     ; CHECK: liveins: $vgpr0, $vgpr1
144     ; CHECK-NEXT: {{  $}}
145     ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vgpr(s64) = REG_SEQUENCE $vgpr0, %subreg.sub0, $vgpr1, %subreg.sub1
146     %0:_(s64) = REG_SEQUENCE $vgpr0, %subreg.sub0, $vgpr1, %subreg.sub1