This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]