blob: bb8d59e1b7218d58e932e13bd9472bc8a5b3b8f0 [file] [log] [blame]
Dan Gohman281d65d2010-05-07 01:08:53 +00001; RUN: llc < %s -asm-verbose=false -march=x86-64 -use-unknown-locations | FileCheck %s
Dan Gohmanac963b32010-05-06 17:49:17 +00002
3; The divide instruction does not have a debug location. CodeGen should
Rafael Espindola5c055632010-11-18 02:04:25 +00004; represent this in the debug information. This is done by setting line
5; and column to 0
Dan Gohmanac963b32010-05-06 17:49:17 +00006
Dan Gohman34dcc6f2010-05-06 20:33:48 +00007; CHECK: leal (%rdi,%rsi), %eax
Rafael Espindola5c055632010-11-18 02:04:25 +00008; CHECK-NEXT: .loc 1 0 0
Dan Gohmanac963b32010-05-06 17:49:17 +00009; CHECK-NEXT: Ltmp
10; CHECK-NEXT: cltd
11; CHECK-NEXT: idivl %r8d
Rafael Espindola5c055632010-11-18 02:04:25 +000012; CHECK-NEXT: .loc 1 4 3
Dan Gohmanac963b32010-05-06 17:49:17 +000013; CHECK-NEXT: Ltmp
14; CHECK-NEXT: addl %ecx, %eax
15; CHECK-NEXT: ret
16; CHECK-NEXT: Ltmp
17
18define i32 @foo(i32 %w, i32 %x, i32 %y, i32 %z) nounwind {
19entry:
20 %a = add i32 %w, %x, !dbg !8
21 %b = sdiv i32 %a, %y
22 %c = add i32 %b, %z, !dbg !8
23 ret i32 %c, !dbg !8
24}
25
26!0 = metadata !{i32 524545, metadata !1, metadata !"x", metadata !2, i32 1, metadata !6} ; [ DW_TAG_arg_variable ]
27!1 = metadata !{i32 524334, i32 0, metadata !2, metadata !"foo", metadata !"foo", metadata !"foo", metadata !2, i32 1, metadata !4, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 false} ; [ DW_TAG_subprogram ]
28!2 = metadata !{i32 524329, metadata !"test.c", metadata !"/dir", metadata !3} ; [ DW_TAG_file_type ]
29!3 = metadata !{i32 524305, i32 0, i32 12, metadata !"test.c", metadata !".", metadata !"producer", i1 true, i1 false, metadata !"", i32 0} ; [ DW_TAG_compile_unit ]
30!4 = metadata !{i32 524309, metadata !2, metadata !"", metadata !2, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !5, i32 0, null} ; [ DW_TAG_subroutine_type ]
31!5 = metadata !{metadata !6}
32!6 = metadata !{i32 524324, metadata !2, metadata !"int", metadata !2, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
33!7 = metadata !{i32 524299, metadata !1, i32 1, i32 30} ; [ DW_TAG_lexical_block ]
34!8 = metadata !{i32 4, i32 3, metadata !7, null}