-!23 = !{!24, !34, !39}
-!24 = distinct !DISubprogram(name: "bar", linkageName: "_Z3barii", scope: !1, file: !1, line: 11, type: !25, isLocal: false, isDefinition: true, scopeLine: 11, flags: DIFlagPrototyped, isOptimized: true, variables: !28)
-!25 = !DISubroutineType(types: !26)
-!26 = !{null, !27, !27}
-!27 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
-!28 = !{!29, !30, !31, !32, !33}
-!29 = !DILocalVariable(name: "param1", arg: 1, scope: !24, file: !1, line: 11, type: !27)
-!30 = !DILocalVariable(name: "param2", arg: 2, scope: !24, file: !1, line: 11, type: !27)
-!31 = !DILocalVariable(name: "temp", scope: !24, file: !1, line: 12, type: !15)
-!32 = !DILocalVariable(name: "var1", scope: !24, file: !1, line: 17, type: !"_ZTS4AAA3")
-!33 = !DILocalVariable(name: "var2", scope: !24, file: !1, line: 18, type: !"_ZTS4AAA3")
-!34 = distinct !DISubprogram(name: "AAA3", linkageName: "_ZN4AAA3C2EPKc", scope: !"_ZTS4AAA3", file: !1, line: 5, type: !12, isLocal: false, isDefinition: true, scopeLine: 5, flags: DIFlagPrototyped, isOptimized: true, declaration: !11, variables: !35)
-!35 = !{!36, !38}
-!36 = !DILocalVariable(name: "this", arg: 1, scope: !34, type: !37, flags: DIFlagArtificial | DIFlagObjectPointer)
-!37 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !"_ZTS4AAA3", size: 64, align: 64)
-!38 = !DILocalVariable(name: "value", arg: 2, scope: !34, file: !1, line: 5, type: !15)
-!39 = distinct !DISubprogram(name: "operator=", linkageName: "_ZN4AAA3aSEPKc", scope: !"_ZTS4AAA3", file: !1, line: 6, type: !12, isLocal: false, isDefinition: true, scopeLine: 6, flags: DIFlagPrototyped, isOptimized: true, declaration: !17, variables: !40)
-!40 = !{!41, !42}
-!41 = !DILocalVariable(name: "this", arg: 1, scope: !39, type: !37, flags: DIFlagArtificial | DIFlagObjectPointer)
-!42 = !DILocalVariable(name: "value", arg: 2, scope: !39, file: !1, line: 6, type: !15)
-!43 = !{i32 2, !"Dwarf Version", i32 4}
-!44 = !{i32 2, !"Debug Info Version", i32 3}
-!45 = !{!"clang version 3.8.0 (trunk 255993) (llvm/trunk 256074)"}
-!46 = !DIExpression()
-!47 = !DILocation(line: 11, column: 15, scope: !24)
-!48 = !DILocation(line: 11, column: 26, scope: !24)
-!49 = !DILocation(line: 12, column: 16, scope: !24)
-!50 = !DILocation(line: 14, column: 7, scope: !51)
-!51 = distinct !DILexicalBlock(scope: !24, file: !1, line: 14, column: 7)
-!52 = !DILocation(line: 14, column: 7, scope: !24)
-!53 = !DILocation(line: 15, column: 12, scope: !54)
-!54 = distinct !DILexicalBlock(scope: !51, file: !1, line: 14, column: 15)
-!55 = !DILocation(line: 16, column: 3, scope: !54)
-!56 = !DILocation(line: 17, column: 3, scope: !24)
-!57 = !DIExpression(DW_OP_deref)
-!58 = !DILocation(line: 17, column: 8, scope: !24)
-!59 = !DILocation(line: 0, scope: !34, inlinedAt: !60)
-!60 = distinct !DILocation(line: 17, column: 8, scope: !61)
-!61 = !DILexicalBlockFile(scope: !24, file: !1, discriminator: 1)
-!62 = !DILocation(line: 5, column: 19, scope: !34, inlinedAt: !60)
-!63 = !DILocation(line: 5, column: 28, scope: !64, inlinedAt: !60)
-!64 = distinct !DILexicalBlock(scope: !34, file: !1, line: 5, column: 26)
-!65 = !DILocation(line: 18, column: 3, scope: !24)
-!66 = !DILocation(line: 18, column: 8, scope: !24)
-!67 = !DILocation(line: 0, scope: !34, inlinedAt: !68)
-!68 = distinct !DILocation(line: 18, column: 8, scope: !61)
-!69 = !DILocation(line: 5, column: 19, scope: !34, inlinedAt: !68)
-!70 = !DILocation(line: 5, column: 28, scope: !64, inlinedAt: !68)
-!71 = !DILocation(line: 20, column: 7, scope: !72)
-!72 = distinct !DILexicalBlock(scope: !24, file: !1, line: 20, column: 7)
-!73 = !DILocation(line: 0, scope: !39, inlinedAt: !74)
-!74 = distinct !DILocation(line: 23, column: 10, scope: !72)
-!75 = !DILocation(line: 20, column: 7, scope: !24)
-!76 = !DILocation(line: 6, column: 29, scope: !39, inlinedAt: !77)
-!77 = distinct !DILocation(line: 21, column: 10, scope: !72)
-!78 = !DILocation(line: 6, column: 38, scope: !39, inlinedAt: !77)
-!79 = !DILocation(line: 21, column: 5, scope: !72)
-!80 = !DILocation(line: 6, column: 29, scope: !39, inlinedAt: !74)
-!81 = !DILocation(line: 6, column: 38, scope: !39, inlinedAt: !74)
-!82 = !DILocation(line: 0, scope: !39, inlinedAt: !83)
-!83 = distinct !DILocation(line: 24, column: 8, scope: !24)
-!84 = !DILocation(line: 6, column: 29, scope: !39, inlinedAt: !83)
-!85 = !DILocation(line: 6, column: 38, scope: !39, inlinedAt: !83)
-!86 = !DILocation(line: 25, column: 1, scope: !24)
-!87 = !DILocation(line: 25, column: 1, scope: !61)
+!23 = !{!24, !35, !40}
+!24 = distinct !DISubprogram(name: "bar", linkageName: "_Z3barii", line: 11, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 11, file: !1, scope: !25, type: !26, variables: !29)
+!25 = !DIFile(filename: "dbg-changes-codegen-branch-folding.cpp", directory: "/tmp/dbginfo")
+!26 = !DISubroutineType(types: !27)
+!27 = !{null, !28, !28}
+!28 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
+!29 = !{!30, !31, !32, !33, !34}
+!30 = !DILocalVariable(name: "param1", line: 11, arg: 1, scope: !24, file: !25, type: !28)
+!31 = !DILocalVariable(name: "param2", line: 11, arg: 2, scope: !24, file: !25, type: !28)
+!32 = !DILocalVariable(name: "temp", line: 12, scope: !24, file: !25, type: !15)
+!33 = !DILocalVariable(name: "var1", line: 17, scope: !24, file: !25, type: !"_ZTS4AAA3")
+!34 = !DILocalVariable(name: "var2", line: 18, scope: !24, file: !25, type: !"_ZTS4AAA3")
+!35 = distinct !DISubprogram(name: "operator=", linkageName: "_ZN4AAA3aSEPKc", line: 6, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 6, file: !1, scope: !"_ZTS4AAA3", type: !12, declaration: !17, variables: !36)
+!36 = !{!37, !39}
+!37 = !DILocalVariable(name: "this", arg: 1, flags: DIFlagArtificial | DIFlagObjectPointer, scope: !35, type: !38)
+!38 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, baseType: !"_ZTS4AAA3")
+!39 = !DILocalVariable(name: "value", line: 6, arg: 2, scope: !35, file: !25, type: !15)
+!40 = distinct !DISubprogram(name: "AAA3", linkageName: "_ZN4AAA3C2EPKc", line: 5, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 5, file: !1, scope: !"_ZTS4AAA3", type: !12, declaration: !11, variables: !41)
+!41 = !{!42, !43}
+!42 = !DILocalVariable(name: "this", arg: 1, flags: DIFlagArtificial | DIFlagObjectPointer, scope: !40, type: !38)
+!43 = !DILocalVariable(name: "value", line: 5, arg: 2, scope: !40, file: !25, type: !15)
+!44 = !{i32 2, !"Dwarf Version", i32 4}
+!45 = !{i32 2, !"Debug Info Version", i32 3}
+!46 = !{!"clang version 3.5.0 "}
+!47 = !DILocation(line: 11, scope: !24)
+!48 = !{i8* null}
+!49 = !DILocation(line: 12, scope: !24)
+!50 = !DILocation(line: 14, scope: !51)
+!51 = distinct !DILexicalBlock(line: 14, column: 0, file: !1, scope: !24)
+!52 = !DILocation(line: 15, scope: !53)
+!53 = distinct !DILexicalBlock(line: 14, column: 0, file: !1, scope: !51)
+!54 = !DILocation(line: 16, scope: !53)
+!55 = !DILocation(line: 17, scope: !24)
+!56 = !DILocalVariable(name: "this", arg: 1, flags: DIFlagArtificial | DIFlagObjectPointer, scope: !40, type: !38)
+!57 = !DILocation(line: 0, scope: !40, inlinedAt: !55)
+!58 = !{i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0)}
+!59 = !DILocalVariable(name: "value", line: 5, arg: 2, scope: !40, file: !25, type: !15)
+!60 = !DILocation(line: 5, scope: !40, inlinedAt: !55)
+!61 = !DILocation(line: 5, scope: !62, inlinedAt: !55)
+!62 = distinct !DILexicalBlock(line: 5, column: 0, file: !1, scope: !40)
+!63 = !DILocation(line: 18, scope: !24)
+!64 = !DILocalVariable(name: "this", arg: 1, flags: DIFlagArtificial | DIFlagObjectPointer, scope: !40, type: !38)
+!65 = !DILocation(line: 0, scope: !40, inlinedAt: !63)
+!66 = !DILocalVariable(name: "value", line: 5, arg: 2, scope: !40, file: !25, type: !15)
+!67 = !DILocation(line: 5, scope: !40, inlinedAt: !63)
+!68 = !DILocation(line: 5, scope: !62, inlinedAt: !63)
+!69 = !DILocation(line: 20, scope: !70)
+!70 = distinct !DILexicalBlock(line: 20, column: 0, file: !1, scope: !24)
+!71 = !DILocalVariable(name: "this", arg: 1, flags: DIFlagArtificial | DIFlagObjectPointer, scope: !35, type: !38)
+!72 = !DILocation(line: 21, scope: !70)
+!73 = !DILocation(line: 0, scope: !35, inlinedAt: !72)
+!74 = !{i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str1, i64 0, i64 0)}
+!75 = !DILocalVariable(name: "value", line: 6, arg: 2, scope: !35, file: !25, type: !15)
+!76 = !DILocation(line: 6, scope: !35, inlinedAt: !72)
+!77 = !DILocalVariable(name: "this", arg: 1, flags: DIFlagArtificial | DIFlagObjectPointer, scope: !35, type: !38)
+!78 = !DILocation(line: 23, scope: !70)
+!79 = !DILocation(line: 0, scope: !35, inlinedAt: !78)
+!80 = !{i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str2, i64 0, i64 0)}
+!81 = !DILocalVariable(name: "value", line: 6, arg: 2, scope: !35, file: !25, type: !15)
+!82 = !DILocation(line: 6, scope: !35, inlinedAt: !78)
+!83 = !DILocalVariable(name: "this", arg: 1, flags: DIFlagArtificial | DIFlagObjectPointer, scope: !35, type: !38)
+!84 = !DILocation(line: 24, scope: !24)
+!85 = !DILocation(line: 0, scope: !35, inlinedAt: !84)
+!86 = !DILocalVariable(name: "value", line: 6, arg: 2, scope: !35, file: !25, type: !15)
+!87 = !DILocation(line: 6, scope: !35, inlinedAt: !84)
+!88 = !DILocation(line: 25, scope: !24)