This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: SSE5 patches part 2
Michael Meissner wrote:
Please do not use unspecs, unless you really can't describe
instruction with existing RTL codes. The problem with uspecs is, that
they hide all of the insn details, so various optimization passes
(combine!) can't do nothing with it.
I plan to do so in the future. Note however, that the pperm, permps,
permpd
instructions can't really be defined by RTL. The special case of using
pperm
to sign/zero extend or pack can be expressable, but you need to load the
funny
constant that does the proper permutation.
I didn't investigate this in detail, but you could use pshuf insns as an
example how to use funny constants.
Just to expound on the pperm and perm{s,d} instructions.
Thanks for your kind explanation! The control byte (loaded to xmm reg
and not an immediate value!) is really "funny", in the sense that it
changes the operation of the insn. I fully agree with you, that this
insn is one of the candidates for unspec.
Thanks again,
Uros.