Skip to content

Commit 33a8f9f

Browse files
committed
pre commit test
1 parent e7e7494 commit 33a8f9f

File tree

1 file changed

+261
-0
lines changed

1 file changed

+261
-0
lines changed
Lines changed: 261 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,261 @@
1+
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
2+
# RUN: llc -mtriple=amdgcn -mcpu=tahiti -run-pass=amdgpu-prelegalizer-combiner %s -o - | FileCheck %s
3+
4+
---
5+
name: test_and_mask_hi_rhs
6+
tracksRegLiveness: true
7+
body: |
8+
bb.0:
9+
liveins: $sgpr0_sgpr1, $sgpr2
10+
; CHECK-LABEL: name: test_and_mask_hi_rhs
11+
; CHECK: liveins: $sgpr0_sgpr1, $sgpr2
12+
; CHECK-NEXT: {{ $}}
13+
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $sgpr0_sgpr1
14+
; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -4294967296
15+
; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]
16+
; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[AND]](s64)
17+
; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr1
18+
%0:_(s64) = COPY $sgpr0_sgpr1
19+
%1:_(s64) = G_CONSTANT i64 -4294967296
20+
%2:_(s64) = G_AND %0, %1
21+
$sgpr0_sgpr1 = COPY %2(s64)
22+
SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr1
23+
...
24+
---
25+
name: test_and_mask_hi_lhs
26+
tracksRegLiveness: true
27+
body: |
28+
bb.0:
29+
liveins: $sgpr0_sgpr1, $sgpr2
30+
; CHECK-LABEL: name: test_and_mask_hi_lhs
31+
; CHECK: liveins: $sgpr0_sgpr1, $sgpr2
32+
; CHECK-NEXT: {{ $}}
33+
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $sgpr0_sgpr1
34+
; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -4294967296
35+
; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]
36+
; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[AND]](s64)
37+
; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr1
38+
%0:_(s64) = COPY $sgpr0_sgpr1
39+
%1:_(s64) = G_CONSTANT i64 -4294967296
40+
%2:_(s64) = G_AND %1, %0
41+
$sgpr0_sgpr1 = COPY %2(s64)
42+
SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr1
43+
...
44+
45+
---
46+
name: test_and_mask_lo_rhs
47+
tracksRegLiveness: true
48+
body: |
49+
bb.0:
50+
liveins: $sgpr0_sgpr1, $sgpr2
51+
; CHECK-LABEL: name: test_and_mask_lo_rhs
52+
; CHECK: liveins: $sgpr0_sgpr1, $sgpr2
53+
; CHECK-NEXT: {{ $}}
54+
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $sgpr0_sgpr1
55+
; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 4294967295
56+
; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]
57+
; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[AND]](s64)
58+
; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr1
59+
%0:_(s64) = COPY $sgpr0_sgpr1
60+
%1:_(s64) = G_CONSTANT i64 4294967295
61+
%2:_(s64) = G_AND %0, %1
62+
$sgpr0_sgpr1 = COPY %2(s64)
63+
SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr1
64+
...
65+
---
66+
name: test_and_mask_lo_lhs
67+
tracksRegLiveness: true
68+
body: |
69+
bb.0:
70+
liveins: $sgpr0_sgpr1, $sgpr2
71+
; CHECK-LABEL: name: test_and_mask_lo_lhs
72+
; CHECK: liveins: $sgpr0_sgpr1, $sgpr2
73+
; CHECK-NEXT: {{ $}}
74+
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $sgpr0_sgpr1
75+
; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 4294967295
76+
; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]
77+
; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[AND]](s64)
78+
; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr1
79+
%0:_(s64) = COPY $sgpr0_sgpr1
80+
%1:_(s64) = G_CONSTANT i64 4294967295
81+
%2:_(s64) = G_AND %1, %0
82+
$sgpr0_sgpr1 = COPY %2(s64)
83+
SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr1
84+
...
85+
---
86+
name: test_and_mask_hi_with_merge_unmerge
87+
tracksRegLiveness: true
88+
body: |
89+
bb.0:
90+
liveins: $sgpr0, $sgpr1, $sgpr2
91+
; CHECK-LABEL: name: test_and_mask_hi_with_merge_unmerge
92+
; CHECK: liveins: $sgpr0, $sgpr1, $sgpr2
93+
; CHECK-NEXT: {{ $}}
94+
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0
95+
; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr1
96+
; CHECK-NEXT: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[COPY]](s32), [[COPY1]](s32)
97+
; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -4294967296
98+
; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[MV]], [[C]]
99+
; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AND]](s64)
100+
; CHECK-NEXT: $sgpr0 = COPY [[UV]](s32)
101+
; CHECK-NEXT: $sgpr1 = COPY [[UV1]](s32)
102+
; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0, implicit $sgpr1
103+
%0:_(s32) = COPY $sgpr0
104+
%1:_(s32) = COPY $sgpr1
105+
%2:_(s64) = G_MERGE_VALUES %0(s32), %1(s32)
106+
%3:_(s64) = G_CONSTANT i64 -4294967296
107+
%4:_(s64) = G_AND %2, %3
108+
%5:_(s32), %6:_(s32) = G_UNMERGE_VALUES %4(s64)
109+
$sgpr0 = COPY %5(s32)
110+
$sgpr1 = COPY %6(s32)
111+
SI_RETURN_TO_EPILOG implicit $sgpr0, implicit $sgpr1
112+
...
113+
---
114+
name: negative_and_test_incorrect_types
115+
tracksRegLiveness: true
116+
body: |
117+
bb.0:
118+
liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5
119+
120+
; CHECK-LABEL: name: negative_and_test_incorrect_types
121+
; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5
122+
; CHECK-NEXT: {{ $}}
123+
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
124+
; CHECK-NEXT: [[C:%[0-9]+]]:_(s128) = G_CONSTANT i128 -4294967296
125+
; CHECK-NEXT: [[AND:%[0-9]+]]:_(s128) = G_AND [[COPY]], [[C]]
126+
; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[AND]](s128)
127+
%0:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
128+
%1:_(s64) = COPY $vgpr4_vgpr5
129+
%2:_(s128) = G_CONSTANT i128 -4294967296
130+
%3:_(s128) = G_AND %0, %2
131+
$vgpr0_vgpr1_vgpr2_vgpr3 = COPY %3
132+
...
133+
---
134+
name: test_or_mask_hi_rhs
135+
tracksRegLiveness: true
136+
body: |
137+
bb.0:
138+
liveins: $sgpr0_sgpr1, $sgpr2
139+
; CHECK-LABEL: name: test_or_mask_hi_rhs
140+
; CHECK: liveins: $sgpr0_sgpr1, $sgpr2
141+
; CHECK-NEXT: {{ $}}
142+
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $sgpr0_sgpr1
143+
; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -4294967296
144+
; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = G_OR [[COPY]], [[C]]
145+
; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[OR]](s64)
146+
; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr1
147+
%0:_(s64) = COPY $sgpr0_sgpr1
148+
%1:_(s64) = G_CONSTANT i64 -4294967296
149+
%2:_(s64) = G_OR %0, %1
150+
$sgpr0_sgpr1 = COPY %2(s64)
151+
SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr1
152+
...
153+
---
154+
name: test_or_mask_hi_lhs
155+
tracksRegLiveness: true
156+
body: |
157+
bb.0:
158+
liveins: $sgpr0_sgpr1, $sgpr2
159+
; CHECK-LABEL: name: test_or_mask_hi_lhs
160+
; CHECK: liveins: $sgpr0_sgpr1, $sgpr2
161+
; CHECK-NEXT: {{ $}}
162+
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $sgpr0_sgpr1
163+
; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -4294967296
164+
; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = G_OR [[COPY]], [[C]]
165+
; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[OR]](s64)
166+
; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr1
167+
%0:_(s64) = COPY $sgpr0_sgpr1
168+
%1:_(s64) = G_CONSTANT i64 -4294967296
169+
%2:_(s64) = G_OR %1, %0
170+
$sgpr0_sgpr1 = COPY %2(s64)
171+
SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr1
172+
...
173+
174+
---
175+
name: test_or_mask_lo_rhs
176+
tracksRegLiveness: true
177+
body: |
178+
bb.0:
179+
liveins: $sgpr0_sgpr1, $sgpr2
180+
; CHECK-LABEL: name: test_or_mask_lo_rhs
181+
; CHECK: liveins: $sgpr0_sgpr1, $sgpr2
182+
; CHECK-NEXT: {{ $}}
183+
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $sgpr0_sgpr1
184+
; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 4294967295
185+
; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = G_OR [[COPY]], [[C]]
186+
; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[OR]](s64)
187+
; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr1
188+
%0:_(s64) = COPY $sgpr0_sgpr1
189+
%1:_(s64) = G_CONSTANT i64 4294967295
190+
%2:_(s64) = G_OR %0, %1
191+
$sgpr0_sgpr1 = COPY %2(s64)
192+
SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr1
193+
...
194+
---
195+
name: test_or_mask_lo_lhs
196+
tracksRegLiveness: true
197+
body: |
198+
bb.0:
199+
liveins: $sgpr0_sgpr1, $sgpr2
200+
; CHECK-LABEL: name: test_or_mask_lo_lhs
201+
; CHECK: liveins: $sgpr0_sgpr1, $sgpr2
202+
; CHECK-NEXT: {{ $}}
203+
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $sgpr0_sgpr1
204+
; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 4294967295
205+
; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = G_OR [[COPY]], [[C]]
206+
; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[OR]](s64)
207+
; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr1
208+
%0:_(s64) = COPY $sgpr0_sgpr1
209+
%1:_(s64) = G_CONSTANT i64 4294967295
210+
%2:_(s64) = G_OR %1, %0
211+
$sgpr0_sgpr1 = COPY %2(s64)
212+
SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr1
213+
...
214+
---
215+
name: test_or_mask_hi_with_merge_unmerge
216+
tracksRegLiveness: true
217+
body: |
218+
bb.0:
219+
liveins: $sgpr0, $sgpr1, $sgpr2
220+
; CHECK-LABEL: name: test_or_mask_hi_with_merge_unmerge
221+
; CHECK: liveins: $sgpr0, $sgpr1, $sgpr2
222+
; CHECK-NEXT: {{ $}}
223+
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0
224+
; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr1
225+
; CHECK-NEXT: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[COPY]](s32), [[COPY1]](s32)
226+
; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -4294967296
227+
; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = G_OR [[MV]], [[C]]
228+
; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[OR]](s64)
229+
; CHECK-NEXT: $sgpr0 = COPY [[UV]](s32)
230+
; CHECK-NEXT: $sgpr1 = COPY [[UV1]](s32)
231+
; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0, implicit $sgpr1
232+
%0:_(s32) = COPY $sgpr0
233+
%1:_(s32) = COPY $sgpr1
234+
%2:_(s64) = G_MERGE_VALUES %0(s32), %1(s32)
235+
%3:_(s64) = G_CONSTANT i64 -4294967296
236+
%4:_(s64) = G_OR %2, %3
237+
%5:_(s32), %6:_(s32) = G_UNMERGE_VALUES %4(s64)
238+
$sgpr0 = COPY %5(s32)
239+
$sgpr1 = COPY %6(s32)
240+
SI_RETURN_TO_EPILOG implicit $sgpr0, implicit $sgpr1
241+
...
242+
---
243+
name: negative_or_test_incorrect_types
244+
tracksRegLiveness: true
245+
body: |
246+
bb.0:
247+
liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5
248+
249+
; CHECK-LABEL: name: negative_or_test_incorrect_types
250+
; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5
251+
; CHECK-NEXT: {{ $}}
252+
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
253+
; CHECK-NEXT: [[C:%[0-9]+]]:_(s128) = G_CONSTANT i128 -4294967296
254+
; CHECK-NEXT: [[OR:%[0-9]+]]:_(s128) = G_OR [[COPY]], [[C]]
255+
; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[OR]](s128)
256+
%0:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
257+
%1:_(s64) = COPY $vgpr4_vgpr5
258+
%2:_(s128) = G_CONSTANT i128 -4294967296
259+
%3:_(s128) = G_OR %0, %2
260+
$vgpr0_vgpr1_vgpr2_vgpr3 = COPY %3
261+
...

0 commit comments

Comments
 (0)