mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-14 17:20:59 +08:00
[ARM] PR target/69135: Mark ARMv8 vcvt instructions as unconditional
PR target/69135 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds" attribute to unconditional. Remove %? from output template. * gcc.target/arm/pr69135_1.c: New test. From-SVN: r232566
This commit is contained in:
parent
078fe40a48
commit
962801c550
@ -1,3 +1,9 @@
|
||||
2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||
|
||||
PR target/69135
|
||||
* config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
|
||||
attribute to unconditional. Remove %? from output template.
|
||||
|
||||
2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
|
||||
Jiong Wang <jiong.wang@arm.com>
|
||||
|
||||
|
@ -1334,8 +1334,9 @@
|
||||
[(match_operand:SDF 1
|
||||
"register_operand" "<F_constraint>")] VCVT)))]
|
||||
"TARGET_HARD_FLOAT && TARGET_FPU_ARMV8 <vfp_double_cond>"
|
||||
"vcvt<vrint_variant>%?.<su>32.<V_if_elem>\\t%0, %<V_reg>1"
|
||||
"vcvt<vrint_variant>.<su>32.<V_if_elem>\\t%0, %<V_reg>1"
|
||||
[(set_attr "predicable" "no")
|
||||
(set_attr "conds" "unconditional")
|
||||
(set_attr "type" "f_cvtf2i")]
|
||||
)
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||
|
||||
PR target/69135
|
||||
* gcc.target/arm/pr69135_1.c: New test.
|
||||
|
||||
2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
|
||||
|
||||
* gcc.target/aarch64/ccmp_1.c: Add new tests.
|
||||
|
44
gcc/testsuite/gcc.target/arm/pr69135_1.c
Normal file
44
gcc/testsuite/gcc.target/arm/pr69135_1.c
Normal file
@ -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);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user