132 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 62# RUN: llc -mtriple=amdgcn -mcpu=gfx90a -verify-machineinstrs -run-pass=si-fold-operands %s -o - | FileCheck %s3 4---5name: fold_frame_index_av_mov_b32_imm_pseudo_from_s_mov_b32_fi_to_av6tracksRegLiveness: true7frameInfo:8 maxAlignment: 49 localFrameSize: 1638410stack:11 - { id: 0, size: 16384, alignment: 4, local-offset: 0 }12body: |13 bb.0:14 ; CHECK-LABEL: name: fold_frame_index_av_mov_b32_imm_pseudo_from_s_mov_b32_fi_to_av15 ; CHECK: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 %stack.016 ; CHECK-NEXT: [[AV_MOV_:%[0-9]+]]:av_32 = AV_MOV_B32_IMM_PSEUDO [[S_MOV_B32_]], implicit $exec17 ; CHECK-NEXT: SI_RETURN implicit [[AV_MOV_]]18 %0:sreg_32 = S_MOV_B32 %stack.019 %1:av_32 = AV_MOV_B32_IMM_PSEUDO %0, implicit $exec20 SI_RETURN implicit %121 22...23 24---25name: fold_frame_index_av_mov_b32_imm_pseudo_from_s_mov_b32_fi_to_v26tracksRegLiveness: true27frameInfo:28 maxAlignment: 429 localFrameSize: 1638430stack:31 - { id: 0, size: 16384, alignment: 4, local-offset: 0 }32body: |33 bb.0:34 ; CHECK-LABEL: name: fold_frame_index_av_mov_b32_imm_pseudo_from_s_mov_b32_fi_to_v35 ; CHECK: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 %stack.036 ; CHECK-NEXT: [[AV_MOV_:%[0-9]+]]:av_32 = AV_MOV_B32_IMM_PSEUDO [[S_MOV_B32_]], implicit $exec37 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[AV_MOV_]], implicit $exec38 ; CHECK-NEXT: $vgpr0 = COPY [[COPY]]39 ; CHECK-NEXT: SI_RETURN implicit $vgpr040 %0:sreg_32 = S_MOV_B32 %stack.041 %1:av_32 = AV_MOV_B32_IMM_PSEUDO %0, implicit $exec42 %2:vgpr_32 = COPY %1, implicit $exec43 $vgpr0 = COPY %244 SI_RETURN implicit $vgpr045 46...47 48---49name: fold_frame_index_av_mov_b32_imm_pseudo_from_s_mov_b32_lit_to_v50tracksRegLiveness: true51body: |52 bb.0:53 ; CHECK-LABEL: name: fold_frame_index_av_mov_b32_imm_pseudo_from_s_mov_b32_lit_to_v54 ; CHECK: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 123455 ; CHECK-NEXT: [[AV_MOV_:%[0-9]+]]:av_32 = AV_MOV_B32_IMM_PSEUDO [[S_MOV_B32_]], implicit $exec56 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[AV_MOV_]], implicit $exec57 ; CHECK-NEXT: $vgpr0 = COPY [[COPY]]58 ; CHECK-NEXT: SI_RETURN implicit $vgpr059 %0:sreg_32 = S_MOV_B32 123460 %1:av_32 = AV_MOV_B32_IMM_PSEUDO %0, implicit $exec61 %2:vgpr_32 = COPY %1, implicit $exec62 $vgpr0 = COPY %263 SI_RETURN implicit $vgpr064 65...66 67---68name: fold_frame_index_av_mov_b32_imm_pseudo_from_s_mov_b32_imm_to_v69tracksRegLiveness: true70body: |71 bb.0:72 ; CHECK-LABEL: name: fold_frame_index_av_mov_b32_imm_pseudo_from_s_mov_b32_imm_to_v73 ; CHECK: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 8, implicit $exec74 ; CHECK-NEXT: $vgpr0 = COPY [[V_MOV_B32_e32_]]75 ; CHECK-NEXT: SI_RETURN implicit $vgpr076 %0:sreg_32 = S_MOV_B32 877 %1:av_32 = AV_MOV_B32_IMM_PSEUDO %0, implicit $exec78 %2:vgpr_32 = COPY %1, implicit $exec79 $vgpr0 = COPY %280 SI_RETURN implicit $vgpr081 82...83 84---85name: fold_frame_index_av_regression_086tracksRegLiveness: true87frameInfo:88 maxAlignment: 489 localFrameSize: 1638490stack:91 - { id: 0, size: 16384, alignment: 4, local-offset: 0 }92body: |93 bb.0:94 ; CHECK-LABEL: name: fold_frame_index_av_regression_095 ; CHECK: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 %stack.096 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[S_MOV_B32_]], implicit $exec97 ; CHECK-NEXT: $vgpr0 = COPY [[COPY]]98 ; CHECK-NEXT: SI_RETURN implicit $vgpr099 %0:sreg_32 = S_MOV_B32 %stack.0100 %1:av_32 = COPY %0101 %2:vgpr_32 = COPY %1, implicit $exec102 $vgpr0 = COPY %2103 SI_RETURN implicit $vgpr0104 105...106 107---108name: fold_frame_index_av_regression_1109tracksRegLiveness: 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_av_regression_1118 ; CHECK: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 %stack.0119 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[S_MOV_B32_]], implicit $exec120 ; CHECK-NEXT: $vgpr0 = COPY [[COPY]]121 ; CHECK-NEXT: SI_RETURN implicit $vgpr0122 %0:sreg_32 = S_MOV_B32 %stack.0123 %1:sreg_32 = S_MOV_B32 killed %0124 %2:sreg_64 = S_MOV_B64 0125 %3:av_32 = COPY %1126 %4:vgpr_32 = COPY %3, implicit $exec127 $vgpr0 = COPY %4128 SI_RETURN implicit $vgpr0129 130...131 132