[llvm-dev] BUILD_VECTOR disambiguation

Krzysztof Parzyszek via llvm-dev llvm-dev at lists.llvm.org
Tue Jul 7 07:58:13 PDT 2020


Mixed integer types are ok, but the values will get truncated to the element type of the output value.  It's pretty much what the comment says.

--
Krzysztof Parzyszek  kparzysz at quicinc.com   AI tools development

> -----Original Message-----
> From: llvm-dev <llvm-dev-bounces at lists.llvm.org> On Behalf Of Cameron
> McInally via llvm-dev
> Sent: Tuesday, July 7, 2020 9:53 AM
> To: LLVM Developers Mailing List <llvm-dev at lists.llvm.org>
> Subject: [EXT] [llvm-dev] BUILD_VECTOR disambiguation
>
> Hey devs,
>
> From ISDOpcodes.h...
>
> /// BUILD_VECTOR(ELT0, ELT1, ELT2, ELT3,...) - Return a fixed-width vector
> /// with the specified, possibly variable, elements. The number of elements
> /// is required to be a power of two. The types of the operands must all be
> /// the same and must match the vector element type, except that integer
> types /// are allowed to be larger than the element type, in which case the
> operands /// are implicitly truncated.
> BUILD_VECTOR,
>
> Must the operand types always be the same? Or could we see a BUILD_VECTOR
> with mixed integer types? E.g.:
>
> BUILD_VECTOR(i32, i32, i64, i32)
>
> Thanks,
> Cam
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev


More information about the llvm-dev mailing list