|
| 1 | +# This test checks to make sure that when an instruction (%35 in the test) is |
| 2 | +# moved due to matching a result of a fold of two other instructions |
| 3 | +# (%16, and %17 in the test) in the legalizer, the DILocation of the |
| 4 | +# instruction that is moved (%35) is updated appropriately. |
| 5 | + |
| 6 | +# RUN: llc %s -O0 --start-before=legalizer --stop-after=legalizer -o - | FileCheck %s |
| 7 | +# CHECK-NOT: %35:_(s32) = G_CONSTANT i32 0, debug-location !71 |
| 8 | +# CHECK: %35:_(s32) = G_CONSTANT i32 0, debug-location !DILocation(line: 0, |
| 9 | +--- | |
| 10 | + source_filename = "/tmp/main.ll" |
| 11 | + target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128" |
| 12 | + target triple = "arm64-apple-macosx14.0.0" |
| 13 | + |
| 14 | + define i32 @main(i32 %0, ptr %1) #0 !dbg !57 { |
| 15 | + entry: |
| 16 | + ret i32 0, !dbg !71 |
| 17 | + } |
| 18 | + !3 = !DIFile(filename: "main.swift", directory: "/Volumes/Data/swift") |
| 19 | + !23 = distinct !DICompileUnit(language: DW_LANG_Swift, file: !3, sdk: "blah.sdk") |
| 20 | + !57 = distinct !DISubprogram(name: "main", unit: !23) |
| 21 | + !64 = distinct !DILexicalBlock(scope: !57, column: 1) |
| 22 | + !66 = distinct !DILexicalBlock(scope: !64, column: 1) |
| 23 | + !68 = !DILocation(line: 12, scope: !66) |
| 24 | + !70 = distinct !DILexicalBlock(scope: !66, column: 1) |
| 25 | + !71 = !DILocation(line: 13, scope: !70) |
| 26 | +name: main |
| 27 | +registers: |
| 28 | + - { id: 0, class: _, preferred-register: '' } |
| 29 | + - { id: 1, class: _, preferred-register: '' } |
| 30 | + - { id: 2, class: _, preferred-register: '' } |
| 31 | + - { id: 3, class: _, preferred-register: '' } |
| 32 | + - { id: 4, class: _, preferred-register: '' } |
| 33 | + - { id: 5, class: _, preferred-register: '' } |
| 34 | + - { id: 6, class: _, preferred-register: '' } |
| 35 | + - { id: 7, class: _, preferred-register: '' } |
| 36 | + - { id: 8, class: _, preferred-register: '' } |
| 37 | + - { id: 9, class: _, preferred-register: '' } |
| 38 | + - { id: 10, class: _, preferred-register: '' } |
| 39 | + - { id: 11, class: _, preferred-register: '' } |
| 40 | + - { id: 12, class: _, preferred-register: '' } |
| 41 | + - { id: 13, class: _, preferred-register: '' } |
| 42 | + - { id: 14, class: _, preferred-register: '' } |
| 43 | + - { id: 15, class: gpr64, preferred-register: '' } |
| 44 | + - { id: 18, class: _, preferred-register: '' } |
| 45 | + - { id: 19, class: _, preferred-register: '' } |
| 46 | + - { id: 20, class: _, preferred-register: '' } |
| 47 | + - { id: 21, class: _, preferred-register: '' } |
| 48 | + - { id: 22, class: _, preferred-register: '' } |
| 49 | + - { id: 23, class: _, preferred-register: '' } |
| 50 | + - { id: 24, class: _, preferred-register: '' } |
| 51 | + - { id: 25, class: _, preferred-register: '' } |
| 52 | + - { id: 26, class: _, preferred-register: '' } |
| 53 | + - { id: 27, class: _, preferred-register: '' } |
| 54 | + - { id: 28, class: _, preferred-register: '' } |
| 55 | + - { id: 29, class: _, preferred-register: '' } |
| 56 | + - { id: 30, class: _, preferred-register: '' } |
| 57 | + - { id: 31, class: _, preferred-register: '' } |
| 58 | + - { id: 32, class: _, preferred-register: '' } |
| 59 | + - { id: 33, class: _, preferred-register: '' } |
| 60 | + - { id: 34, class: _, preferred-register: '' } |
| 61 | +body: | |
| 62 | + bb.1.entry: |
| 63 | + %16:_(s8) = G_CONSTANT i8 0, debug-location !68 |
| 64 | + %17:_(s32) = G_ANYEXT %16(s8), debug-location !68 |
| 65 | + $w2 = COPY %17(s32), debug-location !68 |
| 66 | + %35:_(s32) = G_CONSTANT i32 0, debug-location !71 |
| 67 | + $w0 = COPY %35(s32), debug-location !71 |
0 commit comments