/* { dg-do compile } */ | |
/* { dg-require-ifunc "" } */ | |
/* { dg-options "-O3" } */ | |
/* { dg-final { scan-assembler "vpshufb" } } */ | |
/* { dg-final { scan-assembler "punpcklbw" } } */ | |
__attribute__((target_clones("arch=core-avx2","arch=slm","default"))) | |
void | |
foo(char *in, char *out, int size) | |
{ | |
int i; | |
for(i = 0; i < size; i++) | |
{ | |
out[2 * i] = in[i]; | |
out[2 * i + 1] = in[i]; | |
} | |
} |