107 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 52# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -run-pass=machine-cse -verify-machineinstrs %s -o - | FileCheck --check-prefix=GCN %s3 4# Check that invalid MIR is not produced with a frame index in a5# commutable operand.6 7---8name: commute_frame_index__v_add_co_u32_e32__sgpr_fi9tracksRegLiveness: true10stack:11 - { id: 0, size: 8, alignment: 4, local-offset: 0 }12body: |13 bb.0:14 liveins: $sgpr415 16 ; GCN-LABEL: name: commute_frame_index__v_add_co_u32_e32__sgpr_fi17 ; GCN: liveins: $sgpr418 ; GCN-NEXT: {{ $}}19 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr420 ; GCN-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 killed [[COPY]], %stack.0, implicit-def dead $vcc, implicit $exec21 ; GCN-NEXT: S_ENDPGM 0, implicit [[V_ADD_CO_U32_e32_]]22 %0:sreg_32 = COPY $sgpr423 %1:vgpr_32 = V_ADD_CO_U32_e32 killed %0, %stack.0, implicit-def dead $vcc, implicit $exec24 S_ENDPGM 0, implicit %125 26...27 28---29name: commute_frame_index__v_add_co_u32_e64__fi_sgpr30tracksRegLiveness: true31stack:32 - { id: 0, size: 8, alignment: 4, local-offset: 0 }33body: |34 bb.0:35 liveins: $sgpr436 37 ; GCN-LABEL: name: commute_frame_index__v_add_co_u32_e64__fi_sgpr38 ; GCN: liveins: $sgpr439 ; GCN-NEXT: {{ $}}40 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr441 ; GCN-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 %stack.0, killed [[COPY]], 0, implicit $exec42 ; GCN-NEXT: S_ENDPGM 0, implicit [[V_ADD_CO_U32_e64_]]43 %0:sreg_32 = COPY $sgpr444 %1:vgpr_32, %2:sreg_64 = V_ADD_CO_U32_e64 %stack.0, killed %0, 0, implicit $exec45 S_ENDPGM 0, implicit %146 47...48 49---50name: commute_frame_index__v_add_co_u32__vgpr_fi51tracksRegLiveness: true52stack:53 - { id: 0, size: 8, alignment: 4, local-offset: 0 }54body: |55 bb.0:56 liveins: $vgpr057 58 ; GCN-LABEL: name: commute_frame_index__v_add_co_u32__vgpr_fi59 ; GCN: liveins: $vgpr060 ; GCN-NEXT: {{ $}}61 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr062 ; GCN-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 %stack.0, killed [[COPY]], implicit-def dead $vcc, implicit $exec63 ; GCN-NEXT: S_ENDPGM 0, implicit [[V_ADD_CO_U32_e32_]]64 %0:vgpr_32 = COPY $vgpr065 %1:vgpr_32 = V_ADD_CO_U32_e32 killed %0, %stack.0, implicit-def dead $vcc, implicit $exec66 S_ENDPGM 0, implicit %167 68...69 70---71name: commute_frame_index__v_add_co_u32__fi_vgpr72tracksRegLiveness: true73stack:74 - { id: 0, size: 8, alignment: 4, local-offset: 0 }75body: |76 bb.0.entry:77 liveins: $vgpr078 79 ; GCN-LABEL: name: commute_frame_index__v_add_co_u32__fi_vgpr80 ; GCN: liveins: $vgpr081 ; GCN-NEXT: {{ $}}82 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr083 ; GCN-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 %stack.0, killed [[COPY]], implicit-def dead $vcc, implicit $exec84 ; GCN-NEXT: S_ENDPGM 0, implicit [[V_ADD_CO_U32_e32_]]85 %0:vgpr_32 = COPY $vgpr086 %1:vgpr_32 = V_ADD_CO_U32_e32 %stack.0, killed %0, implicit-def dead $vcc, implicit $exec87 S_ENDPGM 0, implicit %188 89...90 91---92name: commute_frame_index__v_add_co_u32_e32__fi_fi93tracksRegLiveness: true94stack:95 - { id: 0, size: 8, alignment: 4, local-offset: 0 }96 - { id: 1, size: 8, alignment: 4, local-offset: 0 }97body: |98 bb.0:99 100 ; GCN-LABEL: name: commute_frame_index__v_add_co_u32_e32__fi_fi101 ; GCN: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 %stack.0, %stack.1, implicit-def dead $vcc, implicit $exec102 ; GCN-NEXT: S_ENDPGM 0, implicit [[V_ADD_CO_U32_e32_]]103 %0:vgpr_32 = V_ADD_CO_U32_e32 %stack.0, %stack.1, implicit-def dead $vcc, implicit $exec104 S_ENDPGM 0, implicit %0105 106...107