* config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
authorJulian Brown <julian@codesourcery.com>
Wed, 21 Jun 2017 05:36:03 +0000 (05:36 +0000)
committerNaveen H.S <naveenh@gcc.gnu.org>
Wed, 21 Jun 2017 05:36:03 +0000 (05:36 +0000)
(aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
* config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
reservation.
* config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
attribute type list for neon_multiply.
* config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
* config/arm/types.md (crypto_pmull): Add.
* config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
attribute type list.

Co-Authored-By: Naveen H.S <Naveen.Hurugalawadi@cavium.com>
From-SVN: r249433

gcc/ChangeLog
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/thunderx2t99.md
gcc/config/arm/cortex-a53.md
gcc/config/arm/cortex-a57.md
gcc/config/arm/crypto.md
gcc/config/arm/exynos-m1.md
gcc/config/arm/types.md
gcc/config/arm/xgene1.md

index b45ec890e10f8875afa43564c55d2ad707c97aad..70c03843cfc27f9581cf8c341eb07c2bdaad1f0c 100644 (file)
@@ -1,3 +1,17 @@
+2017-06-21  Julian Brown  <julian@codesourcery.com>
+           Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
+
+       * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
+       (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
+       * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
+       reservation.
+       * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
+       attribute type list for neon_multiply.
+       * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
+       * config/arm/types.md (crypto_pmull): Add.
+       * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
+       attribute type list.    
+
 2017-06-20  Andreas Tobler  <andreast@gcc.gnu.org>
 
        * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
index c5a86ff6f7196eb634be426ecea97cdfbfc7a7a4..e811f3ef01ec190284de728ff4603cfaad2b7705 100644 (file)
                    UNSPEC_PMULL))]
  "TARGET_SIMD && TARGET_CRYPTO"
  "pmull\\t%0.1q, %1.1d, %2.1d"
-  [(set_attr "type" "neon_mul_d_long")]
+  [(set_attr "type" "crypto_pmull")]
 )
 
 (define_insn "aarch64_crypto_pmullv2di"
                  UNSPEC_PMULL2))]
   "TARGET_SIMD && TARGET_CRYPTO"
   "pmull2\\t%0.1q, %1.2d, %2.2d"
-  [(set_attr "type" "neon_mul_d_long")]
+  [(set_attr "type" "crypto_pmull")]
 )
index adb010c08cb07636bf0e151a4d899086b6a2f82b..71348849fe725cd74f0c07ca4ec7a3f6405f8993 100644 (file)
   (and (eq_attr "tune" "thunderx2t99")
        (eq_attr "type" "crc"))
   "thunderx2t99_i1")
+
+;; PMULL extension.
+
+(define_insn_reservation "thunderx2t99_pmull" 5
+  (and (eq_attr "tune" "thunderx2t99")
+       (eq_attr "type" "crypto_pmull"))
+  "thunderx2t99_f1")
index ff16e360a66a0cc4393cd74c6c69a37ee2af9654..3c613375756e470174245e38b7368452b69d8203 100644 (file)
                     neon_sat_mul_b_long, neon_sat_mul_h_long,\
                     neon_sat_mul_s_long, neon_sat_mul_h_scalar_q,\
                     neon_sat_mul_s_scalar_q, neon_sat_mul_h_scalar_long,\
-                    neon_sat_mul_s_scalar_long, neon_mla_b_q,\
+                    neon_sat_mul_s_scalar_long, crypto_pmull, neon_mla_b_q,\
                     neon_mla_h_q, neon_mla_s_q, neon_mla_b_long,\
                     neon_mla_h_long, neon_mla_s_long,\
                     neon_mla_h_scalar_q, neon_mla_s_scalar_q,\
index fd307582812060020cd8f297c47a654386bcba21..ebf4a49a066c04a8c8782db0477dba4b795d28a8 100644 (file)
@@ -76,7 +76,7 @@
                           neon_mul_h_scalar_long, neon_mul_s_scalar_long,\
                           neon_sat_mul_b_long, neon_sat_mul_h_long,\
                           neon_sat_mul_s_long, neon_sat_mul_h_scalar_long,\
-                          neon_sat_mul_s_scalar_long")
+                          neon_sat_mul_s_scalar_long, crypto_pmull")
            (const_string "neon_multiply")
          (eq_attr "type" "neon_mul_b_q, neon_mul_h_q, neon_mul_s_q,\
                           neon_mul_h_scalar_q, neon_mul_s_scalar_q,\
index 46b0715932bc13876a37312826341aac4d4208e7..a5e558b0c2880f4c1cc0d94d0e3b14c2b6539285 100644 (file)
@@ -81,7 +81,7 @@
          UNSPEC_VMULLP64))]
   "TARGET_CRYPTO"
   "vmull.p64\\t%q0, %P1, %P2"
-  [(set_attr "type" "neon_mul_d_long")]
+  [(set_attr "type" "crypto_pmull")]
 )
 
 (define_insn "crypto_<crypto_pattern>"
index 5d397cc50eb6da4961338c930ebf120c23a55fce..b54d4c82ef08319db8919996ce535241c9e71d0b 100644 (file)
@@ -78,7 +78,7 @@
                           neon_sat_mul_s_scalar, neon_sat_mul_s_scalar_q,\
                           neon_sat_mul_b_long, neon_sat_mul_h_long,\
                           neon_sat_mul_s_long, neon_sat_mul_h_scalar_long,\
-                          neon_sat_mul_s_scalar_long")
+                          neon_sat_mul_s_scalar_long, crypto_pmull")
            (const_string "neon_multiply")
 
          (eq_attr "type" "neon_mla_b, neon_mla_h, neon_mla_s,\
index b0b375c6ddfbe69fff9abc3bdb6bcd592dd341f2..253f4968d12a09fe69f3a0d82f896115b0a92c47 100644 (file)
 ; crypto_sha1_slow
 ; crypto_sha256_fast
 ; crypto_sha256_slow
+; crypto_pmull
 ;
 ; The classification below is for coprocessor instructions
 ;
   crypto_sha1_slow,\
   crypto_sha256_fast,\
   crypto_sha256_slow,\
+  crypto_pmull,\
   coproc"
    (const_string "untyped"))
 
index 62a0732181e87ad32a047504c189cf731cdf2f0c..34a13f4eae089e5dbc8dbaac4c979ffde225485a 100644 (file)
 (define_insn_reservation "xgene1_neon_pmull" 5
   (and (eq_attr "tune" "xgene1")
        (eq_attr "type" "neon_mul_d_long,\
-                       "))
+                       crypto_pmull,\
+                      "))
   "xgene1_decode2op")