Skip to content

Commit 3a47927

Browse files
committed
[AMDGPU] Improve test coverage for G_INTTOPTR and G_PTRTOINT
Test P0 through P6 + P8 for both S/VGPRs.
1 parent c69258d commit 3a47927

File tree

2 files changed

+458
-10
lines changed

2 files changed

+458
-10
lines changed

llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-inttoptr.mir

Lines changed: 230 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,257 @@
33
# RUN: llc -mtriple=amdgcn -run-pass=regbankselect %s -verify-machineinstrs -o - -regbankselect-greedy | FileCheck %s
44

55
---
6-
name: inttoptr_s
6+
name: inttoptr_s_p0
77
legalized: true
88

99
body: |
1010
bb.0:
1111
liveins: $sgpr0_sgpr1
12-
; CHECK-LABEL: name: inttoptr_s
12+
; CHECK-LABEL: name: inttoptr_s_p0
1313
; CHECK: liveins: $sgpr0_sgpr1
1414
; CHECK-NEXT: {{ $}}
1515
; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1
16-
; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:sgpr(p4) = G_INTTOPTR [[COPY]](s64)
16+
; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:sgpr(p0) = G_INTTOPTR [[COPY]](s64)
1717
%0:_(s64) = COPY $sgpr0_sgpr1
18-
%1:_(p4) = G_INTTOPTR %0
18+
%1:_(p0) = G_INTTOPTR %0
1919
...
2020

2121
---
22-
name: inttoptr_v
22+
name: inttoptr_v_p0
2323
legalized: true
2424

2525
body: |
2626
bb.0:
2727
liveins: $vgpr0_vgpr1
28-
; CHECK-LABEL: name: inttoptr_v
28+
; CHECK-LABEL: name: inttoptr_v_p0
2929
; CHECK: liveins: $vgpr0_vgpr1
3030
; CHECK-NEXT: {{ $}}
3131
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1
3232
; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:vgpr(p0) = G_INTTOPTR [[COPY]](s64)
3333
%0:_(s64) = COPY $vgpr0_vgpr1
3434
%1:_(p0) = G_INTTOPTR %0
3535
...
36+
37+
---
38+
name: inttoptr_s_p1
39+
legalized: true
40+
41+
body: |
42+
bb.0:
43+
liveins: $sgpr0_sgpr1
44+
; CHECK-LABEL: name: inttoptr_s_p1
45+
; CHECK: liveins: $sgpr0_sgpr1
46+
; CHECK-NEXT: {{ $}}
47+
; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1
48+
; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:sgpr(p1) = G_INTTOPTR [[COPY]](s64)
49+
%0:_(s64) = COPY $sgpr0_sgpr1
50+
%1:_(p1) = G_INTTOPTR %0
51+
...
52+
53+
---
54+
name: inttoptr_v_p1
55+
legalized: true
56+
57+
body: |
58+
bb.0:
59+
liveins: $vgpr0_vgpr1
60+
; CHECK-LABEL: name: inttoptr_v_p1
61+
; CHECK: liveins: $vgpr0_vgpr1
62+
; CHECK-NEXT: {{ $}}
63+
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1
64+
; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:vgpr(p1) = G_INTTOPTR [[COPY]](s64)
65+
%0:_(s64) = COPY $vgpr0_vgpr1
66+
%1:_(p1) = G_INTTOPTR %0
67+
...
68+
69+
---
70+
name: inttoptr_s_p2
71+
legalized: true
72+
73+
body: |
74+
bb.0:
75+
liveins: $sgpr0
76+
; CHECK-LABEL: name: inttoptr_s_p2
77+
; CHECK: liveins: $sgpr0
78+
; CHECK-NEXT: {{ $}}
79+
; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
80+
; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:sgpr(p2) = G_INTTOPTR [[COPY]](s32)
81+
%0:_(s32) = COPY $sgpr0
82+
%1:_(p2) = G_INTTOPTR %0
83+
...
84+
85+
---
86+
name: inttoptr_v_p2
87+
legalized: true
88+
89+
body: |
90+
bb.0:
91+
liveins: $vgpr0
92+
; CHECK-LABEL: name: inttoptr_v_p2
93+
; CHECK: liveins: $vgpr0
94+
; CHECK-NEXT: {{ $}}
95+
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
96+
; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:vgpr(p2) = G_INTTOPTR [[COPY]](s32)
97+
%0:_(s32) = COPY $vgpr0
98+
%1:_(p2) = G_INTTOPTR %0
99+
...
100+
101+
---
102+
name: inttoptr_s_p3
103+
legalized: true
104+
105+
body: |
106+
bb.0:
107+
liveins: $sgpr0
108+
; CHECK-LABEL: name: inttoptr_s_p3
109+
; CHECK: liveins: $sgpr0
110+
; CHECK-NEXT: {{ $}}
111+
; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
112+
; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:sgpr(p3) = G_INTTOPTR [[COPY]](s32)
113+
%0:_(s32) = COPY $sgpr0
114+
%1:_(p3) = G_INTTOPTR %0
115+
...
116+
117+
---
118+
name: inttoptr_v_p3
119+
legalized: true
120+
121+
body: |
122+
bb.0:
123+
liveins: $vgpr0
124+
; CHECK-LABEL: name: inttoptr_v_p3
125+
; CHECK: liveins: $vgpr0
126+
; CHECK-NEXT: {{ $}}
127+
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
128+
; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:vgpr(p3) = G_INTTOPTR [[COPY]](s32)
129+
%0:_(s32) = COPY $vgpr0
130+
%1:_(p3) = G_INTTOPTR %0
131+
...
132+
133+
---
134+
name: inttoptr_s_p4
135+
legalized: true
136+
137+
body: |
138+
bb.0:
139+
liveins: $sgpr0_sgpr1
140+
; CHECK-LABEL: name: inttoptr_s_p4
141+
; CHECK: liveins: $sgpr0_sgpr1
142+
; CHECK-NEXT: {{ $}}
143+
; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1
144+
; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:sgpr(p4) = G_INTTOPTR [[COPY]](s64)
145+
%0:_(s64) = COPY $sgpr0_sgpr1
146+
%1:_(p4) = G_INTTOPTR %0
147+
...
148+
149+
---
150+
name: inttoptr_v_p4
151+
legalized: true
152+
153+
body: |
154+
bb.0:
155+
liveins: $vgpr0_vgpr1
156+
; CHECK-LABEL: name: inttoptr_v_p4
157+
; CHECK: liveins: $vgpr0_vgpr1
158+
; CHECK-NEXT: {{ $}}
159+
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1
160+
; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:vgpr(p4) = G_INTTOPTR [[COPY]](s64)
161+
%0:_(s64) = COPY $vgpr0_vgpr1
162+
%1:_(p4) = G_INTTOPTR %0
163+
...
164+
165+
---
166+
name: inttoptr_s_p5
167+
legalized: true
168+
169+
body: |
170+
bb.0:
171+
liveins: $sgpr0
172+
; CHECK-LABEL: name: inttoptr_s_p5
173+
; CHECK: liveins: $sgpr0
174+
; CHECK-NEXT: {{ $}}
175+
; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
176+
; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:sgpr(p5) = G_INTTOPTR [[COPY]](s32)
177+
%0:_(s32) = COPY $sgpr0
178+
%1:_(p5) = G_INTTOPTR %0
179+
...
180+
181+
---
182+
name: inttoptr_v_p5
183+
legalized: true
184+
185+
body: |
186+
bb.0:
187+
liveins: $vgpr0
188+
; CHECK-LABEL: name: inttoptr_v_p5
189+
; CHECK: liveins: $vgpr0
190+
; CHECK-NEXT: {{ $}}
191+
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
192+
; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:vgpr(p5) = G_INTTOPTR [[COPY]](s32)
193+
%0:_(s32) = COPY $vgpr0
194+
%1:_(p5) = G_INTTOPTR %0
195+
...
196+
197+
---
198+
name: inttoptr_s_p6
199+
legalized: true
200+
201+
body: |
202+
bb.0:
203+
liveins: $sgpr0
204+
; CHECK-LABEL: name: inttoptr_s_p6
205+
; CHECK: liveins: $sgpr0
206+
; CHECK-NEXT: {{ $}}
207+
; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
208+
; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:sgpr(p6) = G_INTTOPTR [[COPY]](s32)
209+
%0:_(s32) = COPY $sgpr0
210+
%1:_(p6) = G_INTTOPTR %0
211+
...
212+
213+
---
214+
name: inttoptr_v_p6
215+
legalized: true
216+
217+
body: |
218+
bb.0:
219+
liveins: $vgpr0
220+
; CHECK-LABEL: name: inttoptr_v_p6
221+
; CHECK: liveins: $vgpr0
222+
; CHECK-NEXT: {{ $}}
223+
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
224+
; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:vgpr(p6) = G_INTTOPTR [[COPY]](s32)
225+
%0:_(s32) = COPY $vgpr0
226+
%1:_(p6) = G_INTTOPTR %0
227+
...
228+
229+
---
230+
name: inttoptr_s_p8
231+
legalized: true
232+
233+
body: |
234+
bb.0:
235+
liveins: $sgpr0_sgpr1_sgpr2_sgpr3
236+
; CHECK-LABEL: name: inttoptr_s_p8
237+
; CHECK: liveins: $sgpr0_sgpr1_sgpr2_sgpr3
238+
; CHECK-NEXT: {{ $}}
239+
; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s128) = COPY $sgpr0_sgpr1_sgpr2_sgpr3
240+
; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:sgpr(p8) = G_INTTOPTR [[COPY]](s128)
241+
%0:_(s128) = COPY $sgpr0_sgpr1_sgpr2_sgpr3
242+
%1:_(p8) = G_INTTOPTR %0
243+
...
244+
245+
---
246+
name: inttoptr_v_p8
247+
legalized: true
248+
249+
body: |
250+
bb.0:
251+
liveins: $vgpr0_vgpr1_vgpr2_vgpr3
252+
; CHECK-LABEL: name: inttoptr_v_p8
253+
; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3
254+
; CHECK-NEXT: {{ $}}
255+
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
256+
; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:vgpr(p8) = G_INTTOPTR [[COPY]](s128)
257+
%0:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
258+
%1:_(p8) = G_INTTOPTR %0
259+
...

0 commit comments

Comments
 (0)