r242297 - [PPC64LE] Fix vec_sld semantics for little endian
Hans Wennborg
hans at chromium.org
Fri Jul 17 08:59:32 PDT 2015
Merged in r242531.
Thanks,
Hans
On Fri, Jul 17, 2015 at 8:46 AM, Hal Finkel <hfinkel at anl.gov> wrote:
> Hi Hans,
>
> I approve this for the release branch.
>
> Thanks again,
> Hal
>
> ----- Original Message -----
>> From: "Bill Schmidt" <wschmidt at linux.vnet.ibm.com>
>> To: cfe-commits at cs.uiuc.edu
>> Sent: Wednesday, July 15, 2015 10:45:53 AM
>> Subject: r242297 - [PPC64LE] Fix vec_sld semantics for little endian
>>
>> Author: wschmidt
>> Date: Wed Jul 15 10:45:53 2015
>> New Revision: 242297
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=242297&view=rev
>> Log:
>> [PPC64LE] Fix vec_sld semantics for little endian
>>
>> The vec_sld interface provides access to the vsldoi instruction.
>> Unlike most of the vec_* interfaces, we do not attempt to change the
>> generated code for vec_sld based on the endian mode. It is too
>> difficult to correctly infer the desired semantics because of
>> different element types, and the corrected instruction sequence is
>> expensive, involving loading a permute control vector and performing
>> a
>> generalized permute.
>>
>> For GCC, this was implemented as "Don't touch the vec_sld"
>> implementation. When it came time for the LLVM implementation, I did
>> the same thing. However, this was hasty and incorrect. In LLVM's
>> version of altivec.h, vec_sld was previously defined in terms of the
>> vec_perm interface. Because vec_perm semantics are adjusted for
>> little endian, this means that leaving vec_sld untouched causes it to
>> generate something different for LE than for BE. Not good.
>>
>> This patch adjusts the form of vec_perm that is used for vec_sld and
>> vec_vsldoi, effectively undoing the modifications so that the same
>> vsldoi instruction will be generated for both BE and LE.
>>
>> There is an accompanying back-end patch to take care of some small
>> ripple effects caused by these changes.
>>
>> Modified:
>> cfe/trunk/lib/Headers/altivec.h
>>
>> Modified: cfe/trunk/lib/Headers/altivec.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/altivec.h?rev=242297&r1=242296&r2=242297&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Headers/altivec.h (original)
>> +++ cfe/trunk/lib/Headers/altivec.h Wed Jul 15 10:45:53 2015
>> @@ -6563,119 +6563,218 @@ static vector signed char __ATTRS_o_ai v
>> vector signed char
>> __b,
>> unsigned const int
>> __c) {
>> unsigned char __d = __c & 0x0F;
>> +#ifdef __LITTLE_ENDIAN__
>> + return vec_perm(
>> + __b, __a,
>> + (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
>> 20 - __d,
>> + 21 - __d, 22 - __d, 23 - __d, 24 - __d,
>> 25 - __d,
>> + 26 - __d, 27 - __d, 28 - __d, 29 - __d,
>> 30 - __d,
>> + 31 - __d));
>> +#else
>> return vec_perm(
>> __a, __b,
>> (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d +
>> 4, __d + 5,
>> __d + 6, __d + 7, __d + 8, __d + 9, __d
>> + 10,
>> __d + 11, __d + 12, __d + 13, __d + 14,
>> __d + 15));
>> +#endif
>> }
>>
>> static vector unsigned char __ATTRS_o_ai vec_sld(vector unsigned
>> char __a,
>> vector unsigned
>> char __b,
>> unsigned const int
>> __c) {
>> unsigned char __d = __c & 0x0F;
>> +#ifdef __LITTLE_ENDIAN__
>> + return vec_perm(
>> + __b, __a,
>> + (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
>> 20 - __d,
>> + 21 - __d, 22 - __d, 23 - __d, 24 - __d,
>> 25 - __d,
>> + 26 - __d, 27 - __d, 28 - __d, 29 - __d,
>> 30 - __d,
>> + 31 - __d));
>> +#else
>> return vec_perm(
>> __a, __b,
>> (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d +
>> 4, __d + 5,
>> __d + 6, __d + 7, __d + 8, __d + 9, __d
>> + 10,
>> __d + 11, __d + 12, __d + 13, __d + 14,
>> __d + 15));
>> +#endif
>> }
>>
>> static vector bool char __ATTRS_o_ai vec_sld(vector bool char __a,
>> vector bool char __b,
>> unsigned const int __c)
>> {
>> unsigned char __d = __c & 0x0F;
>> +#ifdef __LITTLE_ENDIAN__
>> + return vec_perm(
>> + __b, __a,
>> + (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
>> 20 - __d,
>> + 21 - __d, 22 - __d, 23 - __d, 24 - __d,
>> 25 - __d,
>> + 26 - __d, 27 - __d, 28 - __d, 29 - __d,
>> 30 - __d,
>> + 31 - __d));
>> +#else
>> return vec_perm(
>> __a, __b,
>> (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d +
>> 4, __d + 5,
>> __d + 6, __d + 7, __d + 8, __d + 9, __d
>> + 10,
>> __d + 11, __d + 12, __d + 13, __d + 14,
>> __d + 15));
>> +#endif
>> }
>>
>> static vector signed short __ATTRS_o_ai vec_sld(vector signed short
>> __a,
>> vector signed short
>> __b,
>> unsigned const int
>> __c) {
>> unsigned char __d = __c & 0x0F;
>> +#ifdef __LITTLE_ENDIAN__
>> + return vec_perm(
>> + __b, __a,
>> + (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
>> 20 - __d,
>> + 21 - __d, 22 - __d, 23 - __d, 24 - __d,
>> 25 - __d,
>> + 26 - __d, 27 - __d, 28 - __d, 29 - __d,
>> 30 - __d,
>> + 31 - __d));
>> +#else
>> return vec_perm(
>> __a, __b,
>> (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d +
>> 4, __d + 5,
>> __d + 6, __d + 7, __d + 8, __d + 9, __d
>> + 10,
>> __d + 11, __d + 12, __d + 13, __d + 14,
>> __d + 15));
>> +#endif
>> }
>>
>> static vector unsigned short __ATTRS_o_ai vec_sld(vector unsigned
>> short __a,
>> vector unsigned
>> short __b,
>> unsigned const int
>> __c) {
>> unsigned char __d = __c & 0x0F;
>> +#ifdef __LITTLE_ENDIAN__
>> + return vec_perm(
>> + __b, __a,
>> + (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
>> 20 - __d,
>> + 21 - __d, 22 - __d, 23 - __d, 24 - __d,
>> 25 - __d,
>> + 26 - __d, 27 - __d, 28 - __d, 29 - __d,
>> 30 - __d,
>> + 31 - __d));
>> +#else
>> return vec_perm(
>> __a, __b,
>> (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d +
>> 4, __d + 5,
>> __d + 6, __d + 7, __d + 8, __d + 9, __d
>> + 10,
>> __d + 11, __d + 12, __d + 13, __d + 14,
>> __d + 15));
>> +#endif
>> }
>>
>> static vector bool short __ATTRS_o_ai vec_sld(vector bool short __a,
>> vector bool short __b,
>> unsigned const int
>> __c) {
>> unsigned char __d = __c & 0x0F;
>> +#ifdef __LITTLE_ENDIAN__
>> + return vec_perm(
>> + __b, __a,
>> + (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
>> 20 - __d,
>> + 21 - __d, 22 - __d, 23 - __d, 24 - __d,
>> 25 - __d,
>> + 26 - __d, 27 - __d, 28 - __d, 29 - __d,
>> 30 - __d,
>> + 31 - __d));
>> +#else
>> return vec_perm(
>> __a, __b,
>> (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d +
>> 4, __d + 5,
>> __d + 6, __d + 7, __d + 8, __d + 9, __d
>> + 10,
>> __d + 11, __d + 12, __d + 13, __d + 14,
>> __d + 15));
>> +#endif
>> }
>>
>> static vector pixel __ATTRS_o_ai vec_sld(vector pixel __a, vector
>> pixel __b,
>> unsigned const int __c) {
>> unsigned char __d = __c & 0x0F;
>> +#ifdef __LITTLE_ENDIAN__
>> + return vec_perm(
>> + __b, __a,
>> + (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
>> 20 - __d,
>> + 21 - __d, 22 - __d, 23 - __d, 24 - __d,
>> 25 - __d,
>> + 26 - __d, 27 - __d, 28 - __d, 29 - __d,
>> 30 - __d,
>> + 31 - __d));
>> +#else
>> return vec_perm(
>> __a, __b,
>> (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d +
>> 4, __d + 5,
>> __d + 6, __d + 7, __d + 8, __d + 9, __d
>> + 10,
>> __d + 11, __d + 12, __d + 13, __d + 14,
>> __d + 15));
>> +#endif
>> }
>>
>> static vector signed int __ATTRS_o_ai vec_sld(vector signed int __a,
>> vector signed int __b,
>> unsigned const int
>> __c) {
>> unsigned char __d = __c & 0x0F;
>> +#ifdef __LITTLE_ENDIAN__
>> + return vec_perm(
>> + __b, __a,
>> + (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
>> 20 - __d,
>> + 21 - __d, 22 - __d, 23 - __d, 24 - __d,
>> 25 - __d,
>> + 26 - __d, 27 - __d, 28 - __d, 29 - __d,
>> 30 - __d,
>> + 31 - __d));
>> +#else
>> return vec_perm(
>> __a, __b,
>> (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d +
>> 4, __d + 5,
>> __d + 6, __d + 7, __d + 8, __d + 9, __d
>> + 10,
>> __d + 11, __d + 12, __d + 13, __d + 14,
>> __d + 15));
>> +#endif
>> }
>>
>> static vector unsigned int __ATTRS_o_ai vec_sld(vector unsigned int
>> __a,
>> vector unsigned int
>> __b,
>> unsigned const int
>> __c) {
>> unsigned char __d = __c & 0x0F;
>> +#ifdef __LITTLE_ENDIAN__
>> + return vec_perm(
>> + __b, __a,
>> + (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
>> 20 - __d,
>> + 21 - __d, 22 - __d, 23 - __d, 24 - __d,
>> 25 - __d,
>> + 26 - __d, 27 - __d, 28 - __d, 29 - __d,
>> 30 - __d,
>> + 31 - __d));
>> +#else
>> return vec_perm(
>> __a, __b,
>> (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d +
>> 4, __d + 5,
>> __d + 6, __d + 7, __d + 8, __d + 9, __d
>> + 10,
>> __d + 11, __d + 12, __d + 13, __d + 14,
>> __d + 15));
>> +#endif
>> }
>>
>> static vector bool int __ATTRS_o_ai vec_sld(vector bool int __a,
>> vector bool int __b,
>> unsigned const int __c)
>> {
>> unsigned char __d = __c & 0x0F;
>> +#ifdef __LITTLE_ENDIAN__
>> + return vec_perm(
>> + __b, __a,
>> + (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
>> 20 - __d,
>> + 21 - __d, 22 - __d, 23 - __d, 24 - __d,
>> 25 - __d,
>> + 26 - __d, 27 - __d, 28 - __d, 29 - __d,
>> 30 - __d,
>> + 31 - __d));
>> +#else
>> return vec_perm(
>> __a, __b,
>> (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d +
>> 4, __d + 5,
>> __d + 6, __d + 7, __d + 8, __d + 9, __d
>> + 10,
>> __d + 11, __d + 12, __d + 13, __d + 14,
>> __d + 15));
>> +#endif
>> }
>>
>> static vector float __ATTRS_o_ai vec_sld(vector float __a, vector
>> float __b,
>> unsigned const int __c) {
>> unsigned char __d = __c & 0x0F;
>> +#ifdef __LITTLE_ENDIAN__
>> + return vec_perm(
>> + __b, __a,
>> + (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
>> 20 - __d,
>> + 21 - __d, 22 - __d, 23 - __d, 24 - __d,
>> 25 - __d,
>> + 26 - __d, 27 - __d, 28 - __d, 29 - __d,
>> 30 - __d,
>> + 31 - __d));
>> +#else
>> return vec_perm(
>> __a, __b,
>> (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d +
>> 4, __d + 5,
>> __d + 6, __d + 7, __d + 8, __d + 9, __d
>> + 10,
>> __d + 11, __d + 12, __d + 13, __d + 14,
>> __d + 15));
>> +#endif
>> }
>>
>> /* vec_vsldoi */
>> @@ -6683,77 +6782,157 @@ static vector float __ATTRS_o_ai vec_sld
>> static vector signed char __ATTRS_o_ai vec_vsldoi(vector signed char
>> __a,
>> vector signed char
>> __b,
>> unsigned char __c)
>> {
>> + unsigned char __d = __c & 0x0F;
>> +#ifdef __LITTLE_ENDIAN__
>> + return vec_perm(
>> + __b, __a,
>> + (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
>> 20 - __d,
>> + 21 - __d, 22 - __d, 23 - __d, 24 - __d,
>> 25 - __d,
>> + 26 - __d, 27 - __d, 28 - __d, 29 - __d,
>> 30 - __d,
>> + 31 - __d));
>> +#else
>> return vec_perm(
>> __a, __b,
>> - (vector unsigned char)(__c, __c + 1, __c + 2, __c + 3, __c +
>> 4, __c + 5,
>> - __c + 6, __c + 7, __c + 8, __c + 9, __c
>> + 10,
>> - __c + 11, __c + 12, __c + 13, __c + 14,
>> __c + 15));
>> + (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d +
>> 4, __d + 5,
>> + __d + 6, __d + 7, __d + 8, __d + 9, __d
>> + 10,
>> + __d + 11, __d + 12, __d + 13, __d + 14,
>> __d + 15));
>> +#endif
>> }
>>
>> static vector unsigned char __ATTRS_o_ai vec_vsldoi(vector unsigned
>> char __a,
>> vector unsigned
>> char __b,
>> unsigned char
>> __c) {
>> + unsigned char __d = __c & 0x0F;
>> +#ifdef __LITTLE_ENDIAN__
>> + return vec_perm(
>> + __b, __a,
>> + (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
>> 20 - __d,
>> + 21 - __d, 22 - __d, 23 - __d, 24 - __d,
>> 25 - __d,
>> + 26 - __d, 27 - __d, 28 - __d, 29 - __d,
>> 30 - __d,
>> + 31 - __d));
>> +#else
>> return vec_perm(
>> __a, __b,
>> - (vector unsigned char)(__c, __c + 1, __c + 2, __c + 3, __c +
>> 4, __c + 5,
>> - __c + 6, __c + 7, __c + 8, __c + 9, __c
>> + 10,
>> - __c + 11, __c + 12, __c + 13, __c + 14,
>> __c + 15));
>> + (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d +
>> 4, __d + 5,
>> + __d + 6, __d + 7, __d + 8, __d + 9, __d
>> + 10,
>> + __d + 11, __d + 12, __d + 13, __d + 14,
>> __d + 15));
>> +#endif
>> }
>>
>> static vector short __ATTRS_o_ai vec_vsldoi(vector short __a, vector
>> short __b,
>> unsigned char __c) {
>> + unsigned char __d = __c & 0x0F;
>> +#ifdef __LITTLE_ENDIAN__
>> + return vec_perm(
>> + __b, __a,
>> + (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
>> 20 - __d,
>> + 21 - __d, 22 - __d, 23 - __d, 24 - __d,
>> 25 - __d,
>> + 26 - __d, 27 - __d, 28 - __d, 29 - __d,
>> 30 - __d,
>> + 31 - __d));
>> +#else
>> return vec_perm(
>> __a, __b,
>> - (vector unsigned char)(__c, __c + 1, __c + 2, __c + 3, __c +
>> 4, __c + 5,
>> - __c + 6, __c + 7, __c + 8, __c + 9, __c
>> + 10,
>> - __c + 11, __c + 12, __c + 13, __c + 14,
>> __c + 15));
>> + (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d +
>> 4, __d + 5,
>> + __d + 6, __d + 7, __d + 8, __d + 9, __d
>> + 10,
>> + __d + 11, __d + 12, __d + 13, __d + 14,
>> __d + 15));
>> +#endif
>> }
>>
>> static vector unsigned short __ATTRS_o_ai vec_vsldoi(vector unsigned
>> short __a,
>> vector unsigned
>> short __b,
>> unsigned char
>> __c) {
>> + unsigned char __d = __c & 0x0F;
>> +#ifdef __LITTLE_ENDIAN__
>> + return vec_perm(
>> + __b, __a,
>> + (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
>> 20 - __d,
>> + 21 - __d, 22 - __d, 23 - __d, 24 - __d,
>> 25 - __d,
>> + 26 - __d, 27 - __d, 28 - __d, 29 - __d,
>> 30 - __d,
>> + 31 - __d));
>> +#else
>> return vec_perm(
>> __a, __b,
>> - (vector unsigned char)(__c, __c + 1, __c + 2, __c + 3, __c +
>> 4, __c + 5,
>> - __c + 6, __c + 7, __c + 8, __c + 9, __c
>> + 10,
>> - __c + 11, __c + 12, __c + 13, __c + 14,
>> __c + 15));
>> + (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d +
>> 4, __d + 5,
>> + __d + 6, __d + 7, __d + 8, __d + 9, __d
>> + 10,
>> + __d + 11, __d + 12, __d + 13, __d + 14,
>> __d + 15));
>> +#endif
>> }
>>
>> static vector pixel __ATTRS_o_ai vec_vsldoi(vector pixel __a, vector
>> pixel __b,
>> unsigned char __c) {
>> + unsigned char __d = __c & 0x0F;
>> +#ifdef __LITTLE_ENDIAN__
>> + return vec_perm(
>> + __b, __a,
>> + (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
>> 20 - __d,
>> + 21 - __d, 22 - __d, 23 - __d, 24 - __d,
>> 25 - __d,
>> + 26 - __d, 27 - __d, 28 - __d, 29 - __d,
>> 30 - __d,
>> + 31 - __d));
>> +#else
>> return vec_perm(
>> __a, __b,
>> - (vector unsigned char)(__c, __c + 1, __c + 2, __c + 3, __c +
>> 4, __c + 5,
>> - __c + 6, __c + 7, __c + 8, __c + 9, __c
>> + 10,
>> - __c + 11, __c + 12, __c + 13, __c + 14,
>> __c + 15));
>> + (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d +
>> 4, __d + 5,
>> + __d + 6, __d + 7, __d + 8, __d + 9, __d
>> + 10,
>> + __d + 11, __d + 12, __d + 13, __d + 14,
>> __d + 15));
>> +#endif
>> }
>>
>> static vector int __ATTRS_o_ai vec_vsldoi(vector int __a, vector int
>> __b,
>> unsigned char __c) {
>> + unsigned char __d = __c & 0x0F;
>> +#ifdef __LITTLE_ENDIAN__
>> + return vec_perm(
>> + __b, __a,
>> + (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
>> 20 - __d,
>> + 21 - __d, 22 - __d, 23 - __d, 24 - __d,
>> 25 - __d,
>> + 26 - __d, 27 - __d, 28 - __d, 29 - __d,
>> 30 - __d,
>> + 31 - __d));
>> +#else
>> return vec_perm(
>> __a, __b,
>> - (vector unsigned char)(__c, __c + 1, __c + 2, __c + 3, __c +
>> 4, __c + 5,
>> - __c + 6, __c + 7, __c + 8, __c + 9, __c
>> + 10,
>> - __c + 11, __c + 12, __c + 13, __c + 14,
>> __c + 15));
>> + (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d +
>> 4, __d + 5,
>> + __d + 6, __d + 7, __d + 8, __d + 9, __d
>> + 10,
>> + __d + 11, __d + 12, __d + 13, __d + 14,
>> __d + 15));
>> +#endif
>> }
>>
>> static vector unsigned int __ATTRS_o_ai vec_vsldoi(vector unsigned
>> int __a,
>> vector unsigned
>> int __b,
>> unsigned char
>> __c) {
>> + unsigned char __d = __c & 0x0F;
>> +#ifdef __LITTLE_ENDIAN__
>> + return vec_perm(
>> + __b, __a,
>> + (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
>> 20 - __d,
>> + 21 - __d, 22 - __d, 23 - __d, 24 - __d,
>> 25 - __d,
>> + 26 - __d, 27 - __d, 28 - __d, 29 - __d,
>> 30 - __d,
>> + 31 - __d));
>> +#else
>> return vec_perm(
>> __a, __b,
>> - (vector unsigned char)(__c, __c + 1, __c + 2, __c + 3, __c +
>> 4, __c + 5,
>> - __c + 6, __c + 7, __c + 8, __c + 9, __c
>> + 10,
>> - __c + 11, __c + 12, __c + 13, __c + 14,
>> __c + 15));
>> + (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d +
>> 4, __d + 5,
>> + __d + 6, __d + 7, __d + 8, __d + 9, __d
>> + 10,
>> + __d + 11, __d + 12, __d + 13, __d + 14,
>> __d + 15));
>> +#endif
>> }
>>
>> static vector float __ATTRS_o_ai vec_vsldoi(vector float __a, vector
>> float __b,
>> unsigned char __c) {
>> + unsigned char __d = __c & 0x0F;
>> +#ifdef __LITTLE_ENDIAN__
>> + return vec_perm(
>> + __b, __a,
>> + (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
>> 20 - __d,
>> + 21 - __d, 22 - __d, 23 - __d, 24 - __d,
>> 25 - __d,
>> + 26 - __d, 27 - __d, 28 - __d, 29 - __d,
>> 30 - __d,
>> + 31 - __d));
>> +#else
>> return vec_perm(
>> __a, __b,
>> - (vector unsigned char)(__c, __c + 1, __c + 2, __c + 3, __c +
>> 4, __c + 5,
>> - __c + 6, __c + 7, __c + 8, __c + 9, __c
>> + 10,
>> - __c + 11, __c + 12, __c + 13, __c + 14,
>> __c + 15));
>> + (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d +
>> 4, __d + 5,
>> + __d + 6, __d + 7, __d + 8, __d + 9, __d
>> + 10,
>> + __d + 11, __d + 12, __d + 13, __d + 14,
>> __d + 15));
>> +#endif
>> }
>>
>> /* vec_sll */
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>
>
> --
> Hal Finkel
> Assistant Computational Scientist
> Leadership Computing Facility
> Argonne National Laboratory
More information about the cfe-commits
mailing list