1*9880d681SAndroid Build Coastguard Worker; RUN: llc -filetype=asm < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Workertarget triple = "thumbv7-apple-ios7.0.0" 3*9880d681SAndroid Build Coastguard Worker%class.Matrix3.0.6.10 = type { [9 x float] } 4*9880d681SAndroid Build Coastguard Workerdefine arm_aapcscc void @_Z9GetMatrixv(%class.Matrix3.0.6.10* noalias nocapture sret %agg.result) #0 !dbg !39 { 5*9880d681SAndroid Build Coastguard Worker br i1 fcmp oeq (float fadd (float fadd (float fmul (float undef, float undef), float fmul (float undef, float undef)), float fmul (float undef, float undef)), float 0.000000e+00), label %_ZN7Vector39NormalizeEv.exit, label %1 6*9880d681SAndroid Build Coastguard Worker tail call arm_aapcscc void @_ZL4Sqrtd() #3 7*9880d681SAndroid Build Coastguard Worker br label %_ZN7Vector39NormalizeEv.exit 8*9880d681SAndroid Build Coastguard Worker_ZN7Vector39NormalizeEv.exit: ; preds = %1, %0 9*9880d681SAndroid Build Coastguard Worker ; rdar://problem/15094721. 10*9880d681SAndroid Build Coastguard Worker ; 11*9880d681SAndroid Build Coastguard Worker ; When this (partially) dead use gets eliminated (and thus the def 12*9880d681SAndroid Build Coastguard Worker ; of the vreg holding %agg.result) the dbg_value becomes dangling 13*9880d681SAndroid Build Coastguard Worker ; and SelectionDAGISel crashes. It should definitely not 14*9880d681SAndroid Build Coastguard Worker ; crash. Drop the dbg_value instead. 15*9880d681SAndroid Build Coastguard Worker ; CHECK-NOT: "matrix" 16*9880d681SAndroid Build Coastguard Worker tail call void @llvm.dbg.declare(metadata %class.Matrix3.0.6.10* %agg.result, metadata !45, metadata !DIExpression(DW_OP_deref)) 17*9880d681SAndroid Build Coastguard Worker %2 = getelementptr inbounds %class.Matrix3.0.6.10, %class.Matrix3.0.6.10* %agg.result, i32 0, i32 0, i32 8 18*9880d681SAndroid Build Coastguard Worker ret void 19*9880d681SAndroid Build Coastguard Worker} 20*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.dbg.declare(metadata, metadata, metadata) #1 21*9880d681SAndroid Build Coastguard Workerdeclare arm_aapcscc void @_ZL4Sqrtd() #2 22*9880d681SAndroid Build Coastguard Worker!4 = !DICompositeType(tag: DW_TAG_class_type, name: "Matrix3", line: 20, size: 288, align: 32, file: !5, identifier: "_ZTS7Matrix3") 23*9880d681SAndroid Build Coastguard Worker!5 = !DIFile(filename: "test.ii", directory: "/Volumes/Data/radar/15094721") 24*9880d681SAndroid Build Coastguard Worker!39 = distinct !DISubprogram(name: "GetMatrix", linkageName: "_Z9GetMatrixv", line: 32, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 32, file: !5, scope: !40, type: !41) 25*9880d681SAndroid Build Coastguard Worker!40 = !DIFile(filename: "test.ii", directory: "/Volumes/Data/radar/15094721") 26*9880d681SAndroid Build Coastguard Worker!41 = !DISubroutineType(types: null) 27*9880d681SAndroid Build Coastguard Worker!45 = !DILocalVariable(name: "matrix", line: 35, scope: !39, file: !40, type: !4) 28