[Bug target/69493] Poor code generation for return of struct containing vectors on PPC64LE
bergner at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Sep 27 18:37:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69493
Peter Bergner <bergner at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |bergner at gcc dot gnu.org
--- Comment #6 from Peter Bergner <bergner at gcc dot gnu.org> ---
A simpler test case that shows the same problem when compiling for POWER8. When
compiling for POWER9, we get the code we want/expect:
bergner@pike:~/gcc/BUGS/PR70053$ cat pr69493-2.c
typedef struct
{
__vector double vx0;
__vector double vx1;
} vec_t;
vec_t
foo (__vector double a, __vector double b)
{
vec_t result;
result.vx0 = a;
result.vx1 = b;
return result;
}
bergner@pike:~/gcc/BUGS/PR70053$
/home/bergner/gcc/build/gcc-fsf-mainline-pr70053-debug/gcc/xgcc
-B/home/bergner/gcc/build/gcc-fsf-mainline-pr70053-debug/gcc -S -O2
-mcpu=power8 pr69493-2.c
bergner@pike:~/gcc/BUGS/PR70053$ cat pr69493-2.s
...
foo:
addi 8,1,-96
li 10,32
xxpermdi 34,34,34,2
xxpermdi 35,35,35,2
li 9,48
stxvd2x 34,8,10
stxvd2x 35,8,9
lxvd2x 34,8,10
lxvd2x 35,8,9
xxpermdi 34,34,34,2
xxpermdi 35,35,35,2
blr
bergner@pike:~/gcc/BUGS/PR70053$
/home/bergner/gcc/build/gcc-fsf-mainline-pr70053-debug/gcc/xgcc
-B/home/bergner/gcc/build/gcc-fsf-mainline-pr70053-debug/gcc -S -O2
-mcpu=power9 pr69493-2.c
bergner@pike:~/gcc/BUGS/PR70053$ cat pr69493-2.s
...
foo:
blr
More information about the Gcc-bugs
mailing list