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

Reply via email to