
This remove some erroneous debug info from tests that should address the test failures that showed up when the this was previously committed. This reverts commit 6716ce8b641f0e42e2343e1694ee578b027be0c4.
76 lines
3.9 KiB
LLVM
76 lines
3.9 KiB
LLVM
; RUN: opt < %s -S -passes=loop-vectorize,dce,instcombine -force-vector-interleave=1 -force-vector-width=4 | FileCheck %s
|
|
; Make sure we vectorize with debugging turned on.
|
|
|
|
source_filename = "test/Transforms/LoopVectorize/dbg.value.ll"
|
|
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"
|
|
|
|
@A = global [1024 x i32] zeroinitializer, align 16, !dbg !0
|
|
@B = global [1024 x i32] zeroinitializer, align 16, !dbg !7
|
|
@C = global [1024 x i32] zeroinitializer, align 16, !dbg !9
|
|
; CHECK-LABEL: @test(
|
|
|
|
; Function Attrs: nounwind ssp uwtable
|
|
define i32 @test() #0 !dbg !15 {
|
|
entry:
|
|
tail call void @llvm.dbg.value(metadata i32 0, metadata !19, metadata !21), !dbg !22
|
|
br label %for.body, !dbg !22
|
|
|
|
for.body: ; preds = %for.body, %entry
|
|
;CHECK: load <4 x i32>
|
|
%indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ]
|
|
%arrayidx = getelementptr inbounds [1024 x i32], ptr @B, i64 0, i64 %indvars.iv, !dbg !23
|
|
%0 = load i32, ptr %arrayidx, align 4, !dbg !23
|
|
%arrayidx2 = getelementptr inbounds [1024 x i32], ptr @C, i64 0, i64 %indvars.iv, !dbg !23
|
|
%1 = load i32, ptr %arrayidx2, align 4, !dbg !23
|
|
%add = add nsw i32 %1, %0, !dbg !23
|
|
%arrayidx4 = getelementptr inbounds [1024 x i32], ptr @A, i64 0, i64 %indvars.iv, !dbg !23
|
|
store i32 %add, ptr %arrayidx4, align 4, !dbg !23
|
|
%indvars.iv.next = add i64 %indvars.iv, 1, !dbg !22
|
|
tail call void @llvm.dbg.value(metadata !12, metadata !19, metadata !21), !dbg !22
|
|
%lftr.wideiv = trunc i64 %indvars.iv.next to i32, !dbg !22
|
|
%exitcond = icmp ne i32 %lftr.wideiv, 1024, !dbg !22
|
|
br i1 %exitcond, label %for.body, label %for.end, !dbg !22
|
|
|
|
for.end: ; preds = %for.body
|
|
ret i32 0, !dbg !25
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
|
|
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare void @llvm.dbg.value(metadata, metadata, metadata) #1
|
|
|
|
attributes #0 = { nounwind ssp uwtable "fp-contract-model"="standard" "frame-pointer"="non-leaf" "relocation-model"="pic" "ssp-buffers-size"="8" }
|
|
attributes #1 = { nounwind readnone }
|
|
|
|
!llvm.dbg.cu = !{!11}
|
|
!llvm.module.flags = !{!14}
|
|
|
|
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
|
!1 = !DIGlobalVariable(name: "A", scope: null, file: !2, line: 1, type: !3, isLocal: false, isDefinition: true)
|
|
!2 = !DIFile(filename: "test", directory: "/path/to/somewhere")
|
|
!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 32768, align: 32)
|
|
!4 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
|
!7 = !DIGlobalVariableExpression(var: !8, expr: !DIExpression())
|
|
!8 = !DIGlobalVariable(name: "B", scope: null, file: !2, line: 2, type: !3, isLocal: false, isDefinition: true)
|
|
!9 = !DIGlobalVariableExpression(var: !10, expr: !DIExpression())
|
|
!10 = !DIGlobalVariable(name: "C", scope: null, file: !2, line: 3, type: !3, isLocal: false, isDefinition: true)
|
|
!11 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !2, producer: "clang", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !12, retainedTypes: !12, globals: !13)
|
|
!12 = !{}
|
|
!13 = !{!0, !7, !9}
|
|
!14 = !{i32 1, !"Debug Info Version", i32 3}
|
|
!15 = distinct !DISubprogram(name: "test", linkageName: "test", scope: !2, file: !2, line: 5, type: !16, isLocal: false, isDefinition: true, scopeLine: 5, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !11, retainedNodes: !18)
|
|
!16 = !DISubroutineType(types: !17)
|
|
!17 = !{!4}
|
|
!18 = !{!19}
|
|
!19 = !DILocalVariable(name: "i", scope: !20, file: !2, line: 6, type: !4)
|
|
!20 = distinct !DILexicalBlock(scope: !15, file: !2, line: 6)
|
|
!21 = !DIExpression()
|
|
!22 = !DILocation(line: 6, scope: !20)
|
|
!23 = !DILocation(line: 7, scope: !24)
|
|
!24 = distinct !DILexicalBlock(scope: !20, file: !2, line: 6)
|
|
!25 = !DILocation(line: 9, scope: !15)
|
|
|