1  /* { dg-do compile } */
       2  /* { dg-options "-O -mcpu=ultrasparc -mvis" } */
       3  typedef unsigned char vec8 __attribute__((vector_size(8)));
       4  typedef short vec16 __attribute__((vector_size(8)));
       5  typedef int vec32 __attribute__((vector_size(8)));
       6  
       7  extern vec8 foo1_8(void);
       8  extern void foo2_8(vec8);
       9  
      10  vec8 fun8(void)
      11  {
      12    return ~foo1_8 ();
      13  }
      14  
      15  vec8 fun8_2(vec8 a)
      16  {
      17    foo2_8 (~a);
      18  }
      19  
      20  extern vec16 foo1_16(void);
      21  extern void foo2_16(vec16);
      22  
      23  
      24  vec16 fun16(void)
      25  {
      26    return ~foo1_16 ();
      27  }
      28  
      29  vec16 fun16_2(vec16 a)
      30  {
      31    foo2_16 (~a);
      32  }
      33  
      34  extern vec32 foo1_32(void);
      35  extern void foo2_32(vec32);
      36  
      37  vec32 fun32(void)
      38  {
      39    return ~foo1_32 ();
      40  }
      41  
      42  vec32 fun32_2(vec32 a)
      43  {
      44    foo2_32 (~a);
      45  }
      46  
      47  /* { dg-final { scan-assembler-times "fnot1\t%" 6 } } */