1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -O0 -run-pass=legalizer %s -o - | FileCheck %s
3
4---
5name:            test_constant_s32
6body: |
7  bb.0:
8
9    ; CHECK-LABEL: name: test_constant_s32
10    ; CHECK: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 5
11    ; CHECK: $vgpr0 = COPY [[C]](s32)
12    %0:_(s32) = G_CONSTANT i32 5
13    $vgpr0 = COPY %0
14...
15---
16name:            test_constant_s64
17body: |
18  bb.0:
19
20    ; CHECK-LABEL: name: test_constant_s64
21    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 5
22    ; CHECK: $vgpr0_vgpr1 = COPY [[C]](s64)
23    %0:_(s64) = G_CONSTANT i64 5
24    $vgpr0_vgpr1 = COPY %0
25
26...
27
28---
29name:            test_constant_s96
30body: |
31  bb.0:
32
33    ; CHECK-LABEL: name: test_constant_s96
34    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -4780896129847249538
35    ; CHECK: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -547834910
36    ; CHECK: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[C]](s64)
37    ; CHECK: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[UV]](s32), [[UV1]](s32), [[C1]](s32)
38    ; CHECK: $vgpr0_vgpr1_vgpr2 = COPY [[MV]](s96)
39    %0:_(s96) = G_CONSTANT i96  -10105770365747857631829412482
40    $vgpr0_vgpr1_vgpr2 = COPY %0
41
42...
43
44---
45name:            test_constant_s1
46body: |
47  bb.0:
48
49    ; CHECK-LABEL: name: test_constant_s1
50    ; CHECK: [[C:%[0-9]+]]:_(s1) = G_CONSTANT i1 false
51    ; CHECK: S_ENDPGM 0, implicit [[C]](s1)
52    %1:_(s1) = G_CONSTANT i1 0
53    S_ENDPGM 0, implicit %1
54...
55
56---
57name:            test_constant_s7
58body: |
59  bb.0:
60
61    ; CHECK-LABEL: name: test_constant_s7
62    ; CHECK: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 5
63    ; CHECK: $vgpr0 = COPY [[C]](s32)
64    %0:_(s7) = G_CONSTANT i7 5
65    %1:_(s32) = G_ANYEXT %0
66    $vgpr0 = COPY %1
67...
68
69---
70name:            test_constant_s8
71body: |
72  bb.0:
73
74    ; CHECK-LABEL: name: test_constant_s8
75    ; CHECK: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 5
76    ; CHECK: $vgpr0 = COPY [[C]](s32)
77    %0:_(s8) = G_CONSTANT i8 5
78    %1:_(s32) = G_ANYEXT %0
79    $vgpr0 = COPY %1
80...
81
82---
83name:            test_constant_s16
84body: |
85  bb.0:
86
87    ; CHECK-LABEL: name: test_constant_s16
88    ; CHECK: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 5
89    ; CHECK: $vgpr0 = COPY [[C]](s32)
90    %0:_(s16) = G_CONSTANT i16 5
91    %1:_(s32) = G_ANYEXT %0
92    $vgpr0 = COPY %1
93...
94
95---
96name:            test_constant_s128
97body: |
98  bb.0:
99
100    ; CHECK-LABEL: name: test_constant_s128
101    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 5
102    ; CHECK: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 0
103    ; CHECK: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[C]](s64), [[C1]](s64)
104    ; CHECK: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[MV]](s128)
105    %0:_(s128) = G_CONSTANT i128 5
106    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %0
107...
108
109---
110name: test_constant_p0
111body: |
112  bb.0:
113
114    ; CHECK-LABEL: name: test_constant_p0
115    ; CHECK: [[C:%[0-9]+]]:_(p0) = G_CONSTANT i64 0
116    ; CHECK: $vgpr0_vgpr1 = COPY [[C]](p0)
117    %0:_(p0) = G_CONSTANT i64 0
118    $vgpr0_vgpr1 = COPY %0
119...
120
121---
122name: test_constant_p1
123body: |
124  bb.0:
125
126    ; CHECK-LABEL: name: test_constant_p1
127    ; CHECK: [[C:%[0-9]+]]:_(p1) = G_CONSTANT i64 0
128    ; CHECK: $vgpr0_vgpr1 = COPY [[C]](p1)
129    %0:_(p1) = G_CONSTANT i64 0
130    $vgpr0_vgpr1 = COPY %0
131...
132
133---
134name: test_constant_p2
135body: |
136  bb.0:
137
138    ; CHECK-LABEL: name: test_constant_p2
139    ; CHECK: [[C:%[0-9]+]]:_(p2) = G_CONSTANT i32 0
140    ; CHECK: $vgpr0 = COPY [[C]](p2)
141    %0:_(p2) = G_CONSTANT i32 0
142    $vgpr0 = COPY %0
143...
144
145---
146name: test_constant_p3
147body: |
148  bb.0:
149
150    ; CHECK-LABEL: name: test_constant_p3
151    ; CHECK: [[C:%[0-9]+]]:_(p2) = G_CONSTANT i32 0
152    ; CHECK: $vgpr0 = COPY [[C]](p2)
153    %0:_(p2) = G_CONSTANT i32 0
154    $vgpr0 = COPY %0
155...
156
157---
158name: test_constant_p4
159body: |
160  bb.0:
161
162    ; CHECK-LABEL: name: test_constant_p4
163    ; CHECK: [[C:%[0-9]+]]:_(p4) = G_CONSTANT i64 0
164    ; CHECK: $vgpr0_vgpr1 = COPY [[C]](p4)
165    %0:_(p4) = G_CONSTANT i64 0
166    $vgpr0_vgpr1 = COPY %0
167...
168
169---
170name: test_constant_p5
171body: |
172  bb.0:
173
174    ; CHECK-LABEL: name: test_constant_p5
175    ; CHECK: [[C:%[0-9]+]]:_(p5) = G_CONSTANT i32 0
176    ; CHECK: $vgpr0 = COPY [[C]](p5)
177    %0:_(p5) = G_CONSTANT i32 0
178    $vgpr0 = COPY %0
179...
180
181---
182name: test_constant_p999
183body: |
184  bb.0:
185
186    ; CHECK-LABEL: name: test_constant_p999
187    ; CHECK: [[C:%[0-9]+]]:_(p999) = G_CONSTANT i64 0
188    ; CHECK: $vgpr0_vgpr1 = COPY [[C]](p999)
189    %0:_(p999) = G_CONSTANT i64 0
190    $vgpr0_vgpr1 = COPY %0
191...
192