[cfe-dev] Casting scalars to vectors

John Thompson john.thompson.jtsoftware at gmail.com
Mon Apr 19 15:00:43 PDT 2010


My colleague pointed out that it's not a cast, but a literal, which Clang
should support.

-John

On Mon, Apr 19, 2010 at 11:45 AM, John Thompson <
john.thompson.jtsoftware at gmail.com> wrote:

> According to the AltiVec standard (section 2.4.6 in
> http://www.freescale.com/files/32bit/doc/ref_manual/ALTIVECPIM.pdf),
> casting a scalar to a vector is illegal, yet gcc seems to support it, as
> seen in many of those little files in the PS3 SDK in
> target\ppu\include\bits, which have statements like:
>
> vec_uint4 mask = (vec_uint4)(vec_int4)(-1);
> where vec_uint4 and vec_int4 are typedefs for vector types, i.e.:
>
> typedef vector int vec_int4;
>
> What does this actually do? I'm guessing it's supposed to fill the vector
> components with -1.
>
> How should this be handled in Clang?
> I filed a Bugzilla bug 6846 on this.
>
> If Clang should support it
> , I might be able to take a crack at it, with a little guidance.
>
> --
> John Thompson
> John.Thompson.JTSoftware at gmail.com
>
>


-- 
John Thompson
John.Thompson.JTSoftware at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20100419/2bb0a411/attachment.html>


More information about the cfe-dev mailing list