2017-12-09 08:17:01 +08:00
; RUN: llc -simplify-mir -stop-after=machine-sink < %s -o - | FileCheck %s
; ModuleID = 'test-sink-debug.cpp'
source_filename = "test-sink-debug.cpp"
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
; Function Attrs: nounwind readnone uwtable
define double @_Z3fooddb ( double %x , double %y , i1 zeroext %c ) local_unnamed_addr !dbg !7 {
tail call void @llvm.dbg.value ( metadata double %x , metadata !13 , metadata !DIExpression ( ) ) , !dbg !16
tail call void @llvm.dbg.value ( metadata double %y , metadata !14 , metadata !DIExpression ( ) ) , !dbg !17
tail call void @llvm.dbg.value ( metadata i1 %c , metadata !15 , metadata !DIExpression ( ) ) , !dbg !18
%a = fdiv double %x , 3.000000e+00
2017-12-21 03:11:31 +08:00
%b = fdiv double %y , 5.000000e+00 , !dbg !19
2017-12-09 08:17:01 +08:00
%cond = select i1 %c , double %a , double %b
2017-12-21 03:11:31 +08:00
; CHECK-NOT: debug-location !19
ret double %cond , !dbg !20
2017-12-09 08:17:01 +08:00
}
; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.value ( metadata , metadata , metadata ) #1
attributes #1 = { nounwind readnone s p e c u l a t a b l e }
!llvm.dbg.cu = ! { !0 }
!llvm.module.flags = ! { !3 , !4 , !5 }
!llvm.ident = ! { !6 }
!0 = distinct !DICompileUnit ( language: D W _ L A N G _ C _ p l u s _ p l u s , file: !1 , producer: "clang version 6.0.0 (trunk 313291)" , isOptimized: true , runtimeVersion: 0 , emissionKind: F u l l D e b u g , enums: !2 )
!1 = !DIFile ( filename: "test-sink-debug.cpp" , directory: "/tmp" )
!2 = ! { }
!3 = ! { i32 2 , !"Dwarf Version" , i32 4 }
!4 = ! { i32 2 , !"Debug Info Version" , i32 3 }
!5 = ! { i32 1 , !"wchar_size" , i32 4 }
!6 = ! { !"clang version 6.0.0 (trunk 313291)" }
!7 = distinct !DISubprogram ( name: "foo" , linkageName: "_Z3fooddb" , scope: !1 , file: !1 , line: 1 , type: !8 , isLocal: false , isDefinition: true , scopeLine: 1 , flags: D I F l a g P r o t o t y p e d , isOptimized: true , unit: !0 , variables: !12 )
!8 = !DISubroutineType ( types: !9 )
!9 = ! { !10 , !10 , !10 , !11 }
!10 = !DIBasicType ( name: "double" , size: 64 , encoding: D W _ A T E _ float )
!11 = !DIBasicType ( name: "bool" , size: 8 , encoding: D W _ A T E _ b o o l e a n )
!12 = ! { !13 , !14 , !15 }
!13 = !DILocalVariable ( name: "x" , arg: 1 , scope: !7 , file: !1 , line: 1 , type: !10 )
!14 = !DILocalVariable ( name: "y" , arg: 2 , scope: !7 , file: !1 , line: 1 , type: !10 )
!15 = !DILocalVariable ( name: "c" , arg: 3 , scope: !7 , file: !1 , line: 1 , type: !11 )
!16 = !DILocation ( line: 1 , column: 19 , scope: !7 )
!17 = !DILocation ( line: 1 , column: 29 , scope: !7 )
!18 = !DILocation ( line: 1 , column: 37 , scope: !7 )
2017-12-21 03:11:31 +08:00
!19 = !DILocation ( line: 2 , column: 26 , scope: !7 )
!20 = !DILocation ( line: 2 , column: 3 , scope: !7 )