[RISCV][VLOPT] Add vector narrowing integer right shift instructions to isSupportedIn...
[llvm-project.git] / llvm / test / CodeGen / PowerPC / prolog_vec_spills.mir
blob59ab2fce083c780b7077305934d88d6984a27307
1 # RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr9 -run-pass=prologepilog -ppc-enable-pe-vector-spills %s -o - | FileCheck %s
3 ---
4 name:            test1BB
5 alignment:       16
6 tracksRegLiveness: true
7 liveins:
8 body:             |
9   bb.0.entry:
10     $r14 = IMPLICIT_DEF
11     $r15 = IMPLICIT_DEF
12     $r16 = IMPLICIT_DEF
13     $f0 = IMPLICIT_DEF
14     $v20 = IMPLICIT_DEF
15     BLR8 implicit undef $lr8, implicit undef $rm
17 # Use mtvsrdd to save two GPRs in a single instruction
18 # CHECK-LABEL: name:            test1BB
19 # CHECK: body:             |
20 # CHECK:      liveins: $x14, $x15, $x16, $v20
21 # CHECK: $v0 = MTVSRDD killed $x14, killed $x15
22 # CHECK-NEXT: $vf1 = MTVSRD killed $x16
23 # CHECK: $x16 = MFVSRD killed $vf1
24 # CHECK-NEXT: $x15 = MFVSRLD $v0
25 # CHECK-NEXT: $x14 = MFVSRD killed $vf0
26 ...
28 ---
29 name:            test2BBs
30 alignment:       16
31 tracksRegLiveness: true
32 liveins:
33 body:             |
34   bb.0.entry:
35     successors: %bb.1, %bb.2
37     $cr0 = IMPLICIT_DEF
38     BCC 4, killed renamable $cr0, %bb.2
39     B %bb.1
41   bb.1:
42     $r14 = IMPLICIT_DEF
43     $r15 = IMPLICIT_DEF
44     $r16 = IMPLICIT_DEF
45     $r3 = IMPLICIT_DEF
46     B %bb.3
48   bb.2:
49     $r3 = IMPLICIT_DEF
51   bb.3:
52     BLR8 implicit undef $lr8, implicit undef $rm
54 ## The spilled-to registers have to be marked as live-in so that they will not be
55 ## clobbered before restored in the epilogue.
56 # CHECK-LABEL: name:            test2BB
57 # CHECK: body:             |
58 # CHECK:        $v0 = MTVSRDD killed $x14, killed $x15
59 # CHECK-NEXT:   $vf1 = MTVSRD killed $x16
60 # CHECK:      bb.2:
61 # CHECK-NEXT:   successors: %bb.3
62 # CHECK-NEXT:   liveins: $v0, $v1
63 # CHECK:      bb.3:
64 # CHECK-NEXT:   liveins: $v0, $v1
65 # CHECK:        $x16 = MFVSRD killed $vf1
66 # CHECK-NEXT:   $x15 = MFVSRLD $v0
67 # CHECK-NEXT:   $x14 = MFVSRD killed $vf0
68 ...