Quentin Colombet | 868ef84 | 2017-07-07 19:25:45 +0000 | [diff] [blame] | 1 | # RUN: llc -verify-machineinstrs -run-pass regallocfast -mtriple s390x-ibm-linux -o - %s | FileCheck %s |
| 2 | --- | |
| 3 | |
| 4 | @g_167 = external global [5 x i64], align 8 |
| 5 | define void @main() local_unnamed_addr { |
| 6 | ret void |
| 7 | } |
| 8 | ... |
| 9 | # Make sure the usage of different subregisters on the same virtual register |
| 10 | # does not result in invalid kill flags. |
| 11 | # PR33677 |
| 12 | --- |
| 13 | name: main |
| 14 | alignment: 2 |
| 15 | tracksRegLiveness: true |
Matthias Braun | c045c55 | 2018-10-29 20:10:42 +0000 | [diff] [blame] | 16 | # CHECK: $r0l = COPY renamable $r1l |
Quentin Colombet | 868ef84 | 2017-07-07 19:25:45 +0000 | [diff] [blame] | 17 | # Although R0L partially redefines R0Q, it must not mark R0Q as kill |
| 18 | # because R1D is still live through that instruction. |
Puyan Lotfi | 43e94b1 | 2018-01-31 22:04:26 +0000 | [diff] [blame] | 19 | # CHECK-NOT: implicit killed $r0q |
Matthias Braun | c045c55 | 2018-10-29 20:10:42 +0000 | [diff] [blame] | 20 | # CHECK-NEXT: {{\$r[0-9]+d}} = COPY renamable $r1d |
Quentin Colombet | 868ef84 | 2017-07-07 19:25:45 +0000 | [diff] [blame] | 21 | # CHECK-NEXT: LARL |
| 22 | body: | |
| 23 | bb.0: |
Matthias Braun | c045c55 | 2018-10-29 20:10:42 +0000 | [diff] [blame] | 24 | %0 : gr128bit = IMPLICIT_DEF |
Quentin Colombet | 868ef84 | 2017-07-07 19:25:45 +0000 | [diff] [blame] | 25 | %0.subreg_hl32 = COPY %0.subreg_l32 |
Matthias Braun | c045c55 | 2018-10-29 20:10:42 +0000 | [diff] [blame] | 26 | %1 : gr64bit = COPY %0.subreg_l64 |
| 27 | %2 : addr64bit = LARL @g_167 |
Puyan Lotfi | 43e94b1 | 2018-01-31 22:04:26 +0000 | [diff] [blame] | 28 | STC %1.subreg_l32, %2, 8, $noreg |
Quentin Colombet | 868ef84 | 2017-07-07 19:25:45 +0000 | [diff] [blame] | 29 | |
| 30 | ... |