Files
clang-p2996/llvm/test/CodeGen/AMDGPU/madak-inline-constant.mir
Jay Foad 5ddfedc956 [AMDGPU] Fix deleting of move-immediate instructions after folding
SIInstrInfo::FoldImmediate tried to delete move-immediate instructions
after folding them into their only use. This did not work because it was
checking hasOneNonDBGUse after doing the fold, at which point there
should be no uses. This seems to have no effect on codegen, it just
means less stuff for DCE to clean up later.

Differential Revision: https://reviews.llvm.org/D120815
2022-03-02 16:11:16 +00:00

178 lines
4.9 KiB
YAML

# RUN: llc -march=amdgcn -run-pass peephole-opt -verify-machineinstrs -o - %s | FileCheck -check-prefix=GCN %s
# GCN-LABEL: bb.0:
# GCN: S_MOV_B32 1082130432
# GCN: %3:vgpr_32 = V_MADAK_F32 1082130432, killed %0, 1092616192, implicit $mode, implicit $exec
---
name: test src1-inlined
body: |
bb.0:
liveins: $vgpr0, $sgpr0_sgpr1
%0:vgpr_32 = COPY $vgpr0
%17:vgpr_32 = V_MOV_B32_e32 1092616192, implicit $exec
%18:sreg_32 = S_MOV_B32 1082130432
%19:vgpr_32 = V_MAC_F32_e64 0, killed %0, 0, killed %18, 0, %17, 0, 0, implicit $mode, implicit $exec
...
# GCN-LABEL: bb.0:
# GCN: S_MOV_B32 1082130432
# GCN: %3:vgpr_32 = V_MADAK_F32 1082130432, killed %0, 1092616192, implicit $mode, implicit $exec
---
name: test src0-inlined
body: |
bb.0:
liveins: $vgpr0, $sgpr0_sgpr1
%0:vgpr_32 = COPY $vgpr0
%17:vgpr_32 = V_MOV_B32_e32 1092616192, implicit $exec
%18:sreg_32 = S_MOV_B32 1082130432
%19:vgpr_32 = V_MAC_F32_e64 0, killed %18, 0, killed %0, 0, %17, 0, 0, implicit $mode, implicit $exec
...
# GCN-LABEL: bb.0:
# GCN: S_MOV_B32 1082130432
# GCN: %3:vgpr_32 = V_MADAK_F32 killed %0, killed %0, 1092616192, implicit $mode, implicit $exec
---
name: test none-inlined
body: |
bb.0:
liveins: $vgpr0, $sgpr0_sgpr1
%0:vgpr_32 = COPY $vgpr0
%17:vgpr_32 = V_MOV_B32_e32 1092616192, implicit $exec
%18:sreg_32 = S_MOV_B32 1082130432
%19:vgpr_32 = V_MAC_F32_e64 0, killed %0, 0, killed %0, 0, %17, 0, 0, implicit $mode, implicit $exec
...
# GCN-LABEL: bb.0:
# GCN: V_MOV_B32_e32 1082130432
# GCN: %3:vgpr_32 = V_MADAK_F32 1082130432, killed %0, 1092616192, implicit $mode, implicit $exec
---
name: test src1-2vgprs-inlined
body: |
bb.0:
liveins: $vgpr0, $sgpr0_sgpr1
%0:vgpr_32 = COPY $vgpr0
%17:vgpr_32 = V_MOV_B32_e32 1092616192, implicit $exec
%18:vgpr_32 = V_MOV_B32_e32 1082130432, implicit $exec
%19:vgpr_32 = V_MAC_F32_e64 0, killed %0, 0, killed %18, 0, %17, 0, 0, implicit $mode, implicit $exec
...
# GCN-LABEL: bb.0:
# GCN: V_MOV_B32_e32 1082130432
# GCN: %3:vgpr_32 = V_MADAK_F32 1082130432, killed %0, 1092616192, implicit $mode, implicit $exec
---
name: test src0-2vgprs-inlined
body: |
bb.0:
liveins: $vgpr0, $sgpr0_sgpr1
%0:vgpr_32 = COPY $vgpr0
%17:vgpr_32 = V_MOV_B32_e32 1092616192, implicit $exec
%18:vgpr_32 = V_MOV_B32_e32 1082130432, implicit $exec
%19:vgpr_32 = V_MAC_F32_e64 0, killed %18, 0, killed %0, 0, %17, 0, 0, implicit $mode, implicit $exec
...
# GCN-LABEL: bb.0:
# GCN: S_MOV_B32 1082130432
# GCN: V_MADAK_F32 1082130432, killed $vgpr1, 1092616192, implicit $mode, implicit $exec
---
name: test src0-phys-vgpr
body: |
bb.0:
liveins: $vgpr0, $sgpr0_sgpr1
$vgpr1 = COPY $vgpr0
%17:vgpr_32 = V_MOV_B32_e32 1092616192, implicit $exec
%18:sgpr_32 = S_MOV_B32 1082130432
%19:vgpr_32 = V_MAC_F32_e64 0, killed $vgpr1, 0, killed %18, 0, %17, 0, 0, implicit $mode, implicit $exec
...
# GCN-LABEL: bb.0:
# GCN: S_MOV_B32 1082130432
# GCN: V_MADAK_F32 1082130432, killed $vgpr0, 1092616192, implicit $mode, implicit $exec
---
name: test src1-phys-vgpr
body: |
bb.0:
liveins: $vgpr0, $sgpr0_sgpr1
%0:vgpr_32 = COPY $vgpr0
%17:vgpr_32 = V_MOV_B32_e32 1092616192, implicit $exec
%18:sgpr_32 = S_MOV_B32 1082130432
%19:vgpr_32 = V_MAC_F32_e64 0, killed %18, 0, killed $vgpr0, 0, %17, 0, 0, implicit $mode, implicit $exec
...
# GCN-LABEL: bb.0:
# GCN: V_MOV_B32_e32 1092616192, implicit $exec
# GCN: V_MAC_F32_e64 0, killed $sgpr2, 0, killed %0, 0, %1, 0, 0, implicit $mode, implicit $exec
---
name: test src0-phys-sgpr
body: |
bb.0:
liveins: $vgpr0, $sgpr0_sgpr1, $sgpr2
%0:vgpr_32 = COPY $vgpr0
%17:vgpr_32 = V_MOV_B32_e32 1092616192, implicit $exec
%19:vgpr_32 = V_MAC_F32_e64 0, killed $sgpr2, 0, killed %0, 0, %17, 0, 0, implicit $mode, implicit $exec
...
# GCN-LABEL: bb.0:
# GCN: V_MOV_B32_e32 1092616192, implicit $exec
# GCN: V_MAC_F32_e64 0, killed %0, 0, killed $sgpr2, 0, %1, 0, 0, implicit $mode, implicit $exec
---
name: test src1-phys-sgpr
body: |
bb.0:
liveins: $vgpr0, $sgpr0_sgpr1, $sgpr2
%0:vgpr_32 = COPY $vgpr0
%17:vgpr_32 = V_MOV_B32_e32 1092616192, implicit $exec
%19:vgpr_32 = V_MAC_F32_e64 0, killed %0, 0, killed $sgpr2, 0, %17, 0, 0, implicit $mode, implicit $exec
...
# GCN-LABEL: bb.0:
# GCN: $sgpr2 = S_MOV_B32 1082130432
# GCN: V_MADAK_F32 1082130432, killed %0, 1092616192, implicit $mode, implicit $exec
---
name: test src1-phys-sgpr-move
body: |
bb.0:
liveins: $vgpr0, $sgpr0_sgpr1
%0:vgpr_32 = COPY $vgpr0
%17:vgpr_32 = V_MOV_B32_e32 1092616192, implicit $exec
$sgpr2 = S_MOV_B32 1082130432
%19:vgpr_32 = V_MAC_F32_e64 0, killed %0, 0, killed $sgpr2, 0, %17, 0, 0, implicit $mode, implicit $exec
...