1/* { dg-do compile } */ 2/* { dg-options "-O -mcpu=ultrasparc -mvis" } */ 3typedef char vec8 __attribute__((vector_size(8))); 4typedef short vec16 __attribute__((vector_size(8))); 5typedef int vec32 __attribute__((vector_size(8))); 6 7extern vec8 foo1_8(void); 8extern vec8 foo2_8(void); 9 10vec8 fun8(void) 11{ 12 return foo1_8 () & foo2_8 (); 13} 14 15#ifndef __LP64__ 16/* Test the 32-bit splitter. */ 17vec8 fun8_2(vec8 a, vec8 b) 18{ 19 return a & b; 20} 21#endif 22 23extern vec16 foo1_16(void); 24extern vec16 foo2_16(void); 25 26vec16 fun16(void) 27{ 28 return foo1_16 () & foo2_16 (); 29} 30 31#ifndef __LP64__ 32/* Test the 32-bit splitter. */ 33vec16 fun16_2(vec16 a, vec16 b) 34{ 35 return a & b; 36} 37#endif 38 39extern vec32 foo1_32(void); 40extern vec32 foo2_32(void); 41 42vec32 fun32(void) 43{ 44 return foo1_32 () & foo2_32 (); 45} 46 47#ifndef __LP64__ 48/* Test the 32-bit splitter. */ 49vec32 fun32_2(vec32 a, vec32 b) 50{ 51 return a & b; 52} 53#endif 54 55/* { dg-final { scan-assembler-times "fand\t%" 3 } } */ 56