https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100996
HaoChen Gui <guihaoc at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |INVALID
Status|ASSIGNED |RESOLVED
CC| |guihaoc at gcc dot gnu.org
--- Comment #1 from HaoChen Gui <guihaoc at gcc dot gnu.org> ---
(In reply to acsawdey from comment #0)
> The fusion-p10-addadd.c test case does not get vector add-add fusion when
> compiling with -m32:
>
> /home/sawdey/work/gcc/trunk/build/gcc/xgcc
> -B/home/sawdey/work/gcc/trunk/build/gcc/
> /home/sawdey/work/gcc/trunk/gcc/gcc/testsuite/gcc.target/powerpc/fusion-p10-
> addadd.c -m32 -fdiagnostics-plain-output -mcpu=power10 -O3 -dap
> -fno-ident -S
>
> typedef vector long vlong;
> vlong vaddadd(vlong a, vlong b, vlong c)
> {
> return a+b+c;
> }
>
> vaddadd:
> .LFB3:
> .cfi_startproc
> vadduwm 2,2,3 # 8 [c=4 l=4] addv4si3
> vadduwm 2,2,4 # 14 [c=4 l=4] addv4si3
> blr # 24 [c=4 l=4] simple_return
> .cfi_endproc
The vadduwm is not in P10 fusion sequence. Only vaddudm is in.