gcc-bug-i.c: Add little endian variant.
2013-10-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * gcc.dg/vmx/gcc-bug-i.c: Add little endian variant. * gcc.dg/vmx/eg-5.c: Likewise. From-SVN: r204138
This commit is contained in:
parent
ff4c81cccb
commit
52898b94fa
3 changed files with 27 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2013-10-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||||
|
||||
* gcc.dg/vmx/gcc-bug-i.c: Add little endian variant.
|
||||
* gcc.dg/vmx/eg-5.c: Likewise.
|
||||
|
||||
2013-10-28 Claudiu Zissulescu <claziss@synopsys.com>
|
||||
Joern Rennecke <joern.rennecke@embecosm.com>
|
||||
|
||||
|
|
|
@ -7,10 +7,17 @@ matvecmul4 (vector float c0, vector float c1, vector float c2,
|
|||
/* Set result to a vector of f32 0's */
|
||||
vector float result = ((vector float){0.,0.,0.,0.});
|
||||
|
||||
#ifdef __LITTLE_ENDIAN__
|
||||
result = vec_madd (c0, vec_splat (v, 3), result);
|
||||
result = vec_madd (c1, vec_splat (v, 2), result);
|
||||
result = vec_madd (c2, vec_splat (v, 1), result);
|
||||
result = vec_madd (c3, vec_splat (v, 0), result);
|
||||
#else
|
||||
result = vec_madd (c0, vec_splat (v, 0), result);
|
||||
result = vec_madd (c1, vec_splat (v, 1), result);
|
||||
result = vec_madd (c2, vec_splat (v, 2), result);
|
||||
result = vec_madd (c3, vec_splat (v, 3), result);
|
||||
#endif
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -13,12 +13,27 @@
|
|||
#define DO_INLINE __attribute__ ((always_inline))
|
||||
#define DONT_INLINE __attribute__ ((noinline))
|
||||
|
||||
#ifdef __LITTLE_ENDIAN__
|
||||
static inline DO_INLINE int inline_me(vector signed short data)
|
||||
{
|
||||
union {vector signed short v; signed short s[8];} u;
|
||||
signed short x;
|
||||
unsigned char x1, x2;
|
||||
|
||||
u.v = data;
|
||||
x = u.s[7];
|
||||
x1 = (x >> 8) & 0xff;
|
||||
x2 = x & 0xff;
|
||||
return ((x2 << 8) | x1);
|
||||
}
|
||||
#else
|
||||
static inline DO_INLINE int inline_me(vector signed short data)
|
||||
{
|
||||
union {vector signed short v; signed short s[8];} u;
|
||||
u.v = data;
|
||||
return u.s[7];
|
||||
}
|
||||
#endif
|
||||
|
||||
static DONT_INLINE int foo(vector signed short data)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue