aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEvandro Menezes <e.menezes@samsung.com>2016-02-15 21:15:49 +0000
committerEvandro Menezes <evandro@gcc.gnu.org>2016-02-15 21:15:49 +0000
commitc297d256e364bf1a1448da25497cda331c755646 (patch)
tree7b8c9c120e6c85a030236c02ad9b119e3f57e42f /gcc
parent2bd0a2d6b1b823008e36e1a5833cf520c3807ecc (diff)
downloadgcc-c297d256e364bf1a1448da25497cda331c755646.zip
gcc-c297d256e364bf1a1448da25497cda331c755646.tar.gz
gcc-c297d256e364bf1a1448da25497cda331c755646.tar.bz2
Add support for the FCCMP insn types
2016-01-21 Evandro Menezes <e.menezes@samsung.com> gcc/ * config/aarch64/aarch64.md (fccmp): Change insn type. (fccmpe): Likewise. * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types. * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise. * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise. * config/arm/xgene1.md (xgene1_fcmp): Likewise. * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation. * config/arm/types.md (fccmps): Add new insn type. (fccmpd): Likewise. From-SVN: r233432
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog14
-rw-r--r--gcc/config/aarch64/aarch64.md4
-rw-r--r--gcc/config/aarch64/thunderx.md2
-rw-r--r--gcc/config/arm/cortex-a53.md4
-rw-r--r--gcc/config/arm/cortex-a57.md2
-rw-r--r--gcc/config/arm/exynos-m1.md5
-rw-r--r--gcc/config/arm/types.md3
-rw-r--r--gcc/config/arm/xgene1.md2
8 files changed, 29 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5858a5e..54e7042 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,17 @@
+2016-02-15 Evandro Menezes <e.menezes@samsung.com>
+
+ Add support for the FCCMP insn types
+
+ * config/aarch64/aarch64.md (fccmp): Change insn type.
+ (fccmpe): Likewise.
+ * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
+ * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
+ * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
+ * config/arm/xgene1.md (xgene1_fcmp): Likewise.
+ * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
+ * config/arm/types.md (fccmps): Add new insn type.
+ (fccmpd): Likewise.
+
2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
* alias.c (get_alias_set): Fix a typo in comment.
diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
index b42f550..77bd191 100644
--- a/gcc/config/aarch64/aarch64.md
+++ b/gcc/config/aarch64/aarch64.md
@@ -302,7 +302,7 @@
(unspec:CCFP [(match_operand 5 "immediate_operand")] UNSPEC_NZCV)))]
"TARGET_FLOAT"
"fccmp\\t%<s>2, %<s>3, %k5, %m4"
- [(set_attr "type" "fcmp<s>")]
+ [(set_attr "type" "fccmp<s>")]
)
(define_insn "fccmpe<mode>"
@@ -317,7 +317,7 @@
(unspec:CCFPE [(match_operand 5 "immediate_operand")] UNSPEC_NZCV)))]
"TARGET_FLOAT"
"fccmpe\\t%<s>2, %<s>3, %k5, %m4"
- [(set_attr "type" "fcmp<s>")]
+ [(set_attr "type" "fccmp<s>")]
)
;; Expansion of signed mod by a power of 2 using CSNEG.
diff --git a/gcc/config/aarch64/thunderx.md b/gcc/config/aarch64/thunderx.md
index 922df39..058713a 100644
--- a/gcc/config/aarch64/thunderx.md
+++ b/gcc/config/aarch64/thunderx.md
@@ -156,7 +156,7 @@
(define_insn_reservation "thunderx_fcmp" 3
(and (eq_attr "tune" "thunderx")
- (eq_attr "type" "fcmps,fcmpd"))
+ (eq_attr "type" "fcmps,fcmpd,fccmps,fccmpd"))
"thunderx_pipe1")
(define_insn_reservation "thunderx_fmul" 6
diff --git a/gcc/config/arm/cortex-a53.md b/gcc/config/arm/cortex-a53.md
index c1eeedb..fc60bc2 100644
--- a/gcc/config/arm/cortex-a53.md
+++ b/gcc/config/arm/cortex-a53.md
@@ -508,8 +508,8 @@
(define_insn_reservation "cortex_a53_fpalu" 5
(and (eq_attr "tune" "cortexa53")
(eq_attr "type" "ffariths, fadds, ffarithd, faddd, fmov,
- f_cvt, fcmps, fcmpd, fcsel, f_rints, f_rintd,
- f_minmaxs, f_minmaxd"))
+ f_cvt, fcmps, fcmpd, fccmps, fccmpd, fcsel,
+ f_rints, f_rintd, f_minmaxs, f_minmaxd"))
"cortex_a53_slot_any,cortex_a53_fp_alu")
(define_insn_reservation "cortex_a53_fconst" 3
diff --git a/gcc/config/arm/cortex-a57.md b/gcc/config/arm/cortex-a57.md
index ca6cfc0..37912db 100644
--- a/gcc/config/arm/cortex-a57.md
+++ b/gcc/config/arm/cortex-a57.md
@@ -716,7 +716,7 @@
(define_insn_reservation "cortex_a57_fp_cmp" 7
(and (eq_attr "tune" "cortexa57")
- (eq_attr "type" "fcmps,fcmpd"))
+ (eq_attr "type" "fcmps,fcmpd,fccmps,fccmpd"))
"ca57_cx2")
(define_insn_reservation "cortex_a57_fp_arith" 4
diff --git a/gcc/config/arm/exynos-m1.md b/gcc/config/arm/exynos-m1.md
index 0448073..2f52b22 100644
--- a/gcc/config/arm/exynos-m1.md
+++ b/gcc/config/arm/exynos-m1.md
@@ -823,6 +823,11 @@
(eq_attr "type" "fcmps, fcmpd"))
"em1_nmisc")
+(define_insn_reservation "exynos_m1_fp_ccmp" 7
+ (and (eq_attr "tune" "exynosm1")
+ (eq_attr "type" "fccmps, fccmpd"))
+ "(em1_st, em1_nmisc)")
+
(define_insn_reservation "exynos_m1_fp_sel" 4
(and (eq_attr "tune" "exynosm1")
(eq_attr "type" "fcsel"))
diff --git a/gcc/config/arm/types.md b/gcc/config/arm/types.md
index 321ff89..25f79b4 100644
--- a/gcc/config/arm/types.md
+++ b/gcc/config/arm/types.md
@@ -70,6 +70,7 @@
; f_rint[d,s] double/single floating point rount to integral.
; f_store[d,s] double/single store to memory. Used for VFP unit.
; fadd[d,s] double/single floating-point scalar addition.
+; fccmp[d,s] From ARMv8-A: floating-point conditional compare.
; fcmp[d,s] double/single floating-point compare.
; fconst[d,s] double/single load immediate.
; fcsel From ARMv8-A: Floating-point conditional select.
@@ -582,6 +583,8 @@
f_stores,\
faddd,\
fadds,\
+ fccmpd,\
+ fccmps,\
fcmpd,\
fcmps,\
fconstd,\
diff --git a/gcc/config/arm/xgene1.md b/gcc/config/arm/xgene1.md
index 8dfd8a1..b7aeac6 100644
--- a/gcc/config/arm/xgene1.md
+++ b/gcc/config/arm/xgene1.md
@@ -154,7 +154,7 @@
(define_insn_reservation "xgene1_fcmp" 10
(and (eq_attr "tune" "xgene1")
- (eq_attr "type" "fcmpd,fcmps"))
+ (eq_attr "type" "fcmpd,fcmps,fccmpd,fccmps"))
"xgene1_decode1op,xgene1_fsu+xgene1_fcmp*3")
(define_insn_reservation "xgene1_fcsel" 3