diff options
author | davids <davids@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-12-23 10:28:18 +0000 |
---|---|---|
committer | davids <davids@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-12-23 10:28:18 +0000 |
commit | a76d6a358a77e41ec7f7dd9d83b1b42e23846cc2 (patch) | |
tree | e386227e0654e558873ba944bb5f30612c47435d /gcc/config/arm/vfp.md | |
parent | e21f958766601f20c29dda516c84e8240e01cbdc (diff) | |
download | gcc-a76d6a358a77e41ec7f7dd9d83b1b42e23846cc2.tar.gz |
2015-12-23 David Sherwood <david.sherwood@arm.com>
gcc/
* config/arm/iterators.md (VMAXMINFNM): New int iterator.
(fmaxmin): New int attribute.
(fmaxmin_op): Likewise.
* config/arm/unspecs.md (UNSPEC_VMAXNM): New unspec.
(UNSPEC_VMINNM): Likewise.
* config/arm/neon.md (fmaxmin): New pattern.
* config/arm/vfp.md (fmaxmin): Likewise.
gcc/testsuite
* gcc.target/arm/fmaxmin.x: New file used by tests below.
* gcc.target/arm/fmaxmin.c: New test.
* gcc.target/arm/vect-fmaxmin.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231924 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/arm/vfp.md')
-rw-r--r-- | gcc/config/arm/vfp.md | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/config/arm/vfp.md b/gcc/config/arm/vfp.md index baeac622d29..3c89fe9ba7e 100644 --- a/gcc/config/arm/vfp.md +++ b/gcc/config/arm/vfp.md @@ -1366,6 +1366,18 @@ (set_attr "conds" "unconditional")] ) +;; Scalar forms for the IEEE-754 fmax()/fmin() functions +(define_insn "<fmaxmin><mode>3" + [(set (match_operand:SDF 0 "s_register_operand" "=<F_constraint>") + (unspec:SDF [(match_operand:SDF 1 "s_register_operand" "<F_constraint>") + (match_operand:SDF 2 "s_register_operand" "<F_constraint>")] + VMAXMINFNM))] + "TARGET_HARD_FLOAT && TARGET_VFP5 <vfp_double_cond>" + "<fmaxmin_op>.<V_if_elem>\\t%<V_reg>0, %<V_reg>1, %<V_reg>2" + [(set_attr "type" "f_minmax<vfp_type>") + (set_attr "conds" "unconditional")] +) + ;; Write Floating-point Status and Control Register. (define_insn "set_fpscr" [(unspec_volatile [(match_operand:SI 0 "register_operand" "r")] VUNSPEC_SET_FPSCR)] |