From df7e22a143d4246ee728ff46a5552dfa2b6811c8 Mon Sep 17 00:00:00 2001 From: "kugan.vivekanandarajah" Date: Wed, 27 Jan 2016 11:16:59 +1100 Subject: gcc/ Backport from trunk r232566. 2016-01-19 Kyrylo Tkachov PR target/69135 * config/arm/vfp.md (lsi2): Set "conds" attribute to unconditional. Remove %? from output template. gcc/testsuite/ Backport from trunk r232566. 2016-01-19 Kyrylo Tkachov PR target/69135 * gcc.target/arm/pr69135_1.c: New test. Change-Id: I8a920fdf3188fd5ab911cdba6371ed3dcd8d8cbb --- gcc/config/arm/vfp.md | 3 ++- gcc/testsuite/gcc.target/arm/pr69135_1.c | 44 ++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.target/arm/pr69135_1.c diff --git a/gcc/config/arm/vfp.md b/gcc/config/arm/vfp.md index c297ed927b0..83b251ff95c 100644 --- a/gcc/config/arm/vfp.md +++ b/gcc/config/arm/vfp.md @@ -1336,8 +1336,9 @@ [(match_operand:SDF 1 "register_operand" "")] VCVT)))] "TARGET_HARD_FLOAT && TARGET_FPU_ARMV8 " - "vcvt%?.32.\\t%0, %1" + "vcvt.32.\\t%0, %1" [(set_attr "predicable" "no") + (set_attr "conds" "unconditional") (set_attr "type" "f_cvtf2i")] ) diff --git a/gcc/testsuite/gcc.target/arm/pr69135_1.c b/gcc/testsuite/gcc.target/arm/pr69135_1.c new file mode 100644 index 00000000000..6fb9e0681ba --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/pr69135_1.c @@ -0,0 +1,44 @@ +/* { dg-do assemble } */ +/* { dg-require-effective-target arm_v8_vfp_ok } */ +/* { dg-require-effective-target arm_arch_v8a_ok } */ +/* { dg-options "-O2 -ffast-math" } */ +/* { dg-add-options arm_v8_vfp } */ +/* { dg-add-options arm_arch_v8a } */ + +int global; + +void +lceil_float (float x, int b) +{ + if (b) global = __builtin_lceilf (x); +} + +void +lceil_double (double x, int b) +{ + if (b) global = __builtin_lceil (x); +} + +void +lfloor_float (float x, int b) +{ + if (b) global = __builtin_lfloorf (x); +} + +void +lfloor_double (double x, int b) +{ + if (b) global = __builtin_lfloor (x); +} + +void +lround_float (float x, int b) +{ + if (b) global = __builtin_lroundf (x); +} + +void +lround_double (double x, int b) +{ + if (b) global = __builtin_lround (x); +} -- cgit v1.2.3