[LLVMdev] Need Advice on AVX

David Greene dag at cray.com
Tue Nov 24 10:57:10 PST 2009


Ok, I am tracking down some bugs in our AVX stuff and came upon
an interesting conundrum.

The MOVQ instruction (MOVPQIto64rr in X86Instr64bit.td) only takes
xmm registers.  There is no ymm version since the xxm's are subregisters.

I need to be able to match a vector element extract of element 0 on a
v4i64 vector.  Obviously this is not a legal operation even with AVX
because MOVQ only operates on xmms.

So I can mark it as not legal but how should it be lowered?  I can't
bitcast to a v2i64 because the vector sizes are different.  I could
do an extract_subreg and then write a pattern to match that to MOVQ.

Anyone have other thoughts?

                              -Dave



More information about the llvm-dev mailing list