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 8extern void abort (void); 9 10vector int a = {0, 0, 0, 0}; 11int main1(int t) __attribute__((noinline)); 12int 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 34int main(void) 35{ 36 return main1 (0); 37} 38