aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/arm/predicates.md
diff options
context:
space:
mode:
authorRamana Radhakrishnan <ramana.radhakrishnan@linaro.org>2011-12-05 10:42:53 +0000
committerRamana Radhakrishnan <ramana@gcc.gnu.org>2011-12-05 10:42:53 +0000
commit7f3d8f56e747b1a814c633a9ab160adf02b5d498 (patch)
tree4a87ff296b65cc5bfe682da8351229352bb7e4d2 /gcc/config/arm/predicates.md
parent3128f9557f09ae599cc07f5e5bbcd96a8c4ec957 (diff)
downloadgcc-7f3d8f56e747b1a814c633a9ab160adf02b5d498.zip
gcc-7f3d8f56e747b1a814c633a9ab160adf02b5d498.tar.gz
gcc-7f3d8f56e747b1a814c633a9ab160adf02b5d498.tar.bz2
Use vcvt from fixed to floating point where applicable.
2011-12-05 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> * config/arm/arm.c (vfp3_const_double_for_fract_bits): Define. * config/arm/arm-protos.h (vfp3_const_double_for_fract_bits): Declare. * config/arm/constraints.md ("Dt"): New constraint. * config/arm/predicates.md (const_double_vcvt_power_of_two_reciprocal): New. * config/arm/vfp.md (*arm_combine_vcvt_f32_s32): New. (*arm_combine_vcvt_f32_u32): New. From-SVN: r182005
Diffstat (limited to 'gcc/config/arm/predicates.md')
-rw-r--r--gcc/config/arm/predicates.md5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/config/arm/predicates.md b/gcc/config/arm/predicates.md
index 92eb004..b535335 100644
--- a/gcc/config/arm/predicates.md
+++ b/gcc/config/arm/predicates.md
@@ -754,6 +754,11 @@
return true;
})
+(define_predicate "const_double_vcvt_power_of_two_reciprocal"
+ (and (match_code "const_double")
+ (match_test "TARGET_32BIT && TARGET_VFP
+ && vfp3_const_double_for_fract_bits (op)")))
+
(define_predicate "neon_struct_operand"
(and (match_code "mem")
(match_test "TARGET_32BIT && neon_vector_mem_operand (op, 2)")))