https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86197
Bug ID: 86197 Summary: POWERPC: float128 parameter passing Product: gcc Version: 7.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: lei at ca dot ibm.com Target Milestone: --- Float128 should be considered qualified vector arguments and should be passed in vector registers for homogeneous aggregates of up to 8 members. Currently for homogeneous aggregates of 5+, they are being passed via the stack. $ cat a.c struct E5 { __float128 a[5]; }; __float128 testfp128_05(struct E5 a) { return a.a[4]; } Generated asm: testfp128_05: std 3,32(1) std 4,40(1) std 5,48(1) std 6,56(1) std 7,64(1) std 8,72(1) std 9,80(1) std 10,88(1) lxv 34,96(1) blr Compiler version: gcc (GCC) 7.3.0