Manman Ren | e9a52e1 | 2013-07-29 18:12:58 +0000 | [diff] [blame] | 1 | ; RUN: opt < %s -S -loop-vectorize -force-vector-unroll=1 -force-vector-width=4 -dce -instcombine | FileCheck %s |
Arnold Schwaighofer | 4090b61 | 2013-03-09 15:56:34 +0000 | [diff] [blame] | 2 | ; Make sure we vectorize with debugging turned on. |
| 3 | |
| 4 | target 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-S128" |
| 5 | target triple = "x86_64-apple-macosx10.8.0" |
| 6 | |
| 7 | @A = global [1024 x i32] zeroinitializer, align 16 |
| 8 | @B = global [1024 x i32] zeroinitializer, align 16 |
| 9 | @C = global [1024 x i32] zeroinitializer, align 16 |
| 10 | |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 11 | ; CHECK-LABEL: @test( |
Arnold Schwaighofer | 4090b61 | 2013-03-09 15:56:34 +0000 | [diff] [blame] | 12 | define i32 @test() #0 { |
| 13 | entry: |
| 14 | tail call void @llvm.dbg.value(metadata !1, i64 0, metadata !9), !dbg !18 |
| 15 | br label %for.body, !dbg !18 |
| 16 | |
| 17 | for.body: |
| 18 | ;CHECK: load <4 x i32> |
| 19 | %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ] |
| 20 | %arrayidx = getelementptr inbounds [1024 x i32]* @B, i64 0, i64 %indvars.iv, !dbg !19 |
Manman Ren | 1a5ff28 | 2013-04-30 17:52:57 +0000 | [diff] [blame] | 21 | %0 = load i32* %arrayidx, align 4, !dbg !19 |
Arnold Schwaighofer | 4090b61 | 2013-03-09 15:56:34 +0000 | [diff] [blame] | 22 | %arrayidx2 = getelementptr inbounds [1024 x i32]* @C, i64 0, i64 %indvars.iv, !dbg !19 |
Manman Ren | 1a5ff28 | 2013-04-30 17:52:57 +0000 | [diff] [blame] | 23 | %1 = load i32* %arrayidx2, align 4, !dbg !19 |
Arnold Schwaighofer | 4090b61 | 2013-03-09 15:56:34 +0000 | [diff] [blame] | 24 | %add = add nsw i32 %1, %0, !dbg !19 |
| 25 | %arrayidx4 = getelementptr inbounds [1024 x i32]* @A, i64 0, i64 %indvars.iv, !dbg !19 |
Manman Ren | 1a5ff28 | 2013-04-30 17:52:57 +0000 | [diff] [blame] | 26 | store i32 %add, i32* %arrayidx4, align 4, !dbg !19 |
Arnold Schwaighofer | 4090b61 | 2013-03-09 15:56:34 +0000 | [diff] [blame] | 27 | %indvars.iv.next = add i64 %indvars.iv, 1, !dbg !18 |
| 28 | tail call void @llvm.dbg.value(metadata !{null}, i64 0, metadata !9), !dbg !18 |
| 29 | %lftr.wideiv = trunc i64 %indvars.iv.next to i32, !dbg !18 |
| 30 | %exitcond = icmp ne i32 %lftr.wideiv, 1024, !dbg !18 |
| 31 | br i1 %exitcond, label %for.body, label %for.end, !dbg !18 |
| 32 | |
| 33 | for.end: |
| 34 | ret i32 0, !dbg !24 |
| 35 | } |
| 36 | |
| 37 | declare void @llvm.dbg.declare(metadata, metadata) #1 |
| 38 | |
| 39 | declare void @llvm.dbg.value(metadata, i64, metadata) #1 |
| 40 | |
Bill Wendling | a5c536e | 2013-08-01 21:42:05 +0000 | [diff] [blame] | 41 | attributes #0 = { nounwind ssp uwtable "fp-contract-model"="standard" "no-frame-pointer-elim" "no-frame-pointer-elim-non-leaf" "relocation-model"="pic" "ssp-buffers-size"="8" } |
Arnold Schwaighofer | 4090b61 | 2013-03-09 15:56:34 +0000 | [diff] [blame] | 42 | attributes #1 = { nounwind readnone } |
| 43 | |
| 44 | !llvm.dbg.cu = !{!0} |
Manman Ren | 409558f | 2013-11-22 21:49:45 +0000 | [diff] [blame] | 45 | !llvm.module.flags = !{!26} |
Arnold Schwaighofer | 4090b61 | 2013-03-09 15:56:34 +0000 | [diff] [blame] | 46 | |
Manman Ren | e9a52e1 | 2013-07-29 18:12:58 +0000 | [diff] [blame] | 47 | !0 = metadata !{i32 786449, metadata !25, i32 4, metadata !"clang", i1 true, metadata !"", i32 0, metadata !1, metadata !1, metadata !2, metadata !11, null, metadata !""} |
Arnold Schwaighofer | 4090b61 | 2013-03-09 15:56:34 +0000 | [diff] [blame] | 48 | !1 = metadata !{i32 0} |
| 49 | !2 = metadata !{metadata !3} |
Manman Ren | e9a52e1 | 2013-07-29 18:12:58 +0000 | [diff] [blame] | 50 | !3 = metadata !{i32 786478, metadata !25, metadata !4, metadata !"test", metadata !"test", metadata !"test", i32 5, metadata !5, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 true, i32 ()* @test, null, null, metadata !8, i32 5} |
| 51 | !4 = metadata !{i32 786473, metadata !25} |
Manman Ren | f2a88f3 | 2013-09-08 03:11:54 +0000 | [diff] [blame] | 52 | !5 = metadata !{i32 786453, i32 0, null, i32 0, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !6, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ] |
Arnold Schwaighofer | 4090b61 | 2013-03-09 15:56:34 +0000 | [diff] [blame] | 53 | !6 = metadata !{metadata !7} |
Manman Ren | e9a52e1 | 2013-07-29 18:12:58 +0000 | [diff] [blame] | 54 | !7 = metadata !{i32 786468, null, null, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} |
Arnold Schwaighofer | 4090b61 | 2013-03-09 15:56:34 +0000 | [diff] [blame] | 55 | !8 = metadata !{metadata !9} |
| 56 | !9 = metadata !{i32 786688, metadata !10, metadata !"i", metadata !4, i32 6, metadata !7, i32 0, i32 0} |
Manman Ren | e9a52e1 | 2013-07-29 18:12:58 +0000 | [diff] [blame] | 57 | !10 = metadata !{i32 786443, metadata !25, metadata !3, i32 6, i32 0, i32 0} |
Arnold Schwaighofer | 4090b61 | 2013-03-09 15:56:34 +0000 | [diff] [blame] | 58 | !11 = metadata !{metadata !12, metadata !16, metadata !17} |
| 59 | !12 = metadata !{i32 786484, i32 0, null, metadata !"A", metadata !"A", metadata !"", metadata !4, i32 1, metadata !13, i32 0, i32 1, [1024 x i32]* @A, null} |
Manman Ren | f2a88f3 | 2013-09-08 03:11:54 +0000 | [diff] [blame] | 60 | !13 = metadata !{i32 786433, null, null, null, i32 0, i64 32768, i64 32, i32 0, i32 0, metadata !7, metadata !14, i32 0, null, null, null} ; [ DW_TAG_array_type ] [line 0, size 32768, align 32, offset 0] [from int] |
Arnold Schwaighofer | 4090b61 | 2013-03-09 15:56:34 +0000 | [diff] [blame] | 61 | !14 = metadata !{metadata !15} |
| 62 | !15 = metadata !{i32 786465, i64 0, i64 1024} |
| 63 | !16 = metadata !{i32 786484, i32 0, null, metadata !"B", metadata !"B", metadata !"", metadata !4, i32 2, metadata !13, i32 0, i32 1, [1024 x i32]* @B, null} |
| 64 | !17 = metadata !{i32 786484, i32 0, null, metadata !"C", metadata !"C", metadata !"", metadata !4, i32 3, metadata !13, i32 0, i32 1, [1024 x i32]* @C, null} |
| 65 | !18 = metadata !{i32 6, i32 0, metadata !10, null} |
| 66 | !19 = metadata !{i32 7, i32 0, metadata !20, null} |
Manman Ren | e9a52e1 | 2013-07-29 18:12:58 +0000 | [diff] [blame] | 67 | !20 = metadata !{i32 786443, metadata !25, metadata !10, i32 6, i32 0, i32 1} |
Arnold Schwaighofer | 4090b61 | 2013-03-09 15:56:34 +0000 | [diff] [blame] | 68 | !24 = metadata !{i32 9, i32 0, metadata !3, null} |
Manman Ren | e9a52e1 | 2013-07-29 18:12:58 +0000 | [diff] [blame] | 69 | !25 = metadata !{metadata !"test", metadata !"/path/to/somewhere"} |
Manman Ren | 409558f | 2013-11-22 21:49:45 +0000 | [diff] [blame] | 70 | !26 = metadata !{i32 1, metadata !"Debug Info Version", i32 1} |