This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 2/4 v2][AArch64] Add support for FCCMP


On 01/21/16 13:58, Evandro Menezes wrote:
Hi, James.

On 01/21/16 03:24, James Greenhalgh wrote:
On Wed, Jan 06, 2016 at 02:44:47PM -0600, Evandro Menezes wrote:
On 01/06/2016 06:04 AM, Wilco Dijkstra wrote:
Here's what I had in mind when I inquired about distinguishing FCMP from
FCCMP.  As you can see in the patch, Exynos is the only target that
cares about it, but I wonder if ThunderX or Xgene would too.

What do you think?
The new attributes look fine (I've got a similar outstanding change), however please don't add them to non-AArch64 cores. We only need it for thunderx.md,
cortex-a53.md, cortex-a57.md, xgene1.md and exynos-m1.md.
         Add support for the FCCMP insn types

         2016-01-04  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.

Got it.  Here's an updated patch.  Again, assuming that your
original patch is in place.  Perhaps you can build on it.
If we don't have any targets which care about the fccmps/fccmpd split in
the code base, do we really need it? Can we just follow the example of
fcsel?

The Exynos M1 does care about the difference between FCMP and FCCMP, as can be seen in the patch.



More explicitly:

   (define_insn_reservation "exynos_m1_fp_cmp" 4
      (and (eq_attr "tune" "exynosm1")
           (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")


Thank you,

--
Evandro Menezes


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]