On 17/08/12 15:04, Richard Earnshaw wrote:
The fix is to make is_widening_mult_p note that it has been called with
a WIDEN_MULT_EXPR and rather than decompose the operands again, to
simply extract the existing operands, which have already been formulated
correctly for a widening multiply operation.

As long as the existing test cases work, I think the only problem with this idea is if some architecture has a wider range of widening multiply-and-accumulate than it does plain widening multiply.

If no such architecture exists then this is fine with me, for whatever that's worth. IIRC, ARM is one of only two architectures (in GCC) with widening multiplies that widen more than twice the width, and, last I looked, the only one that has the patterns to use this code, so it's probably safe.

Andrew

Reply via email to