1# RUN: llc -run-pass opt-phis -mtriple=x86_64-- -o - %s | FileCheck %s
2--- |
3  define void @test() {
4    ret void
5  }
6
7  !llvm.dbg.cu = !{!1}
8  !llvm.module.flags = !{!2, !3}
9  !llvm.ident = !{!4}
10
11  !0 = !DIFile(filename: "foo.c", directory: "/bar")
12  !1 = distinct !DICompileUnit(language: DW_LANG_C, file: !0, producer: "My Compiler")
13  !2 = !{i32 2, !"Dwarf Version", i32 4}
14  !3 = !{i32 2, !"Debug Info Version", i32 3}
15  !4 = !{!"My Compiler"}
16  !5 = distinct !DISubprogram(name: "test")
17  !6 = !DILocation(line: 7, column: 11, scope: !5)
18  !7 = !DILocalVariable(name: "l", scope: !5)
19
20...
21---
22name:            test
23tracksRegLiveness: true
24body:             |
25  bb.0:
26    %0:gr32 = IMPLICIT_DEF
27
28  bb.1:
29    %1:gr32 = PHI %0, %bb.0, %2, %bb.1
30    DBG_VALUE %1, _, !7, !DIExpression(), debug-location !6
31    %2:gr32 = IMPLICIT_DEF
32    JMP_1 %bb.1
33...
34
35# The PHI should be removed since it's only used in a DBG_VALUE
36# CHECK-LABEL: bb.1:
37# CHECK-NOT: PHI
38