[X86] combineTargetShuffle - commute VPERMV3 shuffles so any load is on the RHS
[llvm-project.git] / llvm / test / CodeGen / SystemZ / regalloc-fast-invalid-kill-flag.mir
blob917cc776e3ef094775ee449426ce4b2cde51305b
1 # RUN: llc -verify-machineinstrs -run-pass regallocfast -mtriple s390x-ibm-linux -o - %s | FileCheck %s
2 # RUN: llc -verify-machineinstrs -passes=regallocfast -mtriple s390x-ibm-linux -o - %s | FileCheck %s
3 --- |
4   
5   @g_167 = external global [5 x i64], align 8
6   define void @main() local_unnamed_addr {
7     ret void
8   }
9 ...
10 # Make sure the usage of different subregisters on the same virtual register
11 # does not result in invalid kill flags.
12 # PR33677
13 ---
14 name:            main
15 alignment:       4
16 tracksRegLiveness: true
17 # CHECK: $r0l = COPY renamable $r1l
18 # Although R0L partially redefines R0Q, it must not mark R0Q as kill
19 # because R1D is still live through that instruction.
20 # CHECK-NOT: implicit killed $r0q
21 # CHECK-NEXT: {{\$r[0-9]+d}} = COPY renamable $r1d
22 # CHECK-NEXT: LARL
23 body:             |
24   bb.0:
25     %0 : gr128bit = IMPLICIT_DEF
26     %0.subreg_l32 = COPY %0.subreg_ll32
27     %1 : gr64bit = COPY %0.subreg_l64
28     %2 : addr64bit = LARL @g_167
29     STC %1.subreg_l32, %2, 8, $noreg
31 ...