Commit c297d256 by Evandro Menezes Committed by Evandro Menezes

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
parent 2bd0a2d6
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> 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
* alias.c (get_alias_set): Fix a typo in comment. * alias.c (get_alias_set): Fix a typo in comment.
......
...@@ -302,7 +302,7 @@ ...@@ -302,7 +302,7 @@
(unspec:CCFP [(match_operand 5 "immediate_operand")] UNSPEC_NZCV)))] (unspec:CCFP [(match_operand 5 "immediate_operand")] UNSPEC_NZCV)))]
"TARGET_FLOAT" "TARGET_FLOAT"
"fccmp\\t%<s>2, %<s>3, %k5, %m4" "fccmp\\t%<s>2, %<s>3, %k5, %m4"
[(set_attr "type" "fcmp<s>")] [(set_attr "type" "fccmp<s>")]
) )
(define_insn "fccmpe<mode>" (define_insn "fccmpe<mode>"
...@@ -317,7 +317,7 @@ ...@@ -317,7 +317,7 @@
(unspec:CCFPE [(match_operand 5 "immediate_operand")] UNSPEC_NZCV)))] (unspec:CCFPE [(match_operand 5 "immediate_operand")] UNSPEC_NZCV)))]
"TARGET_FLOAT" "TARGET_FLOAT"
"fccmpe\\t%<s>2, %<s>3, %k5, %m4" "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. ;; Expansion of signed mod by a power of 2 using CSNEG.
......
...@@ -156,7 +156,7 @@ ...@@ -156,7 +156,7 @@
(define_insn_reservation "thunderx_fcmp" 3 (define_insn_reservation "thunderx_fcmp" 3
(and (eq_attr "tune" "thunderx") (and (eq_attr "tune" "thunderx")
(eq_attr "type" "fcmps,fcmpd")) (eq_attr "type" "fcmps,fcmpd,fccmps,fccmpd"))
"thunderx_pipe1") "thunderx_pipe1")
(define_insn_reservation "thunderx_fmul" 6 (define_insn_reservation "thunderx_fmul" 6
......
...@@ -508,8 +508,8 @@ ...@@ -508,8 +508,8 @@
(define_insn_reservation "cortex_a53_fpalu" 5 (define_insn_reservation "cortex_a53_fpalu" 5
(and (eq_attr "tune" "cortexa53") (and (eq_attr "tune" "cortexa53")
(eq_attr "type" "ffariths, fadds, ffarithd, faddd, fmov, (eq_attr "type" "ffariths, fadds, ffarithd, faddd, fmov,
f_cvt, fcmps, fcmpd, fcsel, f_rints, f_rintd, f_cvt, fcmps, fcmpd, fccmps, fccmpd, fcsel,
f_minmaxs, f_minmaxd")) f_rints, f_rintd, f_minmaxs, f_minmaxd"))
"cortex_a53_slot_any,cortex_a53_fp_alu") "cortex_a53_slot_any,cortex_a53_fp_alu")
(define_insn_reservation "cortex_a53_fconst" 3 (define_insn_reservation "cortex_a53_fconst" 3
......
...@@ -716,7 +716,7 @@ ...@@ -716,7 +716,7 @@
(define_insn_reservation "cortex_a57_fp_cmp" 7 (define_insn_reservation "cortex_a57_fp_cmp" 7
(and (eq_attr "tune" "cortexa57") (and (eq_attr "tune" "cortexa57")
(eq_attr "type" "fcmps,fcmpd")) (eq_attr "type" "fcmps,fcmpd,fccmps,fccmpd"))
"ca57_cx2") "ca57_cx2")
(define_insn_reservation "cortex_a57_fp_arith" 4 (define_insn_reservation "cortex_a57_fp_arith" 4
......
...@@ -823,6 +823,11 @@ ...@@ -823,6 +823,11 @@
(eq_attr "type" "fcmps, fcmpd")) (eq_attr "type" "fcmps, fcmpd"))
"em1_nmisc") "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 (define_insn_reservation "exynos_m1_fp_sel" 4
(and (eq_attr "tune" "exynosm1") (and (eq_attr "tune" "exynosm1")
(eq_attr "type" "fcsel")) (eq_attr "type" "fcsel"))
......
...@@ -70,6 +70,7 @@ ...@@ -70,6 +70,7 @@
; f_rint[d,s] double/single floating point rount to integral. ; f_rint[d,s] double/single floating point rount to integral.
; f_store[d,s] double/single store to memory. Used for VFP unit. ; f_store[d,s] double/single store to memory. Used for VFP unit.
; fadd[d,s] double/single floating-point scalar addition. ; 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. ; fcmp[d,s] double/single floating-point compare.
; fconst[d,s] double/single load immediate. ; fconst[d,s] double/single load immediate.
; fcsel From ARMv8-A: Floating-point conditional select. ; fcsel From ARMv8-A: Floating-point conditional select.
...@@ -582,6 +583,8 @@ ...@@ -582,6 +583,8 @@
f_stores,\ f_stores,\
faddd,\ faddd,\
fadds,\ fadds,\
fccmpd,\
fccmps,\
fcmpd,\ fcmpd,\
fcmps,\ fcmps,\
fconstd,\ fconstd,\
......
...@@ -154,7 +154,7 @@ ...@@ -154,7 +154,7 @@
(define_insn_reservation "xgene1_fcmp" 10 (define_insn_reservation "xgene1_fcmp" 10
(and (eq_attr "tune" "xgene1") (and (eq_attr "tune" "xgene1")
(eq_attr "type" "fcmpd,fcmps")) (eq_attr "type" "fcmpd,fcmps,fccmpd,fccmps"))
"xgene1_decode1op,xgene1_fsu+xgene1_fcmp*3") "xgene1_decode1op,xgene1_fsu+xgene1_fcmp*3")
(define_insn_reservation "xgene1_fcsel" 3 (define_insn_reservation "xgene1_fcsel" 3
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment