Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / X86 / pr46827.ll
blobfa3ff064ea115f12d4399ad78976c1f986ebe4c4
1 ; RUN: llc < %s -mtriple=i686-pc-linux -mattr=+rtm -verify-machineinstrs -stop-after=finalize-isel | FileCheck %s
3 ; CHECK: body:             |
4 ; CHECK:   bb.0.bb107:
5 ; CHECK:     successors: %bb.3(0x40000000), %bb.4(0x40000000)
6 ; CHECK:     %0:gr32 = MOV32rm %fixed-stack.0, 1, $noreg, 0, $noreg :: (load (s32) from %fixed-stack.0, align 16)
7 ; CHECK:     %1:gr32 = SUB32ri %0, 1, implicit-def $eflags
8 ; CHECK:     XBEGIN_4 %bb.4, implicit-def $eax
9 ; CHECK:   bb.3.bb107:
10 ; CHECK:     successors: %bb.5(0x80000000)
11 ; CHECK:     liveins: $eflags
12 ; CHECK:     %3:gr32 = MOV32ri -1
13 ; CHECK:     JMP_1 %bb.5
14 ; CHECK:   bb.4.bb107:
15 ; CHECK:     successors: %bb.5(0x80000000)
16 ; CHECK:     liveins: $eflags
17 ; CHECK:     XABORT_DEF implicit-def $eax
18 ; CHECK:     %4:gr32 = COPY $eax
19 ; CHECK:   bb.5.bb107:
20 ; CHECK:     successors: %bb.1(0x40000000), %bb.2(0x40000000)
21 ; CHECK:     liveins: $eflags
22 ; CHECK:     %2:gr32 = PHI %3, %bb.3, %4, %bb.4
23 ; CHECK:     JCC_1 %bb.2, 5, implicit $eflags
24 ; CHECK:     JMP_1 %bb.1
26 declare i32 @llvm.x86.xbegin() #0
28 define void @wobble.12(i32 %tmp116) {
29 bb107:                                            ; preds = %bb42
30   %tmp117 = icmp eq i32 %tmp116, 1
31   %tmp127 = tail call i32 @llvm.x86.xbegin() #0
32   br i1 %tmp117, label %bb129, label %bb250
34 bb129:                                            ; preds = %bb107
35   unreachable
37 bb250:                                            ; preds = %bb107
38   unreachable