blob: e3e060ee80b2f774d30d68ce0edc49c6e43b64c2 [file] [log] [blame]
/* PR target/102464. */
/* { dg-do compile } */
/* { dg-options "-O2 -mavx512fp16" } */
#define FOO(FUNC,SUFFIX) \
_Float16 \
foo_##FUNC##_##SUFFIX (_Float16 a) \
{ \
return __builtin_##FUNC##SUFFIX (a); \
}
FOO (roundeven, f16);
FOO (roundeven, f);
FOO (roundeven, );
FOO (roundeven, l);
FOO (trunc, f16);
FOO (trunc, f);
FOO (trunc, );
FOO (trunc, l);
FOO (ceil, f16);
FOO (ceil, f);
FOO (ceil, );
FOO (ceil, l);
FOO (floor, f16);
FOO (floor, f);
FOO (floor, );
FOO (floor, l);
FOO (nearbyint, f16);
FOO (nearbyint, f);
FOO (nearbyint, );
FOO (nearbyint, l);
FOO (rint, f16);
FOO (rint, f);
FOO (rint, );
FOO (rint, l);
/* { dg-final { scan-assembler-not "vcvtsh2s\[sd\]" } } */
/* { dg-final { scan-assembler-not "extendhfxf" } } */
/* { dg-final { scan-assembler-times "vrndscalesh\[^\n\r\]*xmm\[0-9\]" 24 } } */