https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69135

--- Comment #4 from cctsai57 <cctsai57 at gmail dot com> ---
Following
gcc/testsuite/gcc.target/arm/{lceil-vcvt_1.c,lfloor-vcvt_1.c,lround-vcvt_1.c},
suggest:

/* { dg-do compile } */
/* { dg-require-effective-target arm_v8_vfp_ok } */
/* { dg-options "-O2 -march=armv8-a -ffast-math" } */
/* { dg-add-options arm_v8_vfp } */

int global;

void
lceil_float (float x, int b)
{
  if (b) global = __builtin_lceilf (x);
  /* { dg-final { scan-assembler-times "vcvtp.s32.f32\ts\[0-9\]+, s\[0-9\]+" 1
} } */
}

void
lceil_double (double x, int b)
{
  if (b) global = __builtin_lceil (x);
  /* { dg-final { scan-assembler-times "vcvtp.s32.f64\ts\[0-9\]+, d\[0-9\]+" 1
} } */
}

void
lfloor_float (float x, int b)
{
  if (b) global =  __builtin_lfloorf (x);
  /* { dg-final { scan-assembler-times "vcvtm.s32.f32\ts\[0-9\]+, s\[0-9\]+" 1
} } */
}

void
lfloor_double (double x, int b)
{
  if (b) global = __builtin_lfloor (x);
  /* { dg-final { scan-assembler-times "vcvtm.s32.f64\ts\[0-9\]+, d\[0-9\]+" 1
} } */
}

void
lround_float (float x, int b)
{
  if (b) global = __builtin_lroundf (x);
  /* { dg-final { scan-assembler-times "vcvta.s32.f32\ts\[0-9\]+, s\[0-9\]+" 1
} } */
}

void
lround_double (double x, int b)
{
  if (b) global = __builtin_lround (x);
  /* { dg-final { scan-assembler-times "vcvta.s32.f64\ts\[0-9\]+, d\[0-9\]+" 1
} } */
}

Reply via email to