; RUN: llc %s -filetype=obj -o - | llvm-dwarfdump -v - | FileCheck %s
; This tests a fragment that partially covers subregister compositions.
;
; Our fragment is 96 bits long and lies in a 128-bit register, which
; in turn has to be composed out of its two 64-bit subregisters.

; CHECK: .debug_info
; CHECK: DW_TAG_subprogram
; CHECK:   DW_AT_name {{.*}}"subscript.get"
; CHECK:  DW_TAG_formal_parameter
; CHECK-NEXT: DW_AT_location [DW_FORM_sec_offset]	({{.*}}
; CHECK-NEXT:  0x{{.*}} - 0x{{.*}}: DW_OP_regx D16, DW_OP_piece 0x8, DW_OP_regx D17, DW_OP_piece 0x4, DW_OP_regx D16, DW_OP_piece 0x8, DW_OP_regx D17, DW_OP_piece 0x4

source_filename = "simd.ll"
target datalayout = "e-m:o-p:32:32-f64:32:64-v64:32:64-v128:32:128-a:0:32-n32-S32"
target triple = "armv7-apple-ios7.0"

; Function Attrs: nounwind readnone
declare void @llvm.dbg.value(metadata, metadata, metadata) #0

define <3 x float> @_TFV4simd8float2x3g9subscriptFSiVS_6float3(i32, <3 x float>, <3 x float>) !dbg !5 {
entry:
  tail call void @llvm.dbg.value(metadata <3 x float> %1, metadata !8, metadata !9), !dbg !10
  tail call void @llvm.dbg.value(metadata <3 x float> %2, metadata !8, metadata !11), !dbg !10
  %3 = icmp eq i32 %0, 0, !dbg !12
  br i1 %3, label %7, label %4, !dbg !12

; <label>:4:                                      ; preds = %entry
  %5 = icmp eq i32 %0, 1, !dbg !15
  br i1 %5, label %7, label %6, !dbg !15

; <label>:6:                                      ; preds = %4
  unreachable, !dbg !17

; <label>:7:                                      ; preds = %4, %entry
  %8 = phi <3 x float> [ %1, %entry ], [ %2, %4 ], !dbg !18
  ret <3 x float> %8, !dbg !18
}

attributes #0 = { nounwind readnone }

!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!3, !4}

!0 = distinct !DICompileUnit(language: DW_LANG_Swift, file: !1, producer: "Swift", isOptimized: false, runtimeVersion: 3, emissionKind: FullDebug, enums: !2, imports: !2)
!1 = !DIFile(filename: "simd.swift", directory: "/")
!2 = !{}
!3 = !{i32 2, !"Dwarf Version", i32 4}
!4 = !{i32 2, !"Debug Info Version", i32 3}
!5 = distinct !DISubprogram(name: "subscript.get", linkageName: "_TFV4simd8float2x3g9subscriptFSiVS_6float3", scope: !6, file: !1, type: !7, isLocal: false, isDefinition: true, isOptimized: true, unit: !0, variables: !2)
!6 = !DICompositeType(tag: DW_TAG_structure_type, name: "float2x3", scope: !0, file: !1, line: 5824, size: 256, align: 128, elements: !2, runtimeLang: DW_LANG_Swift, identifier: "_TtV4simd8float2x3")
!7 = !DISubroutineType(types: !2)
!8 = !DILocalVariable(name: "self", arg: 2, scope: !5, file: !1, line: 5897, type: !6, flags: DIFlagArtificial)
!9 = !DIExpression(DW_OP_LLVM_fragment, 0, 96)
!10 = !DILocation(line: 5897, column: 5, scope: !5)
!11 = !DIExpression(DW_OP_LLVM_fragment, 96, 96)
!12 = !DILocation(line: 5900, column: 12, scope: !13)
!13 = distinct !DILexicalBlock(scope: !14, file: !1, line: 5898, column: 7)
!14 = distinct !DILexicalBlock(scope: !5, file: !1, line: 5897, column: 9)
!15 = !DILocation(line: 5902, column: 12, scope: !16)
!16 = distinct !DILexicalBlock(scope: !14, file: !1, line: 5898, column: 7)
!17 = !DILocation(line: 0, scope: !5)
!18 = !DILocation(line: 5906, column: 5, scope: !14)
