[LLVMdev] llvm::ShuffleVectorInst yields incorrect vector length in 2.6

Maarten Hoeben
Tue, 02 Feb 2010 12:56:09 -0000

Hi,

When I emit the llvm::ShuffleVectorInst instruction from my code generator
the result vector has the length of vector 1, instead of the element type of
vector 1 and the length of the mask vector;

  %13 = load <3 x float>* %w                      ; <<3 x
float>> [#uses=0]
  %14 = shufflevector <3 x float> %13, <3 x float> undef, <2 x
i32> <i32 1,
i32 0> ; <<3 x float>> [#uses=0]

The documentation reads;

"The result of the instruction is a vector whose length is the same as the
shuffle mask and whose element type is the same as the element type of the
first two operands."

Is this a bug, or am I misusing the ShuffleVectorInst instruction?

Dumping the individual parameters before calling the ShuffleVectorInst
yields;

  %13 = load <3 x float>* %w                      ; <<3 x
float>> [#uses=0]
<3 x float> undef
<2 x i32> <i32 1, i32 0>

Any suggesion? Thanks in advance!

Regards,

Maarten Hoeben
--
View this message in context:
http://old.nabble.com/llvm%3A%3AShuffleVectorInst-yields-incorrect-vector-length-in-2.6-tp27419900p27419900.html
Sent from the LLVM - Dev mailing list archive at Nabble.com.