[LLVMdev] llvm::ShuffleVectorInst yields incorrect vector length in 2.6
Bob Wilson
bob.wilson at apple.com
Tue Feb 2 08:38:39 PST 2010
On Feb 2, 2010, at 4:56 AM, Maarten Hoeben wrote:
>
> 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 type of %14 should be <2 x float>, since the elements are floats and the mask has 2 entries. What do you mean when you write that it has "the length of vector 1"?
>
> 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.
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
More information about the llvm-dev
mailing list