blob: 3bfcea920615f8b3511edc5328d62569a078d5c8 [file] [log] [blame]
Duncan P. N. Exon Smithd0e68dc2014-12-16 07:08:19 +00001; RUN: opt -S -O3 < %s | FileCheck %s
Duncan P. N. Exon Smith13f5c582014-08-19 21:08:27 +00002; RUN: verify-uselistorder %s
Victor Hernandez2b3365c2010-02-06 01:21:09 +00003
4target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
5target triple = "x86_64-apple-darwin10.2"
6
7%struct.anon = type { i32, i32 }
8%struct.test = type { i64, %struct.anon, %struct.test* }
9
David Blaikie5a70dd12015-03-13 18:20:45 +000010@TestArrayPtr = global %struct.test* getelementptr inbounds ([10 x %struct.test], [10 x %struct.test]* @TestArray, i64 0, i64 3) ; <%struct.test**> [#uses=1]
Victor Hernandez2b3365c2010-02-06 01:21:09 +000011@TestArray = common global [10 x %struct.test] zeroinitializer, align 32 ; <[10 x %struct.test]*> [#uses=2]
12
Peter Collingbourne5f220be2015-11-05 22:03:56 +000013define i32 @main() nounwind readonly !dbg !1 {
Victor Hernandez2b3365c2010-02-06 01:21:09 +000014 %diff1 = alloca i64 ; <i64*> [#uses=2]
Duncan P. N. Exon Smithd0e68dc2014-12-16 07:08:19 +000015; CHECK: call void @llvm.dbg.value(metadata i64 72,
Duncan P. N. Exon Smithe56023a2015-04-29 16:38:44 +000016 call void @llvm.dbg.declare(metadata i64* %diff1, metadata !0, metadata !DIExpression()), !dbg !DILocation(scope: !1)
Victor Hernandez2b3365c2010-02-06 01:21:09 +000017 store i64 72, i64* %diff1, align 8
David Blaikie7c9c6ed2015-02-27 21:17:42 +000018 %v1 = load %struct.test*, %struct.test** @TestArrayPtr, align 8 ; <%struct.test*> [#uses=1]
Victor Hernandez2b3365c2010-02-06 01:21:09 +000019 %v2 = ptrtoint %struct.test* %v1 to i64 ; <i64> [#uses=1]
20 %v3 = sub i64 %v2, ptrtoint ([10 x %struct.test]* @TestArray to i64) ; <i64> [#uses=1]
21 store i64 %v3, i64* %diff1, align 8
Duncan P. N. Exon Smith5a417a12016-03-29 22:57:12 +000022 ret i32 4, !dbg !DILocation(scope: !1)
Victor Hernandez2b3365c2010-02-06 01:21:09 +000023}
24
Davide Italianofe735e52016-04-05 23:37:08 +000025!llvm.dbg.cu = !{!6}
26
Adrian Prantl02474a32014-10-01 18:55:02 +000027declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone
Victor Hernandez2b3365c2010-02-06 01:21:09 +000028
Duncan P. N. Exon Smith1ef70ff2014-12-15 19:07:53 +000029!7 = !{!1}
Adrian Prantl4eeaa0d2016-04-15 15:57:41 +000030!6 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.0 (trunk 131941)", isOptimized: true, emissionKind: FullDebug, file: !8, enums: !9, retainedTypes: !9)
Duncan P. N. Exon Smithbf2040f2015-07-31 18:58:39 +000031!0 = !DILocalVariable(name: "c", line: 2, scope: !1, file: !2, type: !5)
Adrian Prantl4eeaa0d2016-04-15 15:57:41 +000032!1 = distinct !DISubprogram(name: "main", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !6, scopeLine: 1, file: !8, scope: !2, type: !3)
Duncan P. N. Exon Smithe56023a2015-04-29 16:38:44 +000033!2 = !DIFile(filename: "/d/j/debug-test.c", directory: "/Volumes/Data/b")
34!3 = !DISubroutineType(types: !4)
Duncan P. N. Exon Smith1ef70ff2014-12-15 19:07:53 +000035!4 = !{!5}
Duncan P. N. Exon Smithe56023a2015-04-29 16:38:44 +000036!5 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
37!8 = !DIFile(filename: "/d/j/debug-test.c", directory: "/Volumes/Data/b")
Davide Italianofe735e52016-04-05 23:37:08 +000038!9 = !{}
Duncan P. N. Exon Smithd0e68dc2014-12-16 07:08:19 +000039
40!llvm.module.flags = !{!10}
Duncan P. N. Exon Smithb056aa72015-03-03 17:24:31 +000041!10 = !{i32 1, !"Debug Info Version", i32 3}