127 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 52# RUN: llc -mtriple=amdgcn -mcpu=gfx1030 -verify-machineinstrs -run-pass=si-fold-operands %s -o - | FileCheck %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -verify-machineinstrs -run-pass=si-fold-operands %s -o - | FileCheck %s4 5---6name: fold_frame_index__v_add_u32_e32__const_v_fi7tracksRegLiveness: true8frameInfo:9 maxAlignment: 410 localFrameSize: 1638411stack:12 - { id: 0, size: 16384, alignment: 4, local-offset: 0 }13body: |14 bb.0:15 ; CHECK-LABEL: name: fold_frame_index__v_add_u32_e32__const_v_fi16 ; CHECK: [[V_ADD_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 128, %stack.0, implicit $exec17 ; CHECK-NEXT: $vgpr0 = COPY [[V_ADD_U32_e32_]]18 ; CHECK-NEXT: SI_RETURN implicit $vgpr019 %0:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec20 %1:vgpr_32 = V_ADD_U32_e32 128, %0, implicit $exec21 $vgpr0 = COPY %122 SI_RETURN implicit $vgpr023...24 25---26name: fold_frame_index__v_add_co_u32_e64__v_fi_const27tracksRegLiveness: true28frameInfo:29 maxAlignment: 430 localFrameSize: 1638431stack:32 - { id: 0, size: 16384, alignment: 4, local-offset: 0 }33body: |34 bb.0:35 ; CHECK-LABEL: name: fold_frame_index__v_add_co_u32_e64__v_fi_const36 ; CHECK: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_32 = V_ADD_CO_U32_e64 %stack.0, 128, 0, implicit $exec37 ; CHECK-NEXT: $vgpr0 = COPY [[V_ADD_CO_U32_e64_]]38 ; CHECK-NEXT: SI_RETURN implicit $vgpr039 %0:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec40 %1:vgpr_32, %2:sreg_32 = V_ADD_CO_U32_e64 %0, 128, 0, implicit $exec41 $vgpr0 = COPY %142 SI_RETURN implicit $vgpr043...44 45 46 47---48name: fold_frame_index__v_add_u32_e64__const_v_fi49tracksRegLiveness: true50frameInfo:51 maxAlignment: 452 localFrameSize: 1638453stack:54 - { id: 0, size: 16384, alignment: 4, local-offset: 0 }55body: |56 bb.0:57 ; CHECK-LABEL: name: fold_frame_index__v_add_u32_e64__const_v_fi58 ; CHECK: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 128, %stack.0, 0, implicit $exec59 ; CHECK-NEXT: $sgpr4 = COPY [[V_ADD_U32_e64_]]60 ; CHECK-NEXT: SI_RETURN implicit $sgpr461 %0:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec62 %1:vgpr_32 = V_ADD_U32_e64 128, %0, 0, implicit $exec63 $sgpr4 = COPY %164 SI_RETURN implicit $sgpr465...66 67---68name: fold_frame_index__v_add_u32_e64___v_fi_const69tracksRegLiveness: true70frameInfo:71 maxAlignment: 472 localFrameSize: 1638473stack:74 - { id: 0, size: 16384, alignment: 4, local-offset: 0 }75body: |76 bb.0:77 ; CHECK-LABEL: name: fold_frame_index__v_add_u32_e64___v_fi_const78 ; CHECK: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 %stack.0, 128, 0, implicit $exec79 ; CHECK-NEXT: $sgpr4 = COPY [[V_ADD_U32_e64_]]80 ; CHECK-NEXT: SI_RETURN implicit $sgpr481 %0:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec82 %1:vgpr_32 = V_ADD_U32_e64 %0, 128, 0, implicit $exec83 $sgpr4 = COPY %184 SI_RETURN implicit $sgpr485...86 87---88name: fold_frame_index__v_add_co_u32_e64___fi_const_v89tracksRegLiveness: true90frameInfo:91 maxAlignment: 492 localFrameSize: 1638493stack:94 - { id: 0, size: 16384, alignment: 4, local-offset: 0 }95body: |96 bb.0:97 ; CHECK-LABEL: name: fold_frame_index__v_add_co_u32_e64___fi_const_v98 ; CHECK: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_32 = V_ADD_CO_U32_e64 128, %stack.0, 0, implicit $exec99 ; CHECK-NEXT: $vgpr0 = COPY [[V_ADD_CO_U32_e64_]]100 ; CHECK-NEXT: SI_RETURN implicit $vgpr0101 %0:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec102 %1:vgpr_32, %2:sreg_32 = V_ADD_CO_U32_e64 128, %0, 0, implicit $exec103 $vgpr0 = COPY %1104 SI_RETURN implicit $vgpr0105...106 107---108name: fold_frame_index__v_add_co_u32_e64__v_fi_imm109tracksRegLiveness: true110frameInfo:111 maxAlignment: 4112 localFrameSize: 16384113stack:114 - { id: 0, size: 16384, alignment: 4, local-offset: 0 }115body: |116 bb.0:117 ; CHECK-LABEL: name: fold_frame_index__v_add_co_u32_e64__v_fi_imm118 ; CHECK: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_32 = V_ADD_CO_U32_e64 %stack.0, 64, 0, implicit $exec119 ; CHECK-NEXT: $vgpr0 = COPY [[V_ADD_CO_U32_e64_]]120 ; CHECK-NEXT: SI_RETURN implicit $vgpr0121 %0:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec122 %1:vgpr_32, %2:sreg_32 = V_ADD_CO_U32_e64 %0, 64, 0, implicit $exec123 $vgpr0 = COPY %1124 SI_RETURN implicit $vgpr0125...126 127