[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / Hexagon / early-if-conv-lifetime.mir
blob8fe30e3c50cf454d3ec3e883f9216a35c818bc45
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, ptr }
19   declare void @llvm.lifetime.end.p0(i64, ptr nocapture) #0
21   define hidden fastcc void @f0() {
22   b0:
23     %v0 = alloca %s.0, align 4
24     %v1 = load i8, ptr 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     call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %v0)
31     br label %b2
33   b2:                                               ; preds = %b1, %b0
34     ret void
35   }
37   attributes #0 = { argmemonly nounwind }
39 ...
40 ---
41 name:            f0
42 alignment:       16
43 registers:
44   - { id: 0, class: intregs, preferred-register: '' }
45   - { id: 1, class: intregs, preferred-register: '' }
46   - { id: 2, class: predregs, preferred-register: '' }
47   - { id: 3, class: predregs, preferred-register: '' }
48 liveins:
49 frameInfo:
50   maxAlignment:    4
51 fixedStack:
52 stack:
53   - { id: 0, name: v0, type: default, offset: 0, size: 12, alignment: 4 }
54 constants:
55 body:             |
56   bb.0.b0:
57     successors: %bb.1.b1(0x40000000), %bb.2.b2(0x40000000)
59     %1 = IMPLICIT_DEF
60     %0 = L2_loadrb_io killed %1, 0 :: (load (s8) from `ptr undef`)
61     %2 = C2_cmpeqi killed %0, 102
62     %3 = COPY killed %2
63     J2_jumpf killed %3, %bb.2.b2, implicit-def dead $pc
64     J2_jump %bb.1.b1, implicit-def dead $pc
66   bb.1.b1:
67     successors: %bb.2.b2(0x80000000)
69     LIFETIME_END %stack.0.v0
71   bb.2.b2:
72     PS_jmpret $r31, implicit-def dead $pc
74 ...