This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Add vec_pack_ufix_trunc_{v4df,v2df} expanders (take 2)
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~