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))); 6 7 extern vec8 foo1_8(void); 8 extern vec8 foo2_8(void); 9 fun8(void)10vec8 fun8(void) 11 { 12 return foo1_8 () & foo2_8 (); 13 } 14 fun8_2(vec8 a,vec8 b)15vec8 fun8_2(vec8 a, vec8 b) 16 { 17 return a & b; 18 } 19 20 extern vec16 foo1_16(void); 21 extern vec16 foo2_16(void); 22 fun16(void)23vec16 fun16(void) 24 { 25 return foo1_16 () & foo2_16 (); 26 } 27 fun16_2(vec16 a,vec16 b)28vec16 fun16_2(vec16 a, vec16 b) 29 { 30 return a & b; 31 } 32 33 extern vec32 foo1_32(void); 34 extern vec32 foo2_32(void); 35 fun32(void)36vec32 fun32(void) 37 { 38 return foo1_32 () & foo2_32 (); 39 } 40 fun32_2(vec32 a,vec32 b)41vec32 fun32_2(vec32 a, vec32 b) 42 { 43 return a & b; 44 } 45 46 /* { dg-final { scan-assembler-times "fand\t%" 6 } } */ 47