SplitVectorOp from CopyFromReg

Hello,

I have a kernel that's swizzling a vector inside a loop. The vector was
created before the loop. The first node in the dag is an extract subvector
which calls into SplitVectorOp. The issue is that the node passed to it
comes from a CopyFromReg and SplitVectorOp doesn't know what to do. Is
there a reason why SplitVectorOp doesn't handle CopyFromReg nodes? If not,
can I submit a patch to add support?

Thanks,
Javier

Hi Javier,

I have a kernel that's swizzling a vector inside a loop. The vector was
created before the loop. The first node in the dag is an extract subvector
which calls into SplitVectorOp. The issue is that the node passed to it
comes from a CopyFromReg and SplitVectorOp doesn't know what to do. Is
there a reason why SplitVectorOp doesn't handle CopyFromReg nodes? If not,
can I submit a patch to add support?

a testcase would be helpful.

Ciao,

Duncan.

Hi Duncan,

Attached is the .ll file I'm trying to compile. The first shufflevector
instruction expansion adds the extract_subvector node which in turns tries
to split the incoming vector in half. I'm using an LLVM 2.4 based branch
and realize that the names have changed. In the TOT SplitVectorOp is called
SplitVectorResult. Both don't handle CopyFromReg nodes.

Thanks,
Javier