Skip to content

Commit bb3aa09

Browse files
committed
AMDGPU/GlobalISel: Add more tests for add3 folding
Forget to squash into 2ea4605
1 parent 2ea4605 commit bb3aa09

File tree

1 file changed

+88
-0
lines changed

1 file changed

+88
-0
lines changed

llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-pattern-add3.mir

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,3 +217,91 @@ body: |
217217
%4:vgpr(p5) = G_PTR_ADD %3, %2
218218
S_ENDPGM 0, implicit %4
219219
...
220+
221+
---
222+
223+
name: add_p3_s32_vgpr_vgpr_vgpr
224+
legalized: true
225+
regBankSelected: true
226+
tracksRegLiveness: true
227+
228+
body: |
229+
bb.0:
230+
liveins: $vgpr0, $vgpr1, $vgpr2
231+
232+
; GFX8-LABEL: name: add_p3_s32_vgpr_vgpr_vgpr
233+
; GFX8: liveins: $vgpr0, $vgpr1, $vgpr2
234+
; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
235+
; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
236+
; GFX8: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
237+
; GFX8: %3:vgpr_32, dead %6:sreg_64_xexec = V_ADD_I32_e64 [[COPY]], [[COPY1]], 0, implicit $exec
238+
; GFX8: %4:vgpr_32, dead %5:sreg_64_xexec = V_ADD_I32_e64 [[COPY2]], %3, 0, implicit $exec
239+
; GFX8: S_ENDPGM 0, implicit %4
240+
; GFX9-LABEL: name: add_p3_s32_vgpr_vgpr_vgpr
241+
; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2
242+
; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
243+
; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
244+
; GFX9: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
245+
; GFX9: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[COPY1]], 0, implicit $exec
246+
; GFX9: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY2]], [[V_ADD_U32_e64_]], 0, implicit $exec
247+
; GFX9: S_ENDPGM 0, implicit [[V_ADD_U32_e64_1]]
248+
; GFX10-LABEL: name: add_p3_s32_vgpr_vgpr_vgpr
249+
; GFX10: liveins: $vgpr0, $vgpr1, $vgpr2
250+
; GFX10: $vcc_hi = IMPLICIT_DEF
251+
; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
252+
; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
253+
; GFX10: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
254+
; GFX10: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[COPY1]], 0, implicit $exec
255+
; GFX10: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY2]], [[V_ADD_U32_e64_]], 0, implicit $exec
256+
; GFX10: S_ENDPGM 0, implicit [[V_ADD_U32_e64_1]]
257+
%0:vgpr(s32) = COPY $vgpr0
258+
%1:vgpr(s32) = COPY $vgpr1
259+
%2:vgpr(p3) = COPY $vgpr2
260+
%3:vgpr(s32) = G_ADD %0, %1
261+
%4:vgpr(p3) = G_PTR_ADD %2, %3
262+
S_ENDPGM 0, implicit %4
263+
...
264+
265+
---
266+
267+
name: add_p5_s32_vgpr_vgpr_vgpr
268+
legalized: true
269+
regBankSelected: true
270+
tracksRegLiveness: true
271+
272+
body: |
273+
bb.0:
274+
liveins: $vgpr0, $vgpr1, $vgpr2
275+
276+
; GFX8-LABEL: name: add_p5_s32_vgpr_vgpr_vgpr
277+
; GFX8: liveins: $vgpr0, $vgpr1, $vgpr2
278+
; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
279+
; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
280+
; GFX8: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
281+
; GFX8: %3:vgpr_32, dead %6:sreg_64_xexec = V_ADD_I32_e64 [[COPY]], [[COPY1]], 0, implicit $exec
282+
; GFX8: %4:vgpr_32, dead %5:sreg_64_xexec = V_ADD_I32_e64 [[COPY2]], %3, 0, implicit $exec
283+
; GFX8: S_ENDPGM 0, implicit %4
284+
; GFX9-LABEL: name: add_p5_s32_vgpr_vgpr_vgpr
285+
; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2
286+
; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
287+
; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
288+
; GFX9: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
289+
; GFX9: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[COPY1]], 0, implicit $exec
290+
; GFX9: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY2]], [[V_ADD_U32_e64_]], 0, implicit $exec
291+
; GFX9: S_ENDPGM 0, implicit [[V_ADD_U32_e64_1]]
292+
; GFX10-LABEL: name: add_p5_s32_vgpr_vgpr_vgpr
293+
; GFX10: liveins: $vgpr0, $vgpr1, $vgpr2
294+
; GFX10: $vcc_hi = IMPLICIT_DEF
295+
; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
296+
; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
297+
; GFX10: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
298+
; GFX10: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[COPY1]], 0, implicit $exec
299+
; GFX10: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY2]], [[V_ADD_U32_e64_]], 0, implicit $exec
300+
; GFX10: S_ENDPGM 0, implicit [[V_ADD_U32_e64_1]]
301+
%0:vgpr(s32) = COPY $vgpr0
302+
%1:vgpr(s32) = COPY $vgpr1
303+
%2:vgpr(p5) = COPY $vgpr2
304+
%3:vgpr(s32) = G_ADD %0, %1
305+
%4:vgpr(p5) = G_PTR_ADD %2, %3
306+
S_ENDPGM 0, implicit %4
307+
...

0 commit comments

Comments
 (0)