[llvm-commits] [llvm] r79377 - in /llvm/trunk/lib/Target/X86: X86ISelLowering.cpp X86ISelLowering.h X86InstrFormats.td X86InstrSSE.td
Eric Christopher
echristo at apple.com
Wed Aug 19 00:43:07 PDT 2009
>
> Did you try writing the pattern as (set XMM0, (...))?
>
> Fixed registers work for other instructions, for example, we have:
>
> let Defs = [ECX, EFLAGS] in {
> multiclass SS42AI_pcmpistri<Intrinsic IntId128> {
> def rr : SS42AI<0x63, MRMSrcReg, (outs),
> (ins VR128:$src1, VR128:$src2, i8imm:$src3),
> "pcmpistri\t{$src3, $src2, $src1|$src1, $src2, $src3}",
> [(set ECX,
> (IntId128 VR128:$src1, VR128:$src2, imm:$src3)),
> (implicit EFLAGS)]>,
> OpSize;
>
> which produces a fixed result in ECX, doesn't the same work for XMM0?
Nope, it can be any of a number of different register types and there
is no register class for just XMM0. i.e. it comes out as MVT::Other.
We could define a custom register class for it as about the only other
way.
-eric
More information about the llvm-commits
mailing list