https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117251
--- Comment #11 from Michael Meissner <meissner at gcc dot gnu.org> ---
For singlebuff.c, there is a clear improvement when using the XXEVAL
instruction:
XXEVAL TRUNK GCC14 GCC13 GCC12 GCC11
------ ----- ----- ----- ----- -----
-O3: 4.46 5.40 5.40 5.35 5.36 7.54
The instruction summaries for singlebuff.c are:
XXEVAL Trunk GCC14 GCC13 GCC12
------ ----- ----- ----- -----
Fuse VANDC -> VXOR 210 600 600 600 600
Fuse VXOR -> VXOR --- 240 240 120 120
XXEVAL fuse ANDC -> XOR 390 --- --- --- ---
XXEVAL fuse XOR -> XOR 240 --- --- --- ---
Spill vector to stack 113 379 379 382 382
Load spilled vector from stack 333 796 796 757 757
Vector moves 34 80 80 119 119
Vector rotate right 696 696 696 696 696
XXLANDC or VANDC 210 600 600 600 600
XXLXOR or VXOR 954 1,824 1,824 1,824 1,824
XXSPLTIB and VEXTSB2D to load constants 96 96 96 96 96