blob: 74467361dd9924eecb1266935f537b351b2a7585 [file] [log] [blame]
/* APPLE LOCAL file AltiVec */
/* { dg-do run { target powerpc*-*-* } } */
/* { dg-options "-faltivec" } */
extern "C" void abort(void);
void CMP (vector unsigned char v, vector unsigned char v1)
{
union {
vector unsigned char vv;
unsigned char s[16];
} r, r1;
r.vv = v;
r1.vv = v1;
for (int i=0; i < 16; i++)
if (r.s[i] != r1.s[i])
abort();
return;
}
#define TEST_FUNCTION_TEMPLATE
#ifdef TEST_FUNCTION_TEMPLATE
template <int I>
#endif
void vectorTest()
{
typedef vector unsigned char VUC;
// Multiple initializers with expressions
const unsigned char kFoo = 0;
enum { kBar = 1 };
VUC v1 = {kFoo,kBar,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
VUC v3 = (VUC)(kFoo,kBar,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
CMP (v1, v3);
VUC v2 = {kBar*kFoo,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
VUC v4 = (VUC)(kBar*kFoo,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
CMP (v2, v4);
// Single initializers
VUC v5 = {42};
VUC v7 = (VUC)(42);
CMP (v5, v7);
VUC v6 = {40+2};
VUC v8 = (VUC)(40+2);
CMP (v6, v8);
VUC v9 = {I+5};
VUC v11 = (VUC)(I+5);
CMP (v9, v11);
}
int main (int argc, char * const argv[])
{
#ifdef TEST_FUNCTION_TEMPLATE
vectorTest<0>();
#else
vectorTest();
#endif
return 0;
}