1 ; RUN: llc -O0 -mtriple=powerpc-ibm-aix-xcoff -mcpu=pwr10 -stop-after=prologepilog -verify-machineinstrs < %s | \
2 ; RUN: FileCheck --check-prefix=CHECK %s
3 ; RUN: llc -O0 -mtriple=powerpc-ibm-aix-xcoff -mcpu=pwr10 -vec-extabi -stop-after=prologepilog -verify-machineinstrs < %s | \
4 ; RUN: FileCheck --check-prefix=CHECK-VEXT %s
6 ; CHECK-LABEL: name: foo
7 ; CHECK-NOT: spill-slot
8 ; CHECK-NOT: callee-saved-register: '$v31'
9 ; CHECK-NOT: callee-saved-register: '$v30'
10 ; CHECK-NOT: callee-saved-register: '$v29'
11 ; CHECK-NOT: callee-saved-register: '$v28'
12 ; CHECK-NOT: callee-saved-register: '$v27'
13 ; CHECK-NOT: callee-saved-register: '$v26'
14 ; CHECK-NOT: callee-saved-register: '$v25'
15 ; CHECK-NOT: callee-saved-register: '$v24'
16 ; CHECK-NOT: callee-saved-register: '$v23'
17 ; CHECK-NOT: callee-saved-register: '$v22'
18 ; CHECK-NOT: callee-saved-register: '$v21'
19 ; CHECK-NOT: callee-saved-register: '$v20'
21 ; CHECK-VEXT-LABEL: name: foo
22 ; CHECK-VEXT-NOT: spill-slot
23 ; CHECK-VEXT-NOT: callee-saved-register: '$v31'
24 ; CHECK-VEXT-NOT: callee-saved-register: '$v30'
25 ; CHECK-VEXT-NOT: callee-saved-register: '$v29'
26 ; CHECK-VEXT-NOT: callee-saved-register: '$v28'
27 ; CHECK-VEXT-NOT: callee-saved-register: '$v27'
28 ; CHECK-VEXT-NOT: callee-saved-register: '$v26'
29 ; CHECK-VEXT-NOT: callee-saved-register: '$v25'
30 ; CHECK-VEXT-NOT: callee-saved-register: '$v24'
31 ; CHECK-VEXT-NOT: callee-saved-register: '$v23'
32 ; CHECK-VEXT-NOT: callee-saved-register: '$v22'
33 ; CHECK-VEXT-NOT: callee-saved-register: '$v21'
34 ; CHECK-VEXT-NOT: callee-saved-register: '$v20'
41 ; CHECK-LABEL: name: spill
42 ; CHECK-NOT: spill-slot
43 ; CHECK-NOT: callee-saved-register: '$v31'
44 ; CHECK-NOT: callee-saved-register: '$v30'
45 ; CHECK-NOT: callee-saved-register: '$v29'
46 ; CHECK-NOT: callee-saved-register: '$v28'
47 ; CHECK-NOT: callee-saved-register: '$v27'
48 ; CHECK-NOT: callee-saved-register: '$v26'
49 ; CHECK-NOT: callee-saved-register: '$v25'
50 ; CHECK-NOT: callee-saved-register: '$v24'
51 ; CHECK-NOT: callee-saved-register: '$v23'
52 ; CHECK-NOT: callee-saved-register: '$v22'
53 ; CHECK-NOT: callee-saved-register: '$v21'
54 ; CHECK-NOT: callee-saved-register: '$v20'
56 ; CHECK-VEXT-LABEL: name: spill
57 ; CHECK-VEXT: spill-slot
58 ; CHECK-VEXT-NEXT: callee-saved-register: '$v31'
59 ; CHECK-VEXT: spill-slot
60 ; CHECK-VEXT-NEXT: callee-saved-register: '$v30'
61 ; CHECK-VEXT: spill-slot
62 ; CHECK-VEXT-NEXT: callee-saved-register: '$v29'
63 ; CHECK-VEXT: spill-slot
64 ; CHECK-VEXT-NEXT: callee-saved-register: '$v28'
65 ; CHECK-VEXT: spill-slot
66 ; CHECK-VEXT-NEXT: callee-saved-register: '$v27'
67 ; CHECK-VEXT: spill-slot
68 ; CHECK-VEXT-NEXT: callee-saved-register: '$v26'
69 ; CHECK-VEXT: spill-slot
70 ; CHECK-VEXT-NEXT: callee-saved-register: '$v25'
71 ; CHECK-VEXT: spill-slot
72 ; CHECK-VEXT-NEXT: callee-saved-register: '$v24'
73 ; CHECK-VEXT: spill-slot
74 ; CHECK-VEXT-NEXT: callee-saved-register: '$v23'
75 ; CHECK-VEXT: spill-slot
76 ; CHECK-VEXT-NEXT: callee-saved-register: '$v22'
77 ; CHECK-VEXT: spill-slot
78 ; CHECK-VEXT-NEXT: callee-saved-register: '$v21'
79 ; CHECK-VEXT: spill-slot
80 ; CHECK-VEXT-NEXT: callee-saved-register: '$v20'
81 define void @spill() {
83 call void asm sideeffect "nop", "~{v20},~{v21},~{v22},~{v23},~{v24},~{v25},~{v26},~{v27},~{v28},~{v29},~{v30},~{v31}"()
88 declare void @bar(i32)