1  /* { dg-do compile } */
       2  /* { dg-require-effective-target powerpc_altivec_ok } */
       3  /* { dg-require-effective-target lp64 } */
       4  /* { dg-options "-mdejagnu-cpu=power6 -maltivec -O2" } */
       5  
       6  #include <altivec.h>
       7  
       8  #pragma GCC target ("cpu=power6,altivec")
       9  #ifdef _ARCH_PWR6
      10  vector int
      11  test1 (vector int a, vector int b)
      12  {
      13    return vec_add (a, b);
      14  }
      15  #else
      16  #error failed power6 pragma target
      17  #endif
      18  
      19  #pragma GCC target ("cpu=power7")
      20  /* Force a re-read of altivec.h with new cpu target. */
      21  #undef _ALTIVEC_H
      22  #include <altivec.h>
      23  #ifdef _ARCH_PWR7
      24  vector signed int
      25  test2 (vector signed int a, vector signed int b)
      26  {
      27    return vec_sldw (a, b, 3);
      28  }
      29  #else
      30  #error failed to set power7 pragma target
      31  #endif
      32