OSDN Git Service

* gcc.target/powerpc/altivec-consts.c: Run if vmx_hw, compile
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / ext / altivec-cell-3.C
1 /* { dg-do run { target { powerpc*-*-* && vmx_hw } } } */
2 /* { dg-do compile { target { powerpc*-*-* && { ! vmx_hw } } } } */
3 /* { dg-require-effective-target powerpc_altivec_ok } */
4 /* { dg-options "-maltivec" } */
5 /* Test the vec_splats and vec_promote VMX intrinsics.  */
6 #include <altivec.h>
7     
8 extern "C" void abort (void);
9         
10 vector int a = {0, 0, 0, 0};
11 int main1(int t) __attribute__((noinline));
12 int main1(int t)
13
14   int i;
15   vector int b = vec_splats(0);
16   if (__builtin_memcmp (&a, &b, sizeof(vector int)))
17     abort ();
18   
19   b = vec_splats(t);
20   if (__builtin_memcmp (&a, &b, sizeof(vector int)))
21     abort ();
22   
23   b = vec_promote(0, 1);
24   if (vec_extract (b, 1) != 0)
25     abort ();
26   
27   b = vec_promote(t, t);
28   if (vec_extract (b, t) != 0)
29     abort ();
30   
31   return 0;
32
33     
34 int main(void)
35
36   return main1 (0);
37 }