Skip to content

Commit 489d516

Browse files
committed
Test more cases
1 parent 1a76402 commit 489d516

File tree

2 files changed

+140
-4
lines changed

2 files changed

+140
-4
lines changed

llvm/test/CodeGen/AMDGPU/fold-operands-frame-index.gfx10.mir

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,50 @@ body: |
4444
SI_RETURN implicit $vgpr0
4545
...
4646

47+
48+
49+
---
50+
name: fold_frame_index__v_add_u32_e64__const_v_fi
51+
tracksRegLiveness: true
52+
frameInfo:
53+
maxAlignment: 4
54+
localFrameSize: 16384
55+
stack:
56+
- { id: 0, size: 16384, alignment: 4, local-offset: 0 }
57+
body: |
58+
bb.0:
59+
; CHECK-LABEL: name: fold_frame_index__v_add_u32_e64__const_v_fi
60+
; CHECK: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
61+
; CHECK-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 128, [[V_MOV_B32_e32_]], 0, implicit $exec
62+
; CHECK-NEXT: $sgpr4 = COPY [[V_ADD_U32_e64_]]
63+
; CHECK-NEXT: SI_RETURN implicit $sgpr4
64+
%0:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
65+
%1:vgpr_32 = V_ADD_U32_e64 128, %0, 0, implicit $exec
66+
$sgpr4 = COPY %1
67+
SI_RETURN implicit $sgpr4
68+
...
69+
70+
---
71+
name: fold_frame_index__v_add_u32_e64___v_fi_const
72+
tracksRegLiveness: true
73+
frameInfo:
74+
maxAlignment: 4
75+
localFrameSize: 16384
76+
stack:
77+
- { id: 0, size: 16384, alignment: 4, local-offset: 0 }
78+
body: |
79+
bb.0:
80+
; CHECK-LABEL: name: fold_frame_index__v_add_u32_e64___v_fi_const
81+
; CHECK: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
82+
; CHECK-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[V_MOV_B32_e32_]], 128, 0, implicit $exec
83+
; CHECK-NEXT: $sgpr4 = COPY [[V_ADD_U32_e64_]]
84+
; CHECK-NEXT: SI_RETURN implicit $sgpr4
85+
%0:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
86+
%1:vgpr_32 = V_ADD_U32_e64 %0, 128, 0, implicit $exec
87+
$sgpr4 = COPY %1
88+
SI_RETURN implicit $sgpr4
89+
...
90+
4791
---
4892
name: fold_frame_index__v_add_co_u32_e64___fi_const_v
4993
tracksRegLiveness: true

llvm/test/CodeGen/AMDGPU/fold-operands-frame-index.mir

Lines changed: 96 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,67 @@ body: |
205205
SI_RETURN implicit $sgpr4
206206
...
207207

208+
---
209+
name: fold_frame_index__v_add_u32_e64__imm_v_fi
210+
tracksRegLiveness: true
211+
frameInfo:
212+
maxAlignment: 4
213+
localFrameSize: 16384
214+
stack:
215+
- { id: 0, size: 16384, alignment: 4, local-offset: 0 }
216+
body: |
217+
bb.0:
218+
; GFX9-LABEL: name: fold_frame_index__v_add_u32_e64__imm_v_fi
219+
; GFX9: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
220+
; GFX9-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 64, [[V_MOV_B32_e32_]], 0, implicit $exec
221+
; GFX9-NEXT: $sgpr4 = COPY [[V_ADD_U32_e64_]]
222+
; GFX9-NEXT: SI_RETURN implicit $sgpr4
223+
;
224+
; GFX10-LABEL: name: fold_frame_index__v_add_u32_e64__imm_v_fi
225+
; GFX10: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 64, %stack.0, 0, implicit $exec
226+
; GFX10-NEXT: $sgpr4 = COPY [[V_ADD_U32_e64_]]
227+
; GFX10-NEXT: SI_RETURN implicit $sgpr4
228+
;
229+
; GFX12-LABEL: name: fold_frame_index__v_add_u32_e64__imm_v_fi
230+
; GFX12: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 64, %stack.0, 0, implicit $exec
231+
; GFX12-NEXT: $sgpr4 = COPY [[V_ADD_U32_e64_]]
232+
; GFX12-NEXT: SI_RETURN implicit $sgpr4
233+
%0:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
234+
%1:vgpr_32 = V_ADD_U32_e64 64, %0, 0, implicit $exec
235+
$sgpr4 = COPY %1
236+
SI_RETURN implicit $sgpr4
237+
...
238+
239+
---
240+
name: fold_frame_index__v_add_u32_e64___v_fi_imm
241+
tracksRegLiveness: true
242+
frameInfo:
243+
maxAlignment: 4
244+
localFrameSize: 16384
245+
stack:
246+
- { id: 0, size: 16384, alignment: 4, local-offset: 0 }
247+
body: |
248+
bb.0:
249+
; GFX9-LABEL: name: fold_frame_index__v_add_u32_e64___v_fi_imm
250+
; GFX9: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
251+
; GFX9-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[V_MOV_B32_e32_]], 64, 0, implicit $exec
252+
; GFX9-NEXT: $sgpr4 = COPY [[V_ADD_U32_e64_]]
253+
; GFX9-NEXT: SI_RETURN implicit $sgpr4
254+
;
255+
; GFX10-LABEL: name: fold_frame_index__v_add_u32_e64___v_fi_imm
256+
; GFX10: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 %stack.0, 64, 0, implicit $exec
257+
; GFX10-NEXT: $sgpr4 = COPY [[V_ADD_U32_e64_]]
258+
; GFX10-NEXT: SI_RETURN implicit $sgpr4
259+
;
260+
; GFX12-LABEL: name: fold_frame_index__v_add_u32_e64___v_fi_imm
261+
; GFX12: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 %stack.0, 64, 0, implicit $exec
262+
; GFX12-NEXT: $sgpr4 = COPY [[V_ADD_U32_e64_]]
263+
; GFX12-NEXT: SI_RETURN implicit $sgpr4
264+
%0:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
265+
%1:vgpr_32 = V_ADD_U32_e64 %0, 64, 0, implicit $exec
266+
$sgpr4 = COPY %1
267+
SI_RETURN implicit $sgpr4
268+
...
208269

209270
---
210271
name: fold_frame_index__v_add_co_u32_e32__const_v_fi
@@ -228,7 +289,7 @@ body: |
228289
...
229290

230291
---
231-
name: fold_frame_index__v_add_co_u32_e64__v_fi_const
292+
name: fold_frame_index__v_add_co_u32_e64__v_fi_imm
232293
tracksRegLiveness: true
233294
frameInfo:
234295
maxAlignment: 4
@@ -237,18 +298,18 @@ stack:
237298
- { id: 0, size: 16384, alignment: 4, local-offset: 0 }
238299
body: |
239300
bb.0:
240-
; GFX9-LABEL: name: fold_frame_index__v_add_co_u32_e64__v_fi_const
301+
; GFX9-LABEL: name: fold_frame_index__v_add_co_u32_e64__v_fi_imm
241302
; GFX9: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
242303
; GFX9-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64 = V_ADD_CO_U32_e64 [[V_MOV_B32_e32_]], 64, 0, implicit $exec
243304
; GFX9-NEXT: $vgpr0 = COPY [[V_ADD_CO_U32_e64_]]
244305
; GFX9-NEXT: SI_RETURN implicit $vgpr0
245306
;
246-
; GFX10-LABEL: name: fold_frame_index__v_add_co_u32_e64__v_fi_const
307+
; GFX10-LABEL: name: fold_frame_index__v_add_co_u32_e64__v_fi_imm
247308
; GFX10: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64 = V_ADD_CO_U32_e64 %stack.0, 64, 0, implicit $exec
248309
; GFX10-NEXT: $vgpr0 = COPY [[V_ADD_CO_U32_e64_]]
249310
; GFX10-NEXT: SI_RETURN implicit $vgpr0
250311
;
251-
; GFX12-LABEL: name: fold_frame_index__v_add_co_u32_e64__v_fi_const
312+
; GFX12-LABEL: name: fold_frame_index__v_add_co_u32_e64__v_fi_imm
252313
; GFX12: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64 = V_ADD_CO_U32_e64 %stack.0, 64, 0, implicit $exec
253314
; GFX12-NEXT: $vgpr0 = COPY [[V_ADD_CO_U32_e64_]]
254315
; GFX12-NEXT: SI_RETURN implicit $vgpr0
@@ -258,6 +319,37 @@ body: |
258319
SI_RETURN implicit $vgpr0
259320
...
260321

322+
---
323+
name: fold_frame_index__v_add_co_u32_e64__imm_v_fi
324+
tracksRegLiveness: true
325+
frameInfo:
326+
maxAlignment: 4
327+
localFrameSize: 16384
328+
stack:
329+
- { id: 0, size: 16384, alignment: 4, local-offset: 0 }
330+
body: |
331+
bb.0:
332+
; GFX9-LABEL: name: fold_frame_index__v_add_co_u32_e64__imm_v_fi
333+
; GFX9: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
334+
; GFX9-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64 = V_ADD_CO_U32_e64 64, [[V_MOV_B32_e32_]], 0, implicit $exec
335+
; GFX9-NEXT: $vgpr0 = COPY [[V_ADD_CO_U32_e64_]]
336+
; GFX9-NEXT: SI_RETURN implicit $vgpr0
337+
;
338+
; GFX10-LABEL: name: fold_frame_index__v_add_co_u32_e64__imm_v_fi
339+
; GFX10: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64 = V_ADD_CO_U32_e64 64, %stack.0, 0, implicit $exec
340+
; GFX10-NEXT: $vgpr0 = COPY [[V_ADD_CO_U32_e64_]]
341+
; GFX10-NEXT: SI_RETURN implicit $vgpr0
342+
;
343+
; GFX12-LABEL: name: fold_frame_index__v_add_co_u32_e64__imm_v_fi
344+
; GFX12: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64 = V_ADD_CO_U32_e64 64, %stack.0, 0, implicit $exec
345+
; GFX12-NEXT: $vgpr0 = COPY [[V_ADD_CO_U32_e64_]]
346+
; GFX12-NEXT: SI_RETURN implicit $vgpr0
347+
%0:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
348+
%1:vgpr_32, %2:sreg_64 = V_ADD_CO_U32_e64 64, %0, 0, implicit $exec
349+
$vgpr0 = COPY %1
350+
SI_RETURN implicit $vgpr0
351+
...
352+
261353
---
262354
name: multi_use_scalar_fi__add_imm_add_inline_imm
263355
tracksRegLiveness: true

0 commit comments

Comments
 (0)