Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / X86 / delete-dead-instrs-with-live-uses.mir
blob10ee445788757f827d8e087173f3f34176a9df0b
1 # RUN: llc -mtriple=i386-apple-ios9.0.0-simulator --frame-pointer=all -verify-machineinstrs -start-before=greedy -o - %s | FileCheck %s
3 # The test used to fail with "Live segment doesn't end at a valid instruction"
4 # See PR51655.
6 ---
7 # CHECK: jne
8 # CHECK: andl    $-16, %edx
9 # CHECK: xorl    %ebx, %ebx
10 # CHECK: movl    -16(%ebp), %esi
11 # CHECK: xorl    %eax, %eax
13 name:            test
14 tracksRegLiveness: true
15 fixedStack:
16   - { id: 0, type: default, offset: 4, size: 4, alignment: 4, stack-id: default,
17       isImmutable: true, isAliased: false, callee-saved-restored: true }
18   - { id: 1, type: default, offset: 0, size: 4, alignment: 16, stack-id: default,
19       isImmutable: true, isAliased: false, callee-saved-restored: true }
20 body:             |
21   bb.0:
22     successors: %bb.3(0x40000000), %bb.1(0x40000000)
24     %0:gr32_nosp = MOV32rm %fixed-stack.1, 1, $noreg, 0, $noreg :: (load (s32) from %fixed-stack.1)
25     %1:gr32_nosp = MOV32rm %fixed-stack.0, 1, $noreg, 0, $noreg :: (load (s32) from %fixed-stack.0, align 16)
26     %2:gr32_abcd = MOV32r0 implicit-def dead $eflags
27     JCC_1 %bb.3, 5, implicit undef $eflags
28     JMP_1 %bb.1
30   bb.1:
31     successors: %bb.2(0x80000000)
33     %2:gr32_abcd = AND32ri8 %2, -16, implicit-def dead $eflags
34     %3:gr32_abcd = MOV32r0 implicit-def dead $eflags
35     %4:gr32 = LEA32r %0, 1, %1, -49, $noreg
36     %5:gr32_abcd = MOV32r0 implicit-def dead $eflags
37     %6:gr32 = IMPLICIT_DEF
38     JMP_1 %bb.2
40   bb.2:
41     successors: %bb.2(0x40000000), %bb.3(0x40000000)
43     %7:vr128 = MOVUPSrm %4, 1, %3, 0, $noreg :: (load (s128), align 1)
44     %5:gr32_abcd = nuw ADD32ri8 %5, 64, implicit-def dead $eflags
45     %6:gr32 = ADD32ri8 %6, -4, implicit-def $eflags
46     JCC_1 %bb.2, 5, implicit killed $eflags
47     JMP_1 %bb.3
49   bb.3:
50     successors: %bb.4(0x80000000)
52     %2:gr32_abcd = NEG32r %2, implicit-def dead $eflags
53     %8:gr32 = LEA32r %0, 1, %1, -5, $noreg
54     JMP_1 %bb.4
56   bb.4:
57     RET 0
59 ...