1 /* { dg-do compile } */
2 /* { dg-options "-O -mcpu=ultrasparc -mvis" } */
3 typedef char vec8
__attribute__((vector_size(8)));
4 typedef short vec16
__attribute__((vector_size(8)));
5 typedef int vec32
__attribute__((vector_size(8)));
7 extern vec8
foo1_8(void);
8 extern vec8
foo2_8(void);
12 return ~(foo1_8 () & foo2_8 ());
15 extern vec16
foo1_16(void);
16 extern vec16
foo2_16(void);
20 return ~(foo1_16 () & foo2_16 ());
23 extern vec32
foo1_32(void);
24 extern vec32
foo2_32(void);
28 return ~(foo1_32 () & foo2_32 ());
32 /* DeMorgan's Law's at work. */
35 return ~foo1_8 () | ~foo2_8 ();
40 return ~foo1_16 () | ~foo2_16 ();
45 return ~foo1_32 () | ~foo2_32 ();
48 /* { dg-final { scan-assembler-times "fnand\t%" 6 } } */