[llvm-commits] [llvm] r79377 - in /llvm/trunk/lib/Target/X86: X86ISelLowering.cpp X86ISelLowering.h X86InstrFormats.td X86InstrSSE.td
Eric Christopher
echristo at apple.com
Sat Aug 22 19:40:26 PDT 2009
>
> I still don't understand what the problem is here. Is the problem
> you're solving a type inference issue?
Nope.
> If so, you can fix it by doing something like:
>
>
> (set (v4i32 XMM0), ...)
>
> or better yet:
>
> (set XMM0, (v4i32 ... ))
>
> Is this the problem, or is there something else going on? We'd
> prefer to have as little custom c++ matching code as possible for
> obvious reasons :)
Quite, I tried about 10 things before going with this on Evan's
suggestion. The other idea I had was a custom register class for
XMM0, but Evan wanted to keep the number of register classes small.
Basically the problem comes when codegen wants to move the value to/
from a register - since XMM0 can be of a number of different register
types it ends up believing that this is a register of type MVT::Other
and there's no knowledge in the backend on how to do this.
I am open to other ideas, and thinking it was a problem on my end I'd
already tried the two above :)
-eric
More information about the llvm-commits
mailing list