On Wed, Dec 4, 2013 at 9:01 PM, Jakub Jelinek <ja...@redhat.com> wrote: >> > My memory is fuzzy about that, but I think that was my first version which >> > didn't work, because with match_dup then it requires on the internal-fn.c >> > side to pass 4 arguments instead of just 3. I can try again though. > > Weird, now it works, dunno what I have done differently before. > Though, I've discovered a bug in internal-fn.c for the negation case. > > So is this everything you wanted?
Yes, thanks! > 2013-12-04 Jakub Jelinek <ja...@redhat.com> > Marek Polacek <pola...@redhat.com> > > * config/i386/i386.md (DWI, dwi): Add QImode and HImode cases. > (addv<mode>4, subv<mode>4, mulv<mode>4, negv<mode>3): New > expanders. > (*addv<mode>4, *subv<mode>4, *mulv<mode>4, *negv<mode>3): New insns. > > * internal-fn.c (ubsan_expand_si_overflow_neg_check): The return > value lives in res rather than target. The i386 part is OK. Thanks, Uros.