blob: 79e3217cbc13d38f6ab7f84bb1fc3dbefe4ab626 [file] [log] [blame]
Manman Rene9a52e12013-07-29 18:12:58 +00001; RUN: opt < %s -scalarrepl -S | FileCheck %s
2; RUN: opt < %s -scalarrepl-ssa -S | FileCheck %s
Cameron Zwarich843bc7d2011-05-24 03:10:43 +00003target 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"
4target triple = "x86_64-apple-macosx10.6.0"
5
6; CHECK: f
7; CHECK-NOT: llvm.dbg.declare
8; CHECK: llvm.dbg.value
9; CHECK: llvm.dbg.value
10; CHECK: llvm.dbg.value
11; CHECK: llvm.dbg.value
12; CHECK: llvm.dbg.value
13
14define i32 @f(i32 %a, i32 %b) nounwind ssp {
15entry:
16 %a.addr = alloca i32, align 4
17 %b.addr = alloca i32, align 4
18 %c = alloca i32, align 4
19 store i32 %a, i32* %a.addr, align 4
20 call void @llvm.dbg.declare(metadata !{i32* %a.addr}, metadata !6), !dbg !7
21 store i32 %b, i32* %b.addr, align 4
22 call void @llvm.dbg.declare(metadata !{i32* %b.addr}, metadata !8), !dbg !9
23 call void @llvm.dbg.declare(metadata !{i32* %c}, metadata !10), !dbg !12
24 %tmp = load i32* %a.addr, align 4, !dbg !13
25 store i32 %tmp, i32* %c, align 4, !dbg !13
26 %tmp1 = load i32* %a.addr, align 4, !dbg !14
27 %tmp2 = load i32* %b.addr, align 4, !dbg !14
28 %add = add nsw i32 %tmp1, %tmp2, !dbg !14
29 store i32 %add, i32* %a.addr, align 4, !dbg !14
30 %tmp3 = load i32* %c, align 4, !dbg !15
31 %tmp4 = load i32* %b.addr, align 4, !dbg !15
32 %sub = sub nsw i32 %tmp3, %tmp4, !dbg !15
33 store i32 %sub, i32* %b.addr, align 4, !dbg !15
34 %tmp5 = load i32* %a.addr, align 4, !dbg !16
35 %tmp6 = load i32* %b.addr, align 4, !dbg !16
36 %add7 = add nsw i32 %tmp5, %tmp6, !dbg !16
37 ret i32 %add7, !dbg !16
38}
39
40declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone
41
42!llvm.dbg.cu = !{!0}
Cameron Zwarich843bc7d2011-05-24 03:10:43 +000043
Manman Rene9a52e12013-07-29 18:12:58 +000044!0 = metadata !{i32 786449, metadata !18, i32 12, metadata !"clang version 3.0 (trunk 131941)", i1 false, metadata !"", i32 0, metadata !19, metadata !19, metadata !17, null, null, metadata !""} ; [ DW_TAG_compile_unit ]
Manman Rendeeafd82013-09-06 21:03:58 +000045!1 = metadata !{i32 786478, metadata !18, metadata !2, metadata !"f", metadata !"f", metadata !"", i32 1, metadata !3, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, i32 (i32, i32)* @f, null, null, null, i32 1} ; [ DW_TAG_subprogram ] [line 1] [def] [f]
David Blaikie5692e722013-03-28 02:44:59 +000046!2 = metadata !{i32 786473, metadata !18} ; [ DW_TAG_file_type ]
Manman Rendeeafd82013-09-06 21:03:58 +000047!3 = metadata !{i32 786453, metadata !18, metadata !2, metadata !"", i32 0, i64 0, i64 0, i32 0, i32 0, null, metadata !4, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
Cameron Zwarich843bc7d2011-05-24 03:10:43 +000048!4 = metadata !{metadata !5}
Manman Rene9a52e12013-07-29 18:12:58 +000049!5 = metadata !{i32 786468, null, metadata !0, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
David Blaikie47922fb2013-03-11 22:37:40 +000050!6 = metadata !{i32 786689, metadata !1, metadata !"a", metadata !2, i32 16777217, metadata !5, i32 0, null} ; [ DW_TAG_arg_variable ]
Cameron Zwarich843bc7d2011-05-24 03:10:43 +000051!7 = metadata !{i32 1, i32 11, metadata !1, null}
David Blaikie47922fb2013-03-11 22:37:40 +000052!8 = metadata !{i32 786689, metadata !1, metadata !"b", metadata !2, i32 33554433, metadata !5, i32 0, null} ; [ DW_TAG_arg_variable ]
Cameron Zwarich843bc7d2011-05-24 03:10:43 +000053!9 = metadata !{i32 1, i32 18, metadata !1, null}
David Blaikie47922fb2013-03-11 22:37:40 +000054!10 = metadata !{i32 786688, metadata !11, metadata !"c", metadata !2, i32 2, metadata !5, i32 0, null} ; [ DW_TAG_auto_variable ]
Manman Rene9a52e12013-07-29 18:12:58 +000055!11 = metadata !{i32 786443, metadata !18, metadata !1, i32 1, i32 21, i32 0} ; [ DW_TAG_lexical_block ]
Cameron Zwarich843bc7d2011-05-24 03:10:43 +000056!12 = metadata !{i32 2, i32 9, metadata !11, null}
57!13 = metadata !{i32 2, i32 14, metadata !11, null}
58!14 = metadata !{i32 3, i32 5, metadata !11, null}
59!15 = metadata !{i32 4, i32 5, metadata !11, null}
60!16 = metadata !{i32 5, i32 5, metadata !11, null}
David Blaikie8fb82242013-03-17 21:13:55 +000061!17 = metadata !{metadata !1}
62!18 = metadata !{metadata !"/d/j/debug-test.c", metadata !"/Volumes/Data/b"}
Manman Rene9a52e12013-07-29 18:12:58 +000063!19 = metadata !{i32 0}