[llvm-dev] Using ConstantDataVector instead of ConstantVector

Mehdi Amini via llvm-dev llvm-dev at lists.llvm.org
Wed Nov 9 12:17:57 PST 2016

> On Nov 9, 2016, at 1:30 AM, Alex Susu via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>  Hello.
>    I'm curious why can't I convert a Value like
>      <16 x i16> <i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2... i16 2>
>     to ConstantVector - using llvm::dyn_cast<llvm::ConstantVector>() returns NULL.
>    However, converting it with dyn_cast to ConstantDataVector fortunately works.
>    Note that at http://llvm.org/docs/doxygen/html/classllvm_1_1ConstantDataVector.html it is written "A vector constant whose element type is a simple 1/2/4/8-byte integer or float/double", etc. This is a bit misleading, since vectors of bigger sizes can be used.

This is the *individual element* type, did you misread and thought it was the number of elements in the vector? Or to total byte size of the vector?

The implementation is clear limiting to these elements AFAICT.


More information about the llvm-dev mailing list