/* { dg-do compile } */ | |
/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx -mtune=generic -mfpmath=sse -mrecip" } */ | |
float a[32]; | |
float b[32]; | |
float r[32]; | |
extern float sqrtf (float); | |
void t1(void) | |
{ | |
int i; | |
for (i = 0; i < 32; i++) | |
r[i] = a[i] / sqrtf (b[i]); | |
} | |
void t2(void) | |
{ | |
int i; | |
for (i = 0; i < 32; i++) | |
r[i] = sqrtf (a[i] / b[i]); | |
} | |
void t3(void) | |
{ | |
int i; | |
for (i = 0; i < 32; i++) | |
r[i] = sqrtf (a[i]); | |
} | |
/* { dg-final { scan-assembler "vrsqrtps\[ \\t\]+\[^\n\]*%ymm" } } */ |