summaryrefslogtreecommitdiff
path: root/test/DebugInfo
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2016-01-13 19:58:01 +0000
committerDimitry Andric <dim@FreeBSD.org>2016-01-13 19:58:01 +0000
commit050e163ae8b4bb6eb252b59e2f8f36e68ae9239d (patch)
tree7376a0c71aad05d327e5b1dcbceb3311a10f9f29 /test/DebugInfo
parent8a6c1c25bce0267ee4072bd7b786b921e8a66a35 (diff)
Notes
Diffstat (limited to 'test/DebugInfo')
-rw-r--r--test/DebugInfo/COFF/asm.ll73
-rw-r--r--test/DebugInfo/COFF/multifile.ll108
-rw-r--r--test/DebugInfo/COFF/multifunction.ll271
-rw-r--r--test/DebugInfo/COFF/simple.ll60
-rw-r--r--test/DebugInfo/COFF/tail-call-without-lexical-scopes.ll2
-rw-r--r--test/DebugInfo/X86/debug-macro.ll67
-rw-r--r--test/DebugInfo/X86/debugger-tune.ll2
-rw-r--r--test/DebugInfo/X86/tls.ll2
8 files changed, 406 insertions, 179 deletions
diff --git a/test/DebugInfo/COFF/asm.ll b/test/DebugInfo/COFF/asm.ll
index b67100c87fdb..1baeb7eddb75 100644
--- a/test/DebugInfo/COFF/asm.ll
+++ b/test/DebugInfo/COFF/asm.ll
@@ -57,11 +57,11 @@
; X86-NEXT: .long 3
; X86-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
; X86-NEXT: .long [[ASM_LINE]]-_f
-; X86-NEXT: .long 4
+; X86-NEXT: .long -2147483644
; X86-NEXT: .long [[CALL_LINE]]-_f
-; X86-NEXT: .long 5
+; X86-NEXT: .long -2147483643
; X86-NEXT: .long [[RETURN_STMT]]-_f
-; X86-NEXT: .long 6
+; X86-NEXT: .long -2147483642
; X86-NEXT: .short 0
; X86-NEXT: .short 0
; X86-NEXT: .short 0
@@ -110,17 +110,28 @@
; OBJ32-NEXT: Flags: 0x1
; OBJ32-NEXT: CodeSize: 0x6
; OBJ32-NEXT: FilenameSegment [
-; OBJ32-NEXT: Filename: D:\asm.c
+; OBJ32-NEXT: Filename: D:\asm.c
; FIXME: An empty __asm stmt creates an extra entry.
; We seem to know that these offsets are the same statically during the
; execution of endModule(). See PR18679 for the details.
-; OBJ32-NEXT: +0x0: 4
-; OBJ32-NEXT: +0x0: 5
-; OBJ32-NEXT: +0x5: 6
+; OBJ32-NEXT: +0x0 [
+; OBJ32-NEXT: LineNumberStart: 4
+; OBJ32-NEXT: LineNumberEndDelta: 0
+; OBJ32-NEXT: IsStatement: Yes
; OBJ32-NEXT: ColStart: 0
; OBJ32-NEXT: ColEnd: 0
+; OBJ32-NEXT: ]
+; OBJ32-NEXT: +0x0 [
+; OBJ32-NEXT: LineNumberStart: 5
+; OBJ32-NEXT: LineNumberEndDelta: 0
+; OBJ32-NEXT: IsStatement: Yes
; OBJ32-NEXT: ColStart: 0
; OBJ32-NEXT: ColEnd: 0
+; OBJ32-NEXT: ]
+; OBJ32-NEXT: +0x5 [
+; OBJ32-NEXT: LineNumberStart: 6
+; OBJ32-NEXT: LineNumberEndDelta: 0
+; OBJ32-NEXT: IsStatement: Yes
; OBJ32-NEXT: ColStart: 0
; OBJ32-NEXT: ColEnd: 0
; OBJ32-NEXT: ]
@@ -175,13 +186,13 @@
; X64-NEXT: .long 4
; X64-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
; X64-NEXT: .long [[START]]-f
-; X64-NEXT: .long 3
+; X64-NEXT: .long -2147483645
; X64-NEXT: .long [[ASM_LINE]]-f
-; X64-NEXT: .long 4
+; X64-NEXT: .long -2147483644
; X64-NEXT: .long [[CALL_LINE]]-f
-; X64-NEXT: .long 5
+; X64-NEXT: .long -2147483643
; X64-NEXT: .long [[EPILOG_AND_RET]]-f
-; X64-NEXT: .long 6
+; X64-NEXT: .long -2147483642
; X64-NEXT: .short 0
; X64-NEXT: .short 0
; X64-NEXT: .short 0
@@ -232,20 +243,36 @@
; OBJ64-NEXT: CodeSize: 0xE
; OBJ64-NEXT: FilenameSegment [
; OBJ64-NEXT: Filename: D:\asm.c
-; OBJ64-NEXT: +0x0: 3
; FIXME: An empty __asm stmt creates an extra entry.
; See PR18679 for the details.
-; OBJ64-NEXT: +0x4: 4
-; OBJ64-NEXT: +0x4: 5
-; OBJ64-NEXT: +0x9: 6
-; OBJ64-NEXT: ColStart: 0
-; OBJ64-NEXT: ColEnd: 0
-; OBJ64-NEXT: ColStart: 0
-; OBJ64-NEXT: ColEnd: 0
-; OBJ64-NEXT: ColStart: 0
-; OBJ64-NEXT: ColEnd: 0
-; OBJ64-NEXT: ColStart: 0
-; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: +0x0 [
+; OBJ64-NEXT: LineNumberStart: 3
+; OBJ64-NEXT: LineNumberEndDelta: 0
+; OBJ64-NEXT: IsStatement: Yes
+; OBJ64-NEXT: ColStart: 0
+; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: ]
+; OBJ64-NEXT: +0x4 [
+; OBJ64-NEXT: LineNumberStart: 4
+; OBJ64-NEXT: LineNumberEndDelta: 0
+; OBJ64-NEXT: IsStatement: Yes
+; OBJ64-NEXT: ColStart: 0
+; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: ]
+; OBJ64-NEXT: +0x4 [
+; OBJ64-NEXT: LineNumberStart: 5
+; OBJ64-NEXT: LineNumberEndDelta: 0
+; OBJ64-NEXT: IsStatement: Yes
+; OBJ64-NEXT: ColStart: 0
+; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: ]
+; OBJ64-NEXT: +0x9 [
+; OBJ64-NEXT: LineNumberStart: 6
+; OBJ64-NEXT: LineNumberEndDelta: 0
+; OBJ64-NEXT: IsStatement: Yes
+; OBJ64-NEXT: ColStart: 0
+; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: ]
; OBJ64-NEXT: ]
; OBJ64-NEXT: ]
diff --git a/test/DebugInfo/COFF/multifile.ll b/test/DebugInfo/COFF/multifile.ll
index 70bc0022cfb2..6758718e2fcc 100644
--- a/test/DebugInfo/COFF/multifile.ll
+++ b/test/DebugInfo/COFF/multifile.ll
@@ -65,7 +65,7 @@
; X86-NEXT: .long 1
; X86-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
; X86-NEXT: .long [[CALL_LINE_1]]-_f
-; X86-NEXT: .long 1
+; X86-NEXT: .long -2147483647
; X86-NEXT: .short 0
; X86-NEXT: .short 0
; X86-NEXT: [[FILE_SEGMENT_END]]:
@@ -75,7 +75,7 @@
; X86-NEXT: .long 1
; X86-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
; X86-NEXT: .long [[CALL_LINE_2]]-_f
-; X86-NEXT: .long 2
+; X86-NEXT: .long -2147483646
; X86-NEXT: .short 0
; X86-NEXT: .short 0
; X86-NEXT: [[FILE_SEGMENT_END]]:
@@ -85,9 +85,9 @@
; X86-NEXT: .long 2
; X86-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
; X86-NEXT: .long [[CALL_LINE_3]]-_f
-; X86-NEXT: .long 7
+; X86-NEXT: .long -2147483641
; X86-NEXT: .long [[RETURN_STMT]]-_f
-; X86-NEXT: .long 8
+; X86-NEXT: .long -2147483640
; X86-NEXT: .short 0
; X86-NEXT: .short 0
; X86-NEXT: .short 0
@@ -137,24 +137,40 @@
; OBJ32-NEXT: CodeSize: 0x10
; OBJ32-NEXT: FilenameSegment [
; OBJ32-NEXT: Filename: D:\one.c
-; OBJ32-NEXT: +0x0: 1
-; OBJ32-NEXT: ColStart: 0
-; OBJ32-NEXT: ColEnd: 0
+; OBJ32-NEXT: +0x0 [
+; OBJ32-NEXT: LineNumberStart: 1
+; OBJ32-NEXT: LineNumberEndDelta: 0
+; OBJ32-NEXT: IsStatement: Yes
+; OBJ32-NEXT: ColStart: 0
+; OBJ32-NEXT: ColEnd: 0
+; OBJ32-NEXT: ]
; OBJ32-NEXT: ]
; OBJ32-NEXT: FilenameSegment [
; OBJ32-NEXT: Filename: D:\two.c
-; OBJ32-NEXT: +0x5: 2
-; OBJ32-NEXT: ColStart: 0
-; OBJ32-NEXT: ColEnd: 0
+; OBJ32-NEXT: +0x5 [
+; OBJ32-NEXT: LineNumberStart: 2
+; OBJ32-NEXT: LineNumberEndDelta: 0
+; OBJ32-NEXT: IsStatement: Yes
+; OBJ32-NEXT: ColStart: 0
+; OBJ32-NEXT: ColEnd: 0
+; OBJ32-NEXT: ]
; OBJ32-NEXT: ]
; OBJ32-NEXT: FilenameSegment [
; OBJ32-NEXT: Filename: D:\one.c
-; OBJ32-NEXT: +0xA: 7
-; OBJ32-NEXT: +0xF: 8
-; OBJ32-NEXT: ColStart: 0
-; OBJ32-NEXT: ColEnd: 0
-; OBJ32-NEXT: ColStart: 0
-; OBJ32-NEXT: ColEnd: 0
+; OBJ32-NEXT: +0xA [
+; OBJ32-NEXT: LineNumberStart: 7
+; OBJ32-NEXT: LineNumberEndDelta: 0
+; OBJ32-NEXT: IsStatement: Yes
+; OBJ32-NEXT: ColStart: 0
+; OBJ32-NEXT: ColEnd: 0
+; OBJ32-NEXT: ]
+; OBJ32-NEXT: +0xF [
+; OBJ32-NEXT: LineNumberStart: 8
+; OBJ32-NEXT: LineNumberEndDelta: 0
+; OBJ32-NEXT: IsStatement: Yes
+; OBJ32-NEXT: ColStart: 0
+; OBJ32-NEXT: ColEnd: 0
+; OBJ32-NEXT: ]
; OBJ32-NEXT: ]
; OBJ32-NEXT: ]
@@ -211,7 +227,7 @@
; X64-NEXT: .long 1
; X64-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
; X64-NEXT: .long [[START]]-f
-; X64-NEXT: .long 3
+; X64-NEXT: .long -2147483645
; X64-NEXT: .short 0
; X64-NEXT: .short 0
; X64-NEXT: [[FILE_SEGMENT_END]]:
@@ -221,7 +237,7 @@
; X64-NEXT: .long 1
; X64-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
; X64-NEXT: .long [[CALL_LINE_1]]-f
-; X64-NEXT: .long 1
+; X64-NEXT: .long -2147483647
; X64-NEXT: .short 0
; X64-NEXT: .short 0
; X64-NEXT: [[FILE_SEGMENT_END]]:
@@ -231,7 +247,7 @@
; X64-NEXT: .long 1
; X64-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
; X64-NEXT: .long [[CALL_LINE_2]]-f
-; X64-NEXT: .long 2
+; X64-NEXT: .long -2147483646
; X64-NEXT: .short 0
; X64-NEXT: .short 0
; X64-NEXT: [[FILE_SEGMENT_END]]:
@@ -241,9 +257,9 @@
; X64-NEXT: .long 2
; X64-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
; X64-NEXT: .long [[CALL_LINE_3]]-f
-; X64-NEXT: .long 7
+; X64-NEXT: .long -2147483641
; X64-NEXT: .long [[EPILOG_AND_RET]]-f
-; X64-NEXT: .long 8
+; X64-NEXT: .long -2147483640
; X64-NEXT: .short 0
; X64-NEXT: .short 0
; X64-NEXT: .short 0
@@ -297,30 +313,50 @@
; OBJ64-NEXT: CodeSize: 0x18
; OBJ64-NEXT: FilenameSegment [
; OBJ64-NEXT: Filename: D:\input.c
-; OBJ64-NEXT: +0x0: 3
-; OBJ64-NEXT: ColStart: 0
-; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: +0x0 [
+; OBJ64-NEXT: LineNumberStart: 3
+; OBJ64-NEXT: LineNumberEndDelta: 0
+; OBJ64-NEXT: IsStatement: Yes
+; OBJ64-NEXT: ColStart: 0
+; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: ]
; OBJ64-NEXT: ]
; OBJ64-NEXT: FilenameSegment [
; OBJ64-NEXT: Filename: D:\one.c
-; OBJ64-NEXT: +0x4: 1
-; OBJ64-NEXT: ColStart: 0
-; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: +0x4 [
+; OBJ64-NEXT: LineNumberStart: 1
+; OBJ64-NEXT: LineNumberEndDelta: 0
+; OBJ64-NEXT: IsStatement: Yes
+; OBJ64-NEXT: ColStart: 0
+; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: ]
; OBJ64-NEXT: ]
; OBJ64-NEXT: FilenameSegment [
; OBJ64-NEXT: Filename: D:\two.c
-; OBJ64-NEXT: +0x9: 2
-; OBJ64-NEXT: ColStart: 0
-; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: +0x9 [
+; OBJ64-NEXT: LineNumberStart: 2
+; OBJ64-NEXT: LineNumberEndDelta: 0
+; OBJ64-NEXT: IsStatement: Yes
+; OBJ64-NEXT: ColStart: 0
+; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: ]
; OBJ64-NEXT: ]
; OBJ64-NEXT: FilenameSegment [
; OBJ64-NEXT: Filename: D:\one.c
-; OBJ64-NEXT: +0xE: 7
-; OBJ64-NEXT: +0x13: 8
-; OBJ64-NEXT: ColStart: 0
-; OBJ64-NEXT: ColEnd: 0
-; OBJ64-NEXT: ColStart: 0
-; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: +0xE [
+; OBJ64-NEXT: LineNumberStart: 7
+; OBJ64-NEXT: LineNumberEndDelta: 0
+; OBJ64-NEXT: IsStatement: Yes
+; OBJ64-NEXT: ColStart: 0
+; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: ]
+; OBJ64-NEXT: +0x13 [
+; OBJ64-NEXT: LineNumberStart: 8
+; OBJ64-NEXT: LineNumberEndDelta: 0
+; OBJ64-NEXT: IsStatement: Yes
+; OBJ64-NEXT: ColStart: 0
+; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: ]
; OBJ64-NEXT: ]
; OBJ64-NEXT: ]
diff --git a/test/DebugInfo/COFF/multifunction.ll b/test/DebugInfo/COFF/multifunction.ll
index 4c044fa9c4fa..a292af3585d1 100644
--- a/test/DebugInfo/COFF/multifunction.ll
+++ b/test/DebugInfo/COFF/multifunction.ll
@@ -86,13 +86,13 @@
; X86-NEXT: .long 2
; X86-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
; X86-NEXT: .long [[X_CALL]]-_x
-; X86-NEXT: .long 4
+; X86-NEXT: .long -2147483644
; X86-NEXT: .long [[X_RETURN]]-_x
-; X86-NEXT: .long 5
-; X86-NEXT: .short 42
+; X86-NEXT: .long -2147483643
; X86-NEXT: .short 42
+; X86-NEXT: .short 0
; X86-NEXT: .short 43
-; X86-NEXT: .short 43
+; X86-NEXT: .short 0
; X86-NEXT: [[FILE_SEGMENT_END]]:
; X86-NEXT: [[F2_END]]:
; Symbol subsection for y
@@ -129,13 +129,13 @@
; X86-NEXT: .long 2
; X86-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
; X86-NEXT: .long [[Y_CALL]]-_y
-; X86-NEXT: .long 8
+; X86-NEXT: .long -2147483640
; X86-NEXT: .long [[Y_RETURN]]-_y
-; X86-NEXT: .long 9
-; X86-NEXT: .short 52
+; X86-NEXT: .long -2147483639
; X86-NEXT: .short 52
+; X86-NEXT: .short 0
; X86-NEXT: .short 53
-; X86-NEXT: .short 53
+; X86-NEXT: .short 0
; X86-NEXT: [[FILE_SEGMENT_END]]:
; X86-NEXT: [[F2_END]]:
; Symbol subsection for f
@@ -172,21 +172,21 @@
; X86-NEXT: .long 4
; X86-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
; X86-NEXT: .long [[F_CALLS_X]]-_f
-; X86-NEXT: .long 12
+; X86-NEXT: .long -2147483636
; X86-NEXT: .long [[F_CALLS_Y]]-_f
-; X86-NEXT: .long 13
+; X86-NEXT: .long -2147483635
; X86-NEXT: .long [[F_CALLS_Z]]-_f
-; X86-NEXT: .long 14
+; X86-NEXT: .long -2147483634
; X86-NEXT: .long [[F_RETURN]]-_f
-; X86-NEXT: .long 15
+; X86-NEXT: .long -2147483633
; X86-NEXT: .short 62
-; X86-NEXT: .short 62
-; X86-NEXT: .short 63
+; X86-NEXT: .short 0
; X86-NEXT: .short 63
+; X86-NEXT: .short 0
; X86-NEXT: .short 72
-; X86-NEXT: .short 72
-; X86-NEXT: .short 73
+; X86-NEXT: .short 0
; X86-NEXT: .short 73
+; X86-NEXT: .short 0
; X86-NEXT: [[FILE_SEGMENT_END]]:
; X86-NEXT: [[F2_END]]:
; File index to string table offset subsection
@@ -265,49 +265,82 @@
; OBJ32-NEXT: CodeSize: 0x6
; OBJ32-NEXT: FilenameSegment [
; OBJ32-NEXT: Filename: D:\source.c
-; OBJ32-NEXT: +0x0: 4
-; OBJ32-NEXT: +0x5: 5
-; OBJ32-NEXT: ColStart: 42
-; OBJ32-NEXT: ColEnd: 42
-; OBJ32-NEXT: ColStart: 43
-; OBJ32-NEXT: ColEnd: 43
+; OBJ32-NEXT: +0x0 [
+; OBJ32-NEXT: LineNumberStart: 4
+; OBJ32-NEXT: LineNumberEndDelta: 0
+; OBJ32-NEXT: IsStatement: Yes
+; OBJ32-NEXT: ColStart: 42
+; OBJ32-NEXT: ColEnd: 0
+; OBJ32-NEXT: ]
+; OBJ32-NEXT: +0x5 [
+; OBJ32-NEXT: LineNumberStart: 5
+; OBJ32-NEXT: LineNumberEndDelta: 0
+; OBJ32-NEXT: IsStatement: Yes
+; OBJ32-NEXT: ColStart: 43
+; OBJ32-NEXT: ColEnd: 0
+; OBJ32-NEXT: ]
; OBJ32-NEXT: ]
; OBJ32-NEXT: ]
; OBJ32-NEXT: FunctionLineTable [
-; OBJ32-NEXT: Name: _y
+; OBJ32-NEXT: LinkageName: _y
; OBJ32-NEXT: Flags: 0x1
; OBJ32-NEXT: CodeSize: 0x6
; OBJ32-NEXT: FilenameSegment [
; OBJ32-NEXT: Filename: D:\source.c
-; OBJ32-NEXT: +0x0: 8
-; OBJ32-NEXT: +0x5: 9
-; OBJ32-NEXT: ColStart: 52
-; OBJ32-NEXT: ColEnd: 52
-; OBJ32-NEXT: ColStart: 53
-; OBJ32-NEXT: ColEnd: 53
+; OBJ32-NEXT: +0x0 [
+; OBJ32-NEXT: LineNumberStart: 8
+; OBJ32-NEXT: LineNumberEndDelta: 0
+; OBJ32-NEXT: IsStatement: Yes
+; OBJ32-NEXT: ColStart: 52
+; OBJ32-NEXT: ColEnd: 0
+; OBJ32-NEXT: ]
+; OBJ32-NEXT: +0x5 [
+; OBJ32-NEXT: LineNumberStart: 9
+; OBJ32-NEXT: LineNumberEndDelta: 0
+; OBJ32-NEXT: IsStatement: Yes
+; OBJ32-NEXT: ColStart: 53
+; OBJ32-NEXT: ColEnd: 0
+; OBJ32-NEXT: ]
; OBJ32-NEXT: ]
; OBJ32-NEXT: ]
; OBJ32-NEXT: FunctionLineTable [
-; OBJ32-NEXT: Name: _f
+; OBJ32-NEXT: LinkageName: _f
; OBJ32-NEXT: Flags: 0x1
; OBJ32-NEXT: CodeSize: 0x10
; OBJ32-NEXT: FilenameSegment [
; OBJ32-NEXT: Filename: D:\source.c
-; OBJ32-NEXT: +0x0: 12
-; OBJ32-NEXT: +0x5: 13
-; OBJ32-NEXT: +0xA: 14
-; OBJ32-NEXT: +0xF: 15
-; OBJ32-NEXT: ColStart: 62
-; OBJ32-NEXT: ColEnd: 62
-; OBJ32-NEXT: ColStart: 63
-; OBJ32-NEXT: ColEnd: 63
-; OBJ32-NEXT: ColStart: 72
-; OBJ32-NEXT: ColEnd: 72
-; OBJ32-NEXT: ColStart: 73
-; OBJ32-NEXT: ColEnd: 73
+; OBJ32-NEXT: +0x0 [
+; OBJ32-NEXT: LineNumberStart: 12
+; OBJ32-NEXT: LineNumberEndDelta: 0
+; OBJ32-NEXT: IsStatement: Yes
+; OBJ32-NEXT: ColStart: 62
+; OBJ32-NEXT: ColEnd: 0
+; OBJ32-NEXT: ]
+; OBJ32-NEXT: +0x5 [
+; OBJ32-NEXT: LineNumberStart: 13
+; OBJ32-NEXT: LineNumberEndDelta: 0
+; OBJ32-NEXT: IsStatement: Yes
+; OBJ32-NEXT: ColStart: 63
+; OBJ32-NEXT: ColEnd: 0
+; OBJ32-NEXT: ]
+; OBJ32-NEXT: +0xA [
+; OBJ32-NEXT: LineNumberStart: 14
+; OBJ32-NEXT: LineNumberEndDelta: 0
+; OBJ32-NEXT: IsStatement: Yes
+; OBJ32-NEXT: ColStart: 72
+; OBJ32-NEXT: ColEnd: 0
+; OBJ32-NEXT: ]
+; OBJ32-NEXT: +0xF [
+; OBJ32-NEXT: LineNumberStart: 15
+; OBJ32-NEXT: LineNumberEndDelta: 0
+; OBJ32-NEXT: IsStatement: Yes
+; OBJ32-NEXT: ColStart: 73
+; OBJ32-NEXT: ColEnd: 0
+; OBJ32-NEXT: ]
; OBJ32-NEXT: ]
; OBJ32-NEXT: ]
+
; X64-LABEL: x:
; X64-NEXT: .L{{.*}}:
; X64-NEXT: [[X_START:.*]]:{{$}}
@@ -384,17 +417,17 @@
; X64-NEXT: .long 3
; X64-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
; X64-NEXT: .long [[X_START]]-x
-; X64-NEXT: .long 3
+; X64-NEXT: .long -2147483645
; X64-NEXT: .long [[X_CALL_LINE]]-x
-; X64-NEXT: .long 4
+; X64-NEXT: .long -2147483644
; X64-NEXT: .long [[X_EPILOG_AND_RET]]-x
-; X64-NEXT: .long 5
+; X64-NEXT: .long -2147483643
; X64-NEXT: .short 0
; X64-NEXT: .short 0
; X64-NEXT: .short 42
-; X64-NEXT: .short 42
-; X64-NEXT: .short 43
+; X64-NEXT: .short 0
; X64-NEXT: .short 43
+; X64-NEXT: .short 0
; X64-NEXT: [[FILE_SEGMENT_END]]:
; X64-NEXT: [[F2_END]]:
; Symbol subsection for y
@@ -431,17 +464,17 @@
; X64-NEXT: .long 3
; X64-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
; X64-NEXT: .long [[Y_START]]-y
-; X64-NEXT: .long 7
+; X64-NEXT: .long -2147483641
; X64-NEXT: .long [[Y_CALL_LINE]]-y
-; X64-NEXT: .long 8
+; X64-NEXT: .long -2147483640
; X64-NEXT: .long [[Y_EPILOG_AND_RET]]-y
-; X64-NEXT: .long 9
+; X64-NEXT: .long -2147483639
; X64-NEXT: .short 0
; X64-NEXT: .short 0
; X64-NEXT: .short 52
-; X64-NEXT: .short 52
-; X64-NEXT: .short 53
+; X64-NEXT: .short 0
; X64-NEXT: .short 53
+; X64-NEXT: .short 0
; X64-NEXT: [[FILE_SEGMENT_END]]:
; X64-NEXT: [[F2_END]]:
; Symbol subsection for f
@@ -478,25 +511,25 @@
; X64-NEXT: .long 5
; X64-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
; X64-NEXT: .long [[F_START]]-f
-; X64-NEXT: .long 11
+; X64-NEXT: .long -2147483637
; X64-NEXT: .long [[F_CALLS_X]]-f
-; X64-NEXT: .long 12
+; X64-NEXT: .long -2147483636
; X64-NEXT: .long [[F_CALLS_Y]]-f
-; X64-NEXT: .long 13
+; X64-NEXT: .long -2147483635
; X64-NEXT: .long [[F_CALLS_Z]]-f
-; X64-NEXT: .long 14
+; X64-NEXT: .long -2147483634
; X64-NEXT: .long [[F_EPILOG_AND_RET]]-f
-; X64-NEXT: .long 15
+; X64-NEXT: .long -2147483633
; X64-NEXT: .short 0
; X64-NEXT: .short 0
; X64-NEXT: .short 62
-; X64-NEXT: .short 62
-; X64-NEXT: .short 63
+; X64-NEXT: .short 0
; X64-NEXT: .short 63
+; X64-NEXT: .short 0
; X64-NEXT: .short 72
-; X64-NEXT: .short 72
-; X64-NEXT: .short 73
+; X64-NEXT: .short 0
; X64-NEXT: .short 73
+; X64-NEXT: .short 0
; X64-NEXT: [[FILE_SEGMENT_END]]:
; X64-NEXT: [[F2_END]]:
; File index to string table offset subsection
@@ -570,60 +603,104 @@
; OBJ64-NEXT: Type: 0xF2
; OBJ64: ]
; OBJ64: FunctionLineTable [
-; OBJ64-NEXT: Name: x
+; OBJ64-NEXT: LinkageName: x
; OBJ64-NEXT: Flags: 0x1
; OBJ64-NEXT: CodeSize: 0xE
; OBJ64-NEXT: FilenameSegment [
; OBJ64-NEXT: Filename: D:\source.c
-; OBJ64-NEXT: +0x0: 3
-; OBJ64-NEXT: +0x4: 4
-; OBJ64-NEXT: +0x9: 5
-; OBJ64-NEXT: ColStart: 0
-; OBJ64-NEXT: ColEnd: 0
-; OBJ64-NEXT: ColStart: 42
-; OBJ64-NEXT: ColEnd: 42
-; OBJ64-NEXT: ColStart: 43
-; OBJ64-NEXT: ColEnd: 43
+; OBJ64-NEXT: +0x0 [
+; OBJ64-NEXT: LineNumberStart: 3
+; OBJ64-NEXT: LineNumberEndDelta: 0
+; OBJ64-NEXT: IsStatement: Yes
+; OBJ64-NEXT: ColStart: 0
+; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: ]
+; OBJ64-NEXT: +0x4 [
+; OBJ64-NEXT: LineNumberStart: 4
+; OBJ64-NEXT: LineNumberEndDelta: 0
+; OBJ64-NEXT: IsStatement: Yes
+; OBJ64-NEXT: ColStart: 42
+; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: ]
+; OBJ64-NEXT: +0x9 [
+; OBJ64-NEXT: LineNumberStart: 5
+; OBJ64-NEXT: LineNumberEndDelta: 0
+; OBJ64-NEXT: IsStatement: Yes
+; OBJ64-NEXT: ColStart: 43
+; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: ]
; OBJ64-NEXT: ]
; OBJ64-NEXT: ]
; OBJ64-NEXT: FunctionLineTable [
-; OBJ64-NEXT: Name: y
+; OBJ64-NEXT: LinkageName: y
; OBJ64-NEXT: Flags: 0x1
; OBJ64-NEXT: CodeSize: 0xE
; OBJ64-NEXT: FilenameSegment [
; OBJ64-NEXT: Filename: D:\source.c
-; OBJ64-NEXT: +0x0: 7
-; OBJ64-NEXT: +0x4: 8
-; OBJ64-NEXT: +0x9: 9
-; OBJ64-NEXT: ColStart: 0
-; OBJ64-NEXT: ColEnd: 0
-; OBJ64-NEXT: ColStart: 52
-; OBJ64-NEXT: ColEnd: 52
-; OBJ64-NEXT: ColStart: 53
-; OBJ64-NEXT: ColEnd: 53
+; OBJ64-NEXT: +0x0 [
+; OBJ64-NEXT: LineNumberStart: 7
+; OBJ64-NEXT: LineNumberEndDelta: 0
+; OBJ64-NEXT: IsStatement: Yes
+; OBJ64-NEXT: ColStart: 0
+; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: ]
+; OBJ64-NEXT: +0x4 [
+; OBJ64-NEXT: LineNumberStart: 8
+; OBJ64-NEXT: LineNumberEndDelta: 0
+; OBJ64-NEXT: IsStatement: Yes
+; OBJ64-NEXT: ColStart: 52
+; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: ]
+; OBJ64-NEXT: +0x9 [
+; OBJ64-NEXT: LineNumberStart: 9
+; OBJ64-NEXT: LineNumberEndDelta: 0
+; OBJ64-NEXT: IsStatement: Yes
+; OBJ64-NEXT: ColStart: 53
+; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: ]
; OBJ64-NEXT: ]
; OBJ64-NEXT: ]
; OBJ64-NEXT: FunctionLineTable [
-; OBJ64-NEXT: Name: f
+; OBJ64-NEXT: LinkageName: f
; OBJ64-NEXT: Flags: 0x1
; OBJ64-NEXT: CodeSize: 0x18
; OBJ64-NEXT: FilenameSegment [
; OBJ64-NEXT: Filename: D:\source.c
-; OBJ64-NEXT: +0x0: 11
-; OBJ64-NEXT: +0x4: 12
-; OBJ64-NEXT: +0x9: 13
-; OBJ64-NEXT: +0xE: 14
-; OBJ64-NEXT: +0x13: 15
-; OBJ64-NEXT: ColStart: 0
-; OBJ64-NEXT: ColEnd: 0
-; OBJ64-NEXT: ColStart: 62
-; OBJ64-NEXT: ColEnd: 62
-; OBJ64-NEXT: ColStart: 63
-; OBJ64-NEXT: ColEnd: 63
-; OBJ64-NEXT: ColStart: 72
-; OBJ64-NEXT: ColEnd: 72
-; OBJ64-NEXT: ColStart: 73
-; OBJ64-NEXT: ColEnd: 73
+; OBJ64-NEXT: +0x0 [
+; OBJ64-NEXT: LineNumberStart: 11
+; OBJ64-NEXT: LineNumberEndDelta: 0
+; OBJ64-NEXT: IsStatement: Yes
+; OBJ64-NEXT: ColStart: 0
+; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: ]
+; OBJ64-NEXT: +0x4 [
+; OBJ64-NEXT: LineNumberStart: 12
+; OBJ64-NEXT: LineNumberEndDelta: 0
+; OBJ64-NEXT: IsStatement: Yes
+; OBJ64-NEXT: ColStart: 62
+; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: ]
+; OBJ64-NEXT: +0x9 [
+; OBJ64-NEXT: LineNumberStart: 13
+; OBJ64-NEXT: LineNumberEndDelta: 0
+; OBJ64-NEXT: IsStatement: Yes
+; OBJ64-NEXT: ColStart: 63
+; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: ]
+; OBJ64-NEXT: +0xE [
+; OBJ64-NEXT: LineNumberStart: 14
+; OBJ64-NEXT: LineNumberEndDelta: 0
+; OBJ64-NEXT: IsStatement: Yes
+; OBJ64-NEXT: ColStart: 72
+; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: ]
+; OBJ64-NEXT: +0x13 [
+; OBJ64-NEXT: LineNumberStart: 15
+; OBJ64-NEXT: LineNumberEndDelta: 0
+; OBJ64-NEXT: IsStatement: Yes
+; OBJ64-NEXT: ColStart: 73
+; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: ]
; OBJ64-NEXT: ]
; OBJ64-NEXT: ]
diff --git a/test/DebugInfo/COFF/simple.ll b/test/DebugInfo/COFF/simple.ll
index 2103df07f6dc..128b9efba545 100644
--- a/test/DebugInfo/COFF/simple.ll
+++ b/test/DebugInfo/COFF/simple.ll
@@ -55,9 +55,9 @@
; X86-NEXT: .long 2
; X86-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
; X86-NEXT: .long [[CALL_LINE]]-_f
-; X86-NEXT: .long 4
+; X86-NEXT: .long -2147483644
; X86-NEXT: .long [[RETURN_STMT]]-_f
-; X86-NEXT: .long 5
+; X86-NEXT: .long -2147483643
; X86-NEXT: .short 0
; X86-NEXT: .short 0
; X86-NEXT: .short 0
@@ -104,12 +104,20 @@
; OBJ32-NEXT: CodeSize: 0x6
; OBJ32-NEXT: FilenameSegment [
; OBJ32-NEXT: Filename: D:\test.c
-; OBJ32-NEXT: +0x0: 4
-; OBJ32-NEXT: +0x5: 5
-; OBJ32-NEXT: ColStart: 0
-; OBJ32-NEXT: ColEnd: 0
-; OBJ32-NEXT: ColStart: 0
-; OBJ32-NEXT: ColEnd: 0
+; OBJ32-NEXT: +0x0 [
+; OBJ32-NEXT: LineNumberStart: 4
+; OBJ32-NEXT: LineNumberEndDelta: 0
+; OBJ32-NEXT: IsStatement: Yes
+; OBJ32-NEXT: ColStart: 0
+; OBJ32-NEXT: ColEnd: 0
+; OBJ32-NEXT: ]
+; OBJ32-NEXT: +0x5 [
+; OBJ32-NEXT: LineNumberStart: 5
+; OBJ32-NEXT: LineNumberEndDelta: 0
+; OBJ32-NEXT: IsStatement: Yes
+; OBJ32-NEXT: ColStart: 0
+; OBJ32-NEXT: ColEnd: 0
+; OBJ32-NEXT: ]
; OBJ32-NEXT: ]
; OBJ32-NEXT: ]
@@ -161,11 +169,11 @@
; X64-NEXT: .long 3
; X64-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
; X64-NEXT: .long [[START]]-f
-; X64-NEXT: .long 3
+; X64-NEXT: .long -2147483645
; X64-NEXT: .long [[CALL_LINE]]-f
-; X64-NEXT: .long 4
+; X64-NEXT: .long -2147483644
; X64-NEXT: .long [[EPILOG_AND_RET]]-f
-; X64-NEXT: .long 5
+; X64-NEXT: .long -2147483643
; X64-NEXT: .short 0
; X64-NEXT: .short 0
; X64-NEXT: .short 0
@@ -214,15 +222,27 @@
; OBJ64-NEXT: CodeSize: 0xE
; OBJ64-NEXT: FilenameSegment [
; OBJ64-NEXT: Filename: D:\test.c
-; OBJ64-NEXT: +0x0: 3
-; OBJ64-NEXT: +0x4: 4
-; OBJ64-NEXT: +0x9: 5
-; OBJ64-NEXT: ColStart: 0
-; OBJ64-NEXT: ColEnd: 0
-; OBJ64-NEXT: ColStart: 0
-; OBJ64-NEXT: ColEnd: 0
-; OBJ64-NEXT: ColStart: 0
-; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: +0x0 [
+; OBJ64-NEXT: LineNumberStart: 3
+; OBJ64-NEXT: LineNumberEndDelta: 0
+; OBJ64-NEXT: IsStatement: Yes
+; OBJ64-NEXT: ColStart: 0
+; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: ]
+; OBJ64-NEXT: +0x4 [
+; OBJ64-NEXT: LineNumberStart: 4
+; OBJ64-NEXT: LineNumberEndDelta: 0
+; OBJ64-NEXT: IsStatement: Yes
+; OBJ64-NEXT: ColStart: 0
+; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: ]
+; OBJ64-NEXT: +0x9 [
+; OBJ64-NEXT: LineNumberStart: 5
+; OBJ64-NEXT: LineNumberEndDelta: 0
+; OBJ64-NEXT: IsStatement: Yes
+; OBJ64-NEXT: ColStart: 0
+; OBJ64-NEXT: ColEnd: 0
+; OBJ64-NEXT: ]
; OBJ64-NEXT: ]
; OBJ64-NEXT: ]
diff --git a/test/DebugInfo/COFF/tail-call-without-lexical-scopes.ll b/test/DebugInfo/COFF/tail-call-without-lexical-scopes.ll
index 28b8d2859efa..a21c8bb0d973 100644
--- a/test/DebugInfo/COFF/tail-call-without-lexical-scopes.ll
+++ b/test/DebugInfo/COFF/tail-call-without-lexical-scopes.ll
@@ -30,7 +30,7 @@
; X86-NEXT: .long 1
; X86-NEXT: .long {{.*}}
; X86-NEXT: .long [[JMP_LINE]]-"?bar@@YAXHZZ"
-; X86-NEXT: .long 4
+; X86-NEXT: .long -2147483644
; X86-LABEL: .long 244
diff --git a/test/DebugInfo/X86/debug-macro.ll b/test/DebugInfo/X86/debug-macro.ll
new file mode 100644
index 000000000000..b79e2de5ca45
--- /dev/null
+++ b/test/DebugInfo/X86/debug-macro.ll
@@ -0,0 +1,67 @@
+; RUN: %llc_dwarf -O0 -filetype=obj < %s | llvm-dwarfdump -debug-dump=info - | FileCheck --check-prefix=CHECK-INFO %s
+; RUN: %llc_dwarf -O0 -filetype=obj < %s | llvm-dwarfdump -debug-dump=macro - | FileCheck --check-prefix=CHECK-MACRO %s
+; RUN: %llc_dwarf -O0 -filetype=obj < %s | llvm-dwarfdump -debug-dump=line - | FileCheck --check-prefix=CHECK-LINE %s
+
+
+; CHECK-INFO: .debug_info contents:
+; CHECK-INFO: DW_TAG_compile_unit
+; CHECK-INFO-NOT: DW_TAG
+; CHECK-INFO: DW_AT_name {{.*}}"debug-macro.cpp")
+; CHECK-INFO: DW_AT_macro_info {{.*}}(0x00000000)
+; CHECK-INFO: DW_TAG_compile_unit
+; CHECK-INFO-NOT: DW_TAG
+; CHECK-INFO: DW_AT_name {{.*}}"debug-macro1.cpp")
+; CHECK-INFO: DW_AT_macro_info {{.*}}(0x00000044)
+; CHECK-INFO: DW_TAG_compile_unit
+; CHECK-INFO-NOT: DW_TAG
+; CHECK-INFO: DW_AT_name {{.*}}"debug-macro2.cpp")
+; CHECK-INFO-NOT: DW_AT_macro_info
+
+; CHECK-MACRO: .debug_macinfo contents:
+; CHECK-MACRO-NEXT: DW_MACINFO_define - lineno: 0 macro: NameCMD ValueCMD
+; CHECK-MACRO-NEXT: DW_MACINFO_start_file - lineno: 0 filenum: 1
+; CHECK-MACRO-NEXT: DW_MACINFO_start_file - lineno: 9 filenum: 2
+; CHECK-MACRO-NEXT: DW_MACINFO_define - lineno: 1 macro: NameDef Value
+; CHECK-MACRO-NEXT: DW_MACINFO_undef - lineno: 11 macro: NameUndef
+; CHECK-MACRO-NEXT: DW_MACINFO_end_file
+; CHECK-MACRO-NEXT: DW_MACINFO_undef - lineno: 10 macro: NameUndef2
+; CHECK-MACRO-NEXT: DW_MACINFO_end_file
+; CHECK-MACRO-NEXT: DW_MACINFO_start_file - lineno: 0 filenum: 1
+; CHECK-MACRO-NEXT: DW_MACINFO_end_file
+
+; CHECK-LINE: .debug_line contents:
+; CHECK-LINE: Dir Mod Time File Len File Name
+; CHECK-LINE: file_names[ 1] {{.*}}debug-macro.cpp
+; CHECK-LINE: file_names[ 2] {{.*}}debug-macro.h
+; CHECK-LINE: Dir Mod Time File Len File Name
+; CHECK-LINE: file_names[ 1] {{.*}}debug-macro1.cpp
+
+!llvm.dbg.cu = !{!0, !16, !20}
+!llvm.module.flags = !{!13, !14}
+!llvm.ident = !{!15}
+
+!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.5.0 ", isOptimized: false, emissionKind: 1, file: !1, enums: !2, retainedTypes: !2, subprograms: !2, globals: !2, imports: !2, macros: !3)
+!1 = !DIFile(filename: "debug-macro.cpp", directory: "/")
+!2 = !{}
+!3 = !{!4, !5}
+!4 = !DIMacro(type: DW_MACINFO_define, line: 0, name: "NameCMD", value: "ValueCMD")
+!5 = !DIMacroFile(line: 0, file: !1, nodes: !6)
+!6 = !{!7, !12}
+!7 = !DIMacroFile(line: 9, file: !8, nodes: !9)
+!8 = !DIFile(filename: "debug-macro.h", directory: "/")
+!9 = !{!10, !11}
+!10 = !DIMacro(type: DW_MACINFO_define, line: 1, name: "NameDef", value: "Value")
+!11 = !DIMacro(type: DW_MACINFO_undef, line: 11, name: "NameUndef")
+!12 = !DIMacro(type: DW_MACINFO_undef, line: 10, name: "NameUndef2")
+
+!13 = !{i32 2, !"Dwarf Version", i32 4}
+!14 = !{i32 1, !"Debug Info Version", i32 3}
+!15 = !{!"clang version 3.5.0 "}
+
+!16 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.5.0 ", isOptimized: false, emissionKind: 1, file: !17, enums: !2, retainedTypes: !2, subprograms: !2, globals: !2, imports: !2, macros: !18)
+!17 = !DIFile(filename: "debug-macro1.cpp", directory: "/")
+!18 = !{!19}
+!19 = !DIMacroFile(line: 0, file: !17, nodes: !2)
+
+!20 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.5.0 ", isOptimized: false, emissionKind: 1, file: !21, enums: !2, retainedTypes: !2, subprograms: !2, globals: !2, imports: !2)
+!21 = !DIFile(filename: "debug-macro2.cpp", directory: "/")
diff --git a/test/DebugInfo/X86/debugger-tune.ll b/test/DebugInfo/X86/debugger-tune.ll
index b685612d4a47..19a37199ceb1 100644
--- a/test/DebugInfo/X86/debugger-tune.ll
+++ b/test/DebugInfo/X86/debugger-tune.ll
@@ -6,7 +6,7 @@
; Verify defaults for various targets.
; RUN: llc -mtriple=x86_64-scei-ps4 -filetype=obj < %s | llvm-readobj -sections - | FileCheck --check-prefix=SCE %s
; RUN: llc -mtriple=x86_64-apple-darwin12 -filetype=obj < %s | llvm-readobj -sections - | FileCheck --check-prefix=LLDB %s
-; RUN: llc -mtriple=x86_64-pc-freebsd -filetype=obj < %s | llvm-readobj -sections - | FileCheck --check-prefix=LLDB %s
+; RUN: llc -mtriple=x86_64-pc-freebsd -filetype=obj < %s | llvm-readobj -sections - | FileCheck --check-prefix=GDB %s
; RUN: llc -mtriple=x86_64-pc-linux -filetype=obj < %s | llvm-readobj -sections - | FileCheck --check-prefix=GDB %s
; We can override defaults.
diff --git a/test/DebugInfo/X86/tls.ll b/test/DebugInfo/X86/tls.ll
index 754ed25debc6..633096ba956e 100644
--- a/test/DebugInfo/X86/tls.ll
+++ b/test/DebugInfo/X86/tls.ll
@@ -14,7 +14,7 @@
; RUN: | FileCheck --check-prefix=NOEMU --check-prefix=DARWIN --check-prefix=STDOP %s
; RUN: llc %s -o - -filetype=asm -O0 -mtriple=x86_64-unknown-freebsd \
-; RUN: | FileCheck --check-prefix=NOEMU --check-prefix=SINGLE --check-prefix=SINGLE-64 --check-prefix=STDOP %s
+; RUN: | FileCheck --check-prefix=NOEMU --check-prefix=SINGLE --check-prefix=SINGLE-64 --check-prefix=GNUOP %s
; RUN: llc %s -o - -filetype=asm -O0 -mtriple=x86_64-unknown-linux-gnu -emulated-tls \
; RUN: | FileCheck --check-prefix=SINGLE --check-prefix=EMUSINGLE-64 \