| # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5 |
| # RUN: llc -mtriple=amdgcn -mcpu=gfx1030 -verify-machineinstrs -run-pass=si-fold-operands %s -o - | FileCheck %s |
| # RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -verify-machineinstrs -run-pass=si-fold-operands %s -o - | FileCheck %s |
| |
| --- |
| name: fold_frame_index__v_add_u32_e32__const_v_fi |
| tracksRegLiveness: true |
| frameInfo: |
| maxAlignment: 4 |
| localFrameSize: 16384 |
| stack: |
| - { id: 0, size: 16384, alignment: 4, local-offset: 0 } |
| body: | |
| bb.0: |
| ; CHECK-LABEL: name: fold_frame_index__v_add_u32_e32__const_v_fi |
| ; CHECK: [[V_ADD_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 128, %stack.0, implicit $exec |
| ; CHECK-NEXT: $vgpr0 = COPY [[V_ADD_U32_e32_]] |
| ; CHECK-NEXT: SI_RETURN implicit $vgpr0 |
| %0:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec |
| %1:vgpr_32 = V_ADD_U32_e32 128, %0, implicit $exec |
| $vgpr0 = COPY %1 |
| SI_RETURN implicit $vgpr0 |
| ... |
| |
| --- |
| name: fold_frame_index__v_add_co_u32_e64__v_fi_const |
| tracksRegLiveness: true |
| frameInfo: |
| maxAlignment: 4 |
| localFrameSize: 16384 |
| stack: |
| - { id: 0, size: 16384, alignment: 4, local-offset: 0 } |
| body: | |
| bb.0: |
| ; CHECK-LABEL: name: fold_frame_index__v_add_co_u32_e64__v_fi_const |
| ; 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 $exec |
| ; CHECK-NEXT: $vgpr0 = COPY [[V_ADD_CO_U32_e64_]] |
| ; CHECK-NEXT: SI_RETURN implicit $vgpr0 |
| %0:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec |
| %1:vgpr_32, %2:sreg_32 = V_ADD_CO_U32_e64 %0, 128, 0, implicit $exec |
| $vgpr0 = COPY %1 |
| SI_RETURN implicit $vgpr0 |
| ... |
| |
| |
| |
| --- |
| name: fold_frame_index__v_add_u32_e64__const_v_fi |
| tracksRegLiveness: true |
| frameInfo: |
| maxAlignment: 4 |
| localFrameSize: 16384 |
| stack: |
| - { id: 0, size: 16384, alignment: 4, local-offset: 0 } |
| body: | |
| bb.0: |
| ; CHECK-LABEL: name: fold_frame_index__v_add_u32_e64__const_v_fi |
| ; CHECK: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 128, %stack.0, 0, implicit $exec |
| ; CHECK-NEXT: $sgpr4 = COPY [[V_ADD_U32_e64_]] |
| ; CHECK-NEXT: SI_RETURN implicit $sgpr4 |
| %0:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec |
| %1:vgpr_32 = V_ADD_U32_e64 128, %0, 0, implicit $exec |
| $sgpr4 = COPY %1 |
| SI_RETURN implicit $sgpr4 |
| ... |
| |
| --- |
| name: fold_frame_index__v_add_u32_e64___v_fi_const |
| tracksRegLiveness: true |
| frameInfo: |
| maxAlignment: 4 |
| localFrameSize: 16384 |
| stack: |
| - { id: 0, size: 16384, alignment: 4, local-offset: 0 } |
| body: | |
| bb.0: |
| ; CHECK-LABEL: name: fold_frame_index__v_add_u32_e64___v_fi_const |
| ; CHECK: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 %stack.0, 128, 0, implicit $exec |
| ; CHECK-NEXT: $sgpr4 = COPY [[V_ADD_U32_e64_]] |
| ; CHECK-NEXT: SI_RETURN implicit $sgpr4 |
| %0:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec |
| %1:vgpr_32 = V_ADD_U32_e64 %0, 128, 0, implicit $exec |
| $sgpr4 = COPY %1 |
| SI_RETURN implicit $sgpr4 |
| ... |
| |
| --- |
| name: fold_frame_index__v_add_co_u32_e64___fi_const_v |
| tracksRegLiveness: true |
| frameInfo: |
| maxAlignment: 4 |
| localFrameSize: 16384 |
| stack: |
| - { id: 0, size: 16384, alignment: 4, local-offset: 0 } |
| body: | |
| bb.0: |
| ; CHECK-LABEL: name: fold_frame_index__v_add_co_u32_e64___fi_const_v |
| ; 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 $exec |
| ; CHECK-NEXT: $vgpr0 = COPY [[V_ADD_CO_U32_e64_]] |
| ; CHECK-NEXT: SI_RETURN implicit $vgpr0 |
| %0:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec |
| %1:vgpr_32, %2:sreg_32 = V_ADD_CO_U32_e64 128, %0, 0, implicit $exec |
| $vgpr0 = COPY %1 |
| SI_RETURN implicit $vgpr0 |
| ... |
| |
| --- |
| name: fold_frame_index__v_add_co_u32_e64__v_fi_imm |
| tracksRegLiveness: true |
| frameInfo: |
| maxAlignment: 4 |
| localFrameSize: 16384 |
| stack: |
| - { id: 0, size: 16384, alignment: 4, local-offset: 0 } |
| body: | |
| bb.0: |
| ; CHECK-LABEL: name: fold_frame_index__v_add_co_u32_e64__v_fi_imm |
| ; 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 $exec |
| ; CHECK-NEXT: $vgpr0 = COPY [[V_ADD_CO_U32_e64_]] |
| ; CHECK-NEXT: SI_RETURN implicit $vgpr0 |
| %0:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec |
| %1:vgpr_32, %2:sreg_32 = V_ADD_CO_U32_e64 %0, 64, 0, implicit $exec |
| $vgpr0 = COPY %1 |
| SI_RETURN implicit $vgpr0 |
| ... |
| |