1; RUN: llc -O0 -mtriple=powerpc64-ibm-aix-xcoff -mcpu=pwr10 -stop-after=prologepilog -verify-machineinstrs < %s | \ 2; RUN: FileCheck --check-prefix=CHECK %s 3; RUN: llc -O0 -mtriple=powerpc64-ibm-aix-xcoff -mcpu=pwr10 -vec-extabi -stop-after=prologepilog -verify-machineinstrs < %s | \ 4; RUN: FileCheck --check-prefix=CHECK-VEXT %s 5 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' 20 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' 35define void @foo() { 36entry: 37 call void @bar(i32 0) 38 ret void 39} 40 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' 55 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' 81define void @spill() { 82entry: 83 call void asm sideeffect "nop", "~{v20},~{v21},~{v22},~{v23},~{v24},~{v25},~{v26},~{v27},~{v28},~{v29},~{v30},~{v31}"() 84 call void @bar(i32 0) 85 ret void 86} 87 88declare void @bar(i32) 89