This fixes a complication on top of D87276. If we are sext-ing around a mul with the two operands that are the same, instcombine will helpfully convert one of the sext to a zext. Reverse that so that we again generate a reduction.
Details
Details
Diff Detail
Diff Detail
Event Timeline
Comment Actions
So this can't be fixed by changing the IsVMLAV logic to accept mul with differing extending inputs then?
Comment Actions
It could probably be done either way, but this seemed simpler when I wrote it. I was trying to keep the functions cleaner. Otherwise they will have to start looking backwards from the mul (which has two operands the same) up to the extend to check it's type.