[Bug rtl-optimization/70703] [6/7 regression] Regression in register usage on x86
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Mar 31 08:50:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70703
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Vlad, any thoughts on this?
I'll try to deal with this in the widening_mul pass too, that pass converts:
_1 = (long long unsigned int) x_4(D);
- _2 = _1 * 6700417;
+ _2 = x_4(D) w* 6700417;
_3 = _2 >> 32;
_5 = (unsigned int) _3;
but as the only user cares about the high part of the widened result, we could
convert it into:
_1 = (long long unsigned int) x_4(D);
_2 = _1 * 6700417;
_3 = _2 >> 32;
- _5 = (unsigned int) _3;
+ _5 = x_4(D) h* 6700417;
There is nothing that would attempt match.pd foldings after this.
More information about the Gcc-bugs
mailing list