# RUN: llc -march=hexagon -run-pass hexagon-packetizer %s -o - | FileCheck %s ############################################################################## # This test case is not really hexagon specific, but we use hexagon to get # bundling. # # The goal is to verify that the BUNDLE instruction is getting the first # non-empty debug location among the bundled instructions. ############################################################################## --- | define void @test() { ret void } !0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "llvm", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !3, retainedTypes: !3) !1 = distinct !DISubprogram(name: "test", scope: !3, file: !3, line: 1, type: !2, isLocal: false, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: true, unit: !0) !2 = !DISubroutineType(types: !3) !3 = !{null} !5 = !DILocation(line: 126, column: 9, scope: !2) !6 = !DILocation(line: 321, column: 4, scope: !2) ... --- name: test tracksRegLiveness: true body: | bb.0: liveins: $r1 $r2 = L2_loadri_io $r1, 0, debug-location !5 $r3 = L2_loadri_io $r1, 0, debug-location !6 $r4 = L2_loadri_io $r1, 0 $r5 = L2_loadri_io $r1, 0, debug-location !5 $r6 = L2_loadri_io $r1, 0, debug-location !6 $r7 = L2_loadri_io $r1, 0 $r8 = L2_loadri_io $r1, 0 $r9 = L2_loadri_io $r1, 0 ... # CHECK-LABEL: name: test # CHECK: BUNDLE # CHECK-SAME: debug-location [[DL1:!DILocation([^)]+)]] # CHECK-NEXT: L2_loadri_io $r1, 0, debug-location [[DL1]] # CHECK-NEXT: L2_loadri_io $r1, 0, debug-location [[DL2:!DILocation([^)]+)]] # CHECK: BUNDLE # CHECK-SAME: debug-location [[DL1]] # CHECK-NEXT: L2_loadri_io $r1, 0{{$}} # CHECK-NEXT: L2_loadri_io $r1, 0, debug-location [[DL1]] # CHECK: BUNDLE # CHECK-SAME: debug-location [[DL2]] # CHECK-NEXT: L2_loadri_io $r1, 0, debug-location [[DL2]] # No debug-location printouts expected for the last bundle # CHECK-NOT: debug-location