------- Comment #4 from pinskia at gcc dot gnu dot org  2007-04-03 06:33 -------
To reproduce this on the trunk use "#define PAR i*2+1000-i-i" instead for the
complex one.

For PPC, VARIABLE_PAR is actually slower, as it tries to use (long unsigned
int) i * 8 as the index and PPC does not have that as an index mode.

And even the RTL optimizers are able to remove the i*2-i-i as we get:
((int) ((unsigned int) i + 1000) - i)
in final_cleanup so we were able to clean up one -i but not both on the tree
level.

The x86 issue is a target issue and I will report this other issue not saying
i*2+1000-i-i is 1000 as a differnet issue.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pinskia at gcc dot gnu dot
                   |                            |org
          Component|middle-end                  |target
           Keywords|                            |missed-optimization
            Summary|Misoptimization of constant |addressing modes are not
                   |function expressions        |selected correcly for x86
                   |                            |always


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31263

Reply via email to