103 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=-real-true16 %s -run-pass twoaddressinstruction -verify-machineinstrs -o - | FileCheck --check-prefixes=GFX11 %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=-real-true16 %s --passes=two-address-instruction -verify-each -o - | FileCheck --check-prefixes=GFX11 %s4 5---6name: test_fmamk_reg_imm_f167registers:8 - { id: 0, class: vreg_64 }9 - { id: 1, class: vgpr_32 }10 - { id: 2, class: vgpr_32 }11 - { id: 3, class: vgpr_32 }12 - { id: 4, class: vgpr_32 }13body: |14 bb.0:15 16 ; GFX11-LABEL: name: test_fmamk_reg_imm_f1617 ; GFX11: [[DEF:%[0-9]+]]:vreg_64 = IMPLICIT_DEF18 ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[DEF]].sub119 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[DEF]].sub020 ; GFX11-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 1078523331, implicit $exec21 ; GFX11-NEXT: [[V_FMA_F16_gfx9_fake16_e64_:%[0-9]+]]:vgpr_32 = V_FMA_F16_gfx9_fake16_e64 0, killed [[COPY1]], 0, [[V_MOV_B32_e32_]], 0, killed [[COPY]], 0, 0, 0, implicit $mode, implicit $exec22 %0 = IMPLICIT_DEF23 %1 = COPY %0.sub124 %2 = COPY %0.sub025 %3 = V_MOV_B32_e32 1078523331, implicit $exec26 %4 = V_FMAC_F16_fake16_e64 0, killed %2, 0, %3, 0, killed %1, 0, 0, implicit $mode, implicit $exec27 28...29 30---31name: test_fmamk_imm_reg_f1632registers:33 - { id: 0, class: vreg_64 }34 - { id: 1, class: vgpr_32 }35 - { id: 2, class: vgpr_32 }36 - { id: 3, class: vgpr_32 }37 - { id: 4, class: vgpr_32 }38body: |39 bb.0:40 41 ; GFX11-LABEL: name: test_fmamk_imm_reg_f1642 ; GFX11: [[DEF:%[0-9]+]]:vreg_64 = IMPLICIT_DEF43 ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[DEF]].sub144 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[DEF]].sub045 ; GFX11-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 1078523331, implicit $exec46 ; GFX11-NEXT: [[V_FMA_F16_gfx9_fake16_e64_:%[0-9]+]]:vgpr_32 = V_FMA_F16_gfx9_fake16_e64 0, [[COPY1]], 0, killed [[V_MOV_B32_e32_]], 0, killed [[COPY]], 0, 0, 0, implicit $mode, implicit $exec47 %0 = IMPLICIT_DEF48 %1 = COPY %0.sub149 %2 = COPY %0.sub050 %3 = V_MOV_B32_e32 1078523331, implicit $exec51 %4 = V_FMAC_F16_fake16_e64 0, %2, 0, killed %3, 0, killed %1, 0, 0, implicit $mode, implicit $exec52 53...54 55---56name: test_fmaak_f1657registers:58 - { id: 0, class: vreg_64 }59 - { id: 1, class: vgpr_32 }60 - { id: 2, class: vgpr_32 }61 - { id: 3, class: vgpr_32 }62 - { id: 4, class: vgpr_32 }63body: |64 bb.0:65 66 ; GFX11-LABEL: name: test_fmaak_f1667 ; GFX11: [[DEF:%[0-9]+]]:vreg_64 = IMPLICIT_DEF68 ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[DEF]].sub069 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[DEF]].sub170 ; GFX11-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 1078523331, implicit $exec71 ; GFX11-NEXT: [[V_FMA_F16_gfx9_fake16_e64_:%[0-9]+]]:vgpr_32 = V_FMA_F16_gfx9_fake16_e64 0, killed [[COPY]], 0, [[COPY1]], 0, [[V_MOV_B32_e32_]], 0, 0, 0, implicit $mode, implicit $exec72 %0 = IMPLICIT_DEF73 %1 = COPY %0.sub074 %2 = COPY %0.sub175 %3 = V_MOV_B32_e32 1078523331, implicit $exec76 %4 = V_FMAC_F16_fake16_e64 0, killed %1, 0, %2, 0, %3, 0, 0, implicit $mode, implicit $exec77...78 79---80name: test_fmaak_inline_literal_f1681tracksRegLiveness: true82liveins:83 - { reg: '$vgpr0', virtual-reg: '%0' }84body: |85 bb.0:86 liveins: $vgpr087 88 ; GFX11-LABEL: name: test_fmaak_inline_literal_f1689 ; GFX11: liveins: $vgpr090 ; GFX11-NEXT: {{ $}}91 ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY killed $vgpr092 ; GFX11-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 49664, implicit $exec93 ; GFX11-NEXT: [[V_FMA_F16_gfx9_fake16_e64_:%[0-9]+]]:vgpr_32 = V_FMA_F16_gfx9_fake16_e64 0, 16384, 0, killed [[COPY]], 0, [[V_MOV_B32_e32_]], 0, 0, 0, implicit $mode, implicit $exec94 ; GFX11-NEXT: S_ENDPGM 095 %0:vgpr_32 = COPY killed $vgpr096 97 %1:vgpr_32 = V_MOV_B32_e32 49664, implicit $exec98 %2:vgpr_32 = V_FMAC_F16_fake16_e64 0, 16384, 0, killed %0, 0, %1, 0, 0, implicit $mode, implicit $exec99 S_ENDPGM 0100 101...102 103