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.

Reply via email to