xref: /llvm-project/llvm/test/DebugInfo/MIR/AArch64/subreg-fragment-overflow.mir (revision f85c6b79f3cea76c1a62444f85d1926168d0ea78)
1*f85c6b79SAdrian Prantl# RUN: llc -mtriple aarch64-linux-gnu -start-after=livedebugvalues -filetype=obj -o - %s \
2*f85c6b79SAdrian Prantl# RUN:     | llvm-dwarfdump - | FileCheck %s
3*f85c6b79SAdrian Prantl# The value needs to be composed of sub-registers, but the
4*f85c6b79SAdrian Prantl# sub-registers cross the fragment boundary.
5*f85c6b79SAdrian Prantl# CHECK: DW_OP_piece 0x8, DW_OP_regx B16, DW_OP_piece 0x8
6*f85c6b79SAdrian Prantl--- |
7*f85c6b79SAdrian Prantl  target triple = "aarch64-none-linux-android21"
8*f85c6b79SAdrian Prantl  define linkonce_odr dso_local void @_f() !dbg !1590 {
9*f85c6b79SAdrian Prantl  entry:
10*f85c6b79SAdrian Prantl    ret void, !dbg !1809
11*f85c6b79SAdrian Prantl  }
12*f85c6b79SAdrian Prantl  declare i32 @__gxx_personality_v0(...)
13*f85c6b79SAdrian Prantl  !llvm.dbg.cu = !{!0}
14*f85c6b79SAdrian Prantl  !llvm.module.flags =  !{!1586,!1587}
15*f85c6b79SAdrian Prantl  !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None)
16*f85c6b79SAdrian Prantl  !1 = !DIFile(filename: "bug.cpp", directory: "/")
17*f85c6b79SAdrian Prantl  !1586 = !{i32 2, !"Debug Info Version", i32 3}
18*f85c6b79SAdrian Prantl  !1587 = !{i32 7, !"frame-pointer", i32 1}
19*f85c6b79SAdrian Prantl  !1590 = distinct !DISubprogram(name: "f", scope: !0, file: !1, line: 278, type: !1591, scopeLine: 279, flags: DIFlagPrototyped, unit: !0, declaration: !1593)
20*f85c6b79SAdrian Prantl  !1591 = !DISubroutineType(types: !1592)
21*f85c6b79SAdrian Prantl  !1592 = !{null  }
22*f85c6b79SAdrian Prantl  !1593 = !DISubprogram(name: "f", linkageName: "_f", scope: !0, file: !1, line: 195, type: !1591, scopeLine: 195, flags:
23*f85c6b79SAdrian Prantl  DIFlagProtected
24*f85c6b79SAdrian Prantl  , spFlags: DISPFlagOptimized)
25*f85c6b79SAdrian Prantl  !1694 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "uint8x8x3_t", file: !1, line: 235, size: 192, flags: DIFlagTypePassByValue, elements: !1695, identifier: "_ZTS11uint8x8x3_t")
26*f85c6b79SAdrian Prantl  !1695 = !{}
27*f85c6b79SAdrian Prantl  !1715 = !DILocalVariable(name: "__ret", scope: !1590, file: !1, line: 379, type: !1694)
28*f85c6b79SAdrian Prantl  !1809 = !DILocation(line: 0, scope: !1590   )
29*f85c6b79SAdrian Prantl---
30*f85c6b79SAdrian Prantlname:            _f
31*f85c6b79SAdrian Prantlbody:             |
32*f85c6b79SAdrian Prantl  bb.0.entry:
33*f85c6b79SAdrian Prantl    renamable $d16_d17_d18 = LD3Threev8b killed renamable $x15, debug-location !1809
34*f85c6b79SAdrian Prantl    DBG_VALUE $d16_d17_d18, $noreg, !1715, !DIExpression(DW_OP_LLVM_fragment, 64, 64), debug-location !1809
35