On Thu, Mar 09, 2017 at 05:15:40PM -0600, Segher Boessenkool wrote: > On Thu, Mar 09, 2017 at 05:59:39PM +0100, Jakub Jelinek wrote: > > On Thu, Mar 09, 2017 at 10:52:52AM -0600, Will Schmidt wrote: > > > Per PR79941, we are folding the vec_mul{e,o}* operations improperly. Those > > > entries were added to the intrinsics-to-be-folded list where the generic > > > multiplies should have been instead. Test coverage in place was for the > > > generic multiplies, and this was missed by my testing. > > > > > > The mul[eo]* unsigned operations were missing entries in > > > builtin_function_type() > > > to indicate the overloaded arguments were unsigned. This is corrected > > > here, > > > and those operations now fold accurately to the desired instruction. > > > > This looks good to me, but I'll defer the actual review to PowerPC > > maintainers. Perhaps there was some hidden reason (xlC compatibility, > > whatever) that said that vmuleub etc. should have signed vector arguments > > and result. > > > > Also, I'd like to understand what those ALTIVEC_BUILTIN_VMULEUH_UNS etc. > > codes are for (the builtin doesn't seem to be user accessible). > > It used to be, but that was removed when mult-even was removed (which > seems to be the only thing it was used for). Mike, do you remember?
I don't recall. Perhaps it is related to: 2016-12-19 Will Schmidt <will_schm...@vnet.ibm.com> * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for early expansion of vector multiply and subtract builtins. -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email: meiss...@linux.vnet.ibm.com, phone: +1 (978) 899-4797