1 /* { dg-do compile { target { ! ia32 } } } */
2 /* { dg-options "-msse4.1 -O2" } */
3 /* { dg-final { scan-assembler-times {(?n)v?pcmpeq[bwd]} 2 } } */
4 /* { dg-final { scan-assembler-times {(?n)v?p?blendv} 2 } } */
5
6 typedef char v4qi __attribute__ ((vector_size (4)));
7 typedef short v2hi __attribute__ ((vector_size (4)));
8
9 #define FOO(VTYPE, TYPE) \
10 VTYPE \
11 __attribute__ ((noipa)) \
12 foo_##VTYPE (VTYPE a, TYPE b, unsigned int c) \
13 { \
14 a[c] = b; \
15 return a; \
16 } \
17
18 FOO (v4qi, char);
19
20 FOO (v2hi, short);