/* { dg-do compile } */ /* { dg-require-effective-target ilp32 } */ /* { dg-options "-O3 -fno-math-errno -fno-fp-int-builtin-inexact" } */ #define TEST(name, float_type, int_type, fn) void f_##name (float_type x) \ { \ volatile int_type b = __builtin_##fn (x); \ } TEST (dld, double, long, lrint) TEST (flf, float , long, lrintf) TEST (did, double, int, lrint) TEST (fif, float , int, lrintf) /* { dg-final { scan-assembler-times "fcvtzs\tw\[0-9\]+, \[d,s\]\[0-9\]+" 2 } } */ /* { dg-final { scan-assembler-times "bl\tlrint" 2 } } */