120 lines · plain
1; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc-unknown-linux-gnu | \2; RUN: FileCheck %s -check-prefix=PPC32-LINUX-NOFP3 4; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc-unknown-linux-gnu \5; RUN: -frame-pointer=all | FileCheck %s -check-prefix=PPC32-LINUX-FP6 7; RUN: llc -verify-machineinstrs < %s -mcpu=ppc -mtriple=powerpc64-unknown-linux-gnu | \8; RUN: FileCheck %s -check-prefix=PPC64-LINUX-NOFP9 10; RUN: llc -verify-machineinstrs < %s -mcpu=ppc -mtriple=powerpc64-unknown-linux-gnu \11; RUN: -frame-pointer=all | FileCheck %s -check-prefix=PPC64-LINUX-FP12 13; RUN: llc -verify-machineinstrs < %s -mcpu=pwr4 -mattr=-altivec \14; RUN: -mtriple=powerpc-ibm-aix-xcoff | FileCheck %s \15; RUN: -check-prefix=PPC32-AIX-NOFP16 17; RUN: llc -verify-machineinstrs < %s -mcpu=pwr4 -mattr=-altivec \18; RUN: -mtriple=powerpc-ibm-aix-xcoff -frame-pointer=all | FileCheck %s \19; RUN: -check-prefix=PPC32-AIX-FP20 21; RUN: llc -verify-machineinstrs < %s -mcpu=pwr4 -mattr=-altivec \22; RUN: -mtriple=powerpc64-ibm-aix-xcoff | FileCheck %s \23; RUN: -check-prefix=PPC64-AIX-NOFP24 25; RUN: llc -verify-machineinstrs < %s -mcpu=pwr4 -mattr=-altivec \26; RUN: -mtriple=powerpc64-ibm-aix-xcoff -frame-pointer=all | FileCheck %s \27; RUN: -check-prefix=PPC64-AIX-FP28 29define ptr @f1() nounwind {30 %tmp = alloca i32, i32 8191 ; <ptr> [#uses=1]31 ret ptr %tmp32}33 34; - The stdux is used to update the back-chain link when allocated frame is large35; that we can not address it by a 16-bit signed integer;36; - The linkage area, if there is one, is still on the top of the stack after37; `alloca` space.38 39; PPC32-LINUX-NOFP-LABEL: f140; PPC32-LINUX-NOFP: lis 0, -141; PPC32-LINUX-NOFP-NEXT: ori 0, 0, 3275242; PPC32-LINUX-NOFP-NEXT: stwux 1, 1, 043; PPC32-LINUX-NOFP-NOT: stwux44; PPC32-LINUX-NOFP: mr 0, 3145; PPC32-LINUX-NOFP-DAG: addi 3, 1, 2046; PPC32-LINUX-NOFP-DAG: lwz 31, 0(1)47; PPC32-LINUX-NOFP-NEXT: mr 1, 3148; PPC32-LINUX-NOFP-NEXT: mr 31, 049; PPC32-LINUX-NOFP-NEXT: blr50 51; PPC32-LINUX-FP-LABEL: f152; PPC32-LINUX-FP: lis 0, -153; PPC32-LINUX-FP-NEXT: ori 0, 0, 3275254; PPC32-LINUX-FP-NEXT: stwux 1, 1, 055; PPC32-LINUX-FP-NOT: stwux56; PPC32-LINUX-FP: mr 31, 157; PPC32-LINUX-FP-NEXT: addi 3, 31, 1658; PPC32-LINUX-FP-NEXT: lwz 31, 0(1)59; PPC32-LINUX-FP-NEXT: lwz 0, -4(31)60; PPC32-LINUX-FP-NEXT: mr 1, 3161; PPC32-LINUX-FP-NEXT: mr 31, 062; PPC32-LINUX-FP-NEXT: blr63 64; PPC64-LINUX-NOFP-LABEL: f1:65; PPC64-LINUX-NOFP: lis 0, -166; PPC64-LINUX-NOFP-NEXT: ori 0, 0, 3272067; PPC64-LINUX-NOFP-NEXT: stdux 1, 1, 068; PPC64-LINUX-NOFP-NEXT: addi 3, 1, 5269; PPC64-LINUX-NOFP-NEXT: ld 1, 0(1)70; PPC64-LINUX-NOFP-NEXT: blr71 72; PPC64-LINUX-FP-LABEL: f1:73; PPC64-LINUX-FP: lis 0, -174; PPC64-LINUX-FP-NEXT: ori 0, 0, 3270475; PPC64-LINUX-FP-NEXT: std 31, -8(1)76; PPC64-LINUX-FP-NEXT: stdux 1, 1, 077; PPC64-LINUX-FP-NEXT: mr 31, 178; PPC64-LINUX-FP-NEXT: addi 3, 31, 6079; PPC64-LINUX-FP-NEXT: ld 1, 0(1)80; PPC64-LINUX-FP-NEXT: ld 31, -8(1)81; PPC64-LINUX-FP-NEXT: blr82 83; PPC32-AIX-NOFP-LABEL: f184; PPC32-AIX-NOFP: lis 0, -185; PPC32-AIX-NOFP-NEXT: ori 0, 0, 3273686; PPC32-AIX-NOFP-NEXT: stwux 1, 1, 087; PPC32-AIX-NOFP-NEXT: addi 3, 1, 3688; PPC32-AIX-NOFP-NEXT: lwz 1, 0(1)89; PPC32-AIX-NOFP-NEXT: blr90 91; PPC32-AIX-FP-LABEL: f192; PPC32-AIX-FP: lis 0, -193; PPC32-AIX-FP-NEXT: stw 31, -4(1)94; PPC32-AIX-FP-NEXT: ori 0, 0, 3273695; PPC32-AIX-FP-NEXT: stwux 1, 1, 096; PPC32-AIX-FP-NEXT: mr 31, 197; PPC32-AIX-FP-NEXT: addi 3, 31, 3298; PPC32-AIX-FP-NEXT: lwz 1, 0(1)99; PPC32-AIX-FP-NEXT: lwz 31, -4(1)100; PPC32-AIX-FP-NEXT: blr101 102; PPC64-AIX-NOFP-LABEL: f1103; PPC64-AIX-NOFP: lis 0, -1104; PPC64-AIX-NOFP-NEXT: ori 0, 0, 32720105; PPC64-AIX-NOFP-NEXT: stdux 1, 1, 0106; PPC64-AIX-NOFP-NEXT: addi 3, 1, 52107; PPC64-AIX-NOFP-NEXT: ld 1, 0(1)108; PPC64-AIX-NOFP-NEXT: blr109 110; PPC64-AIX-FP-LABEL: f1111; PPC64-AIX-FP: lis 0, -1112; PPC64-AIX-FP-NEXT: std 31, -8(1)113; PPC64-AIX-FP-NEXT: ori 0, 0, 32704114; PPC64-AIX-FP-NEXT: stdux 1, 1, 0115; PPC64-AIX-FP-NEXT: mr 31, 1116; PPC64-AIX-FP-NEXT: addi 3, 31, 60117; PPC64-AIX-FP-NEXT: ld 1, 0(1)118; PPC64-AIX-FP-NEXT: ld 31, -8(1)119; PPC64-AIX-FP-NEXT: blr120