diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2016-01-13 19:58:01 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2016-01-13 19:58:01 +0000 |
| commit | 050e163ae8b4bb6eb252b59e2f8f36e68ae9239d (patch) | |
| tree | 7376a0c71aad05d327e5b1dcbceb3311a10f9f29 /test/DebugInfo | |
| parent | 8a6c1c25bce0267ee4072bd7b786b921e8a66a35 (diff) | |
Notes
Diffstat (limited to 'test/DebugInfo')
| -rw-r--r-- | test/DebugInfo/COFF/asm.ll | 73 | ||||
| -rw-r--r-- | test/DebugInfo/COFF/multifile.ll | 108 | ||||
| -rw-r--r-- | test/DebugInfo/COFF/multifunction.ll | 271 | ||||
| -rw-r--r-- | test/DebugInfo/COFF/simple.ll | 60 | ||||
| -rw-r--r-- | test/DebugInfo/COFF/tail-call-without-lexical-scopes.ll | 2 | ||||
| -rw-r--r-- | test/DebugInfo/X86/debug-macro.ll | 67 | ||||
| -rw-r--r-- | test/DebugInfo/X86/debugger-tune.ll | 2 | ||||
| -rw-r--r-- | test/DebugInfo/X86/tls.ll | 2 |
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 \ |
