https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100996
--- Comment #2 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.