This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Vector shuffling
- From: Chris Lattner <clattner at apple dot com>
- To: Artem Shinkarov <artyom dot shinkaroff at gmail dot com>
- Cc: gcc-patches at gcc dot gnu dot org, Richard Guenther <richard dot guenther at gmail dot com>
- Date: Sun, 15 Aug 2010 09:07:48 -0700
- Subject: Re: Vector shuffling
- References: <AANLkTi=LX863_tHsONocW2arP1b6ax9JCwxvuzcEPmr-@mail.gmail.com>
On Aug 15, 2010, at 7:30 AM, Artem Shinkarov wrote:
> The patch implements vector shuffling according to the OpenCL
> standard. The patch introduces builtin function __builtin_shuffle
> which accepts two or three parameters: __builtin_shuffle (vec, mask)
> or __builtin_shuffle (vec0, vec1, mask) and returns a shuffled vector.
>
> Function is trying to dispatch shuffling to the hardware-specific
> shuffling instructions via new target hooks. If this attempt fails,
> function expands shuffling piecewise.
Great, thanks for working on this. In the effort to make free software compilers agree with each other in this case, could you consider implementing the same extension that Clang provides?
http://clang.llvm.org/docs/LanguageExtensions.html#__builtin_shufflevector
The major difference is the naming of the builtin and that the index list is taken as a series of variadic arguments.
-Chris