@@ -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---
210271name : 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
232293tracksRegLiveness : true
233294frameInfo :
234295 maxAlignment : 4
@@ -237,18 +298,18 @@ stack:
237298 - { id: 0, size: 16384, alignment: 4, local-offset: 0 }
238299body : |
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---
262354name : multi_use_scalar_fi__add_imm_add_inline_imm
263355tracksRegLiveness : true
0 commit comments