Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / Mips / coalesce-partial-redundant-reguse-terminator.mir
blobbfdd5cfd8b53d46134b9d6532d0c1cf5078386db
1 # RUN: llc -march=mips64 -o - %s -run-pass=register-coalescer -verify-coalescing | FileCheck %s
3 ---
4 name:            f
5 tracksRegLiveness: true
6 body:             |
7  bb.0:
8     %0:gpr32 = ADDiu $zero, 0
9     %1:gpr32 = COPY %0
10     %1:gpr32 = ADDiu %1, 1
11     BEQ %0, $zero, %bb.3, implicit-def $at
12     J %bb.1, implicit-def dead $at
14  bb.1:
15     J %bb.2, implicit %1, implicit-def dead $at
17  bb.2:
18     %1:gpr32 = COPY %0
19     %0:gpr32 = COPY %1
20     BEQ %0:gpr32, $zero, %bb.2, implicit-def $at
22  bb.3:
23     %4:gpr32 = ADDiu %1, 1
24 ...
26 # We should not hoist the
28 #  %1:gpr32 = COPY %0
30 # into bb.1 since %1 is used in the terminating instruction J there.
32 # CHECK-LABEL: bb.1:
33 # CHECK-NOT:      COPY
34 # CHECK:          J
36 # CHECK-LABEL: bb.2: