[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / Hexagon / verify-undef.ll
blobfb95214cdac125031294cf3493bc158f52f4c87e
1 ; RUN: llc -march=hexagon -enable-pipeliner -verify-machineinstrs < %s
2 ; REQUIRES: asserts
4 ; This test fails in the machine verifier because the verifier thinks the
5 ; return register is undefined, and because there is a basic block that
6 ; ends with an unconditional branch that is not marked as a barrier.
8 ; Enabling SWP exposes these bugs because the live variable analysis is
9 ; performed earlier than the process implicit def pass.  This ordering
10 ; causes the JMPR machine instruction to contain two R0 operands, one
11 ; with an undef and one with a kill flag.
13 @g0 = common global i32 0, align 4
15 ; Function Attrs: nounwind
16 define i32 @f0(i32 %a0) #0 {
17 b0:
18   %v0 = icmp eq i32 %a0, 0
19   br i1 %v0, label %b2, label %b1
21 b1:                                               ; preds = %b0
22   %v1 = tail call i32 @f1(i32 %a0) #0
23   br label %b3
25 b2:                                               ; preds = %b0
26   store i32 0, ptr @g0, align 4
27   br label %b3
29 b3:                                               ; preds = %b2, %b1
30   ret i32 undef
33 declare i32 @f1(...)
35 attributes #0 = { nounwind }