Revert r354244 "[DAGCombiner] Eliminate dead stores to stack."
[llvm-complete.git] / test / CodeGen / Hexagon / early-if-conv-lifetime.mir
blobbbb2dce009c84031382f3ab01b19918a421e03b9
1 # RUN: llc -march=hexagon -run-pass hexagon-early-if %s -o - | FileCheck %s
3 # Test that the LIFETIME_END instruction is not speculated and moved to a
4 # different basic block.
6 # CHECK: bb.1.b1:
7 # CHECK: LIFETIME_END
8 # CHECK: bb.2.b2:
10 --- |
12   %s.0 = type { %s.1 }
13   %s.1 = type { %s.2 }
14   %s.2 = type { %s.3 }
15   %s.3 = type { %s.4 }
16   %s.4 = type { %s.5 }
17   %s.5 = type { i32, i32, i8* }
19   declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #0
21   define hidden fastcc void @f0() {
22   b0:
23     %v0 = alloca %s.0, align 4
24     %v1 = load i8, i8* undef, align 1
25     %v2 = add i8 %v1, -102
26     %v3 = icmp ult i8 %v2, 1
27     br i1 %v3, label %b1, label %b2
29   b1:                                               ; preds = %b0
30     %v4 = bitcast %s.0* %v0 to i8*
31     call void @llvm.lifetime.end.p0i8(i64 12, i8* nonnull %v4)
32     br label %b2
34   b2:                                               ; preds = %b1, %b0
35     ret void
36   }
38   attributes #0 = { argmemonly nounwind }
40 ...
41 ---
42 name:            f0
43 alignment:       4
44 registers:
45   - { id: 0, class: intregs, preferred-register: '' }
46   - { id: 1, class: intregs, preferred-register: '' }
47   - { id: 2, class: predregs, preferred-register: '' }
48   - { id: 3, class: predregs, preferred-register: '' }
49 liveins:
50 frameInfo:
51   maxAlignment:    4
52 fixedStack:
53 stack:
54   - { id: 0, name: v0, type: default, offset: 0, size: 12, alignment: 4 }
55 constants:
56 body:             |
57   bb.0.b0:
58     successors: %bb.1.b1(0x40000000), %bb.2.b2(0x40000000)
60     %1 = IMPLICIT_DEF
61     %0 = L2_loadrb_io killed %1, 0 :: (load 1 from `i8* undef`)
62     %2 = C2_cmpeqi killed %0, 102
63     %3 = COPY killed %2
64     J2_jumpf killed %3, %bb.2.b2, implicit-def dead $pc
65     J2_jump %bb.1.b1, implicit-def dead $pc
67   bb.1.b1:
68     successors: %bb.2.b2(0x80000000)
70     LIFETIME_END %stack.0.v0
72   bb.2.b2:
73     PS_jmpret $r31, implicit-def dead $pc
75 ...