On 11/01/2011 06:35 AM, Jakub Jelinek wrote: > ... disadvantage is that the stmts in the new > pattern are now in vcmppd; vandpd; vaddpd; vcmppd; vandpd; vaddpd order > instead of vcmppd; vcmppd; vandpd; vandpd; vaddpd; vaddpd; (not sure why > the scheduler didn't change it, but on the other side it is scheduler's > job).
I wonder if the scheduling description didn't get updated properly? If the scheduler believes that the each insn takes 1 cycle, and there is only one pipe for them, it won't reorder anything. > * config/i386/i386-protos.h (ix86_expand_adjust_ufix_to_sfix_si): New > prototype. > * config/i386/i386.c (ix86_expand_adjust_ufix_to_sfix_si): New > function. > * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): Use > it. > (ssepackfltmode): New mode attr. > (vec_pack_ufix_trunc_<mode>): New expander. Looks good to me. r~