Commit a2074e9c by Julian Brown Committed by Naveen H.S

* 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.


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

From-SVN: r249433
parent 12d0fd3f
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> 2017-06-20 Andreas Tobler <andreast@gcc.gnu.org>
* config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
......
...@@ -5831,7 +5831,7 @@ ...@@ -5831,7 +5831,7 @@
UNSPEC_PMULL))] UNSPEC_PMULL))]
"TARGET_SIMD && TARGET_CRYPTO" "TARGET_SIMD && TARGET_CRYPTO"
"pmull\\t%0.1q, %1.1d, %2.1d" "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" (define_insn "aarch64_crypto_pmullv2di"
...@@ -5841,5 +5841,5 @@ ...@@ -5841,5 +5841,5 @@
UNSPEC_PMULL2))] UNSPEC_PMULL2))]
"TARGET_SIMD && TARGET_CRYPTO" "TARGET_SIMD && TARGET_CRYPTO"
"pmull2\\t%0.1q, %1.2d, %2.2d" "pmull2\\t%0.1q, %1.2d, %2.2d"
[(set_attr "type" "neon_mul_d_long")] [(set_attr "type" "crypto_pmull")]
) )
...@@ -461,3 +461,10 @@ ...@@ -461,3 +461,10 @@
(and (eq_attr "tune" "thunderx2t99") (and (eq_attr "tune" "thunderx2t99")
(eq_attr "type" "crc")) (eq_attr "type" "crc"))
"thunderx2t99_i1") "thunderx2t99_i1")
;; PMULL extension.
(define_insn_reservation "thunderx2t99_pmull" 5
(and (eq_attr "tune" "thunderx2t99")
(eq_attr "type" "crypto_pmull"))
"thunderx2t99_f1")
...@@ -389,7 +389,7 @@ ...@@ -389,7 +389,7 @@
neon_sat_mul_b_long, neon_sat_mul_h_long,\ 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_long, neon_sat_mul_h_scalar_q,\
neon_sat_mul_s_scalar_q, neon_sat_mul_h_scalar_long,\ 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_q, neon_mla_s_q, neon_mla_b_long,\
neon_mla_h_long, neon_mla_s_long,\ neon_mla_h_long, neon_mla_s_long,\
neon_mla_h_scalar_q, neon_mla_s_scalar_q,\ neon_mla_h_scalar_q, neon_mla_s_scalar_q,\
......
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
neon_mul_h_scalar_long, neon_mul_s_scalar_long,\ neon_mul_h_scalar_long, neon_mul_s_scalar_long,\
neon_sat_mul_b_long, neon_sat_mul_h_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_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") (const_string "neon_multiply")
(eq_attr "type" "neon_mul_b_q, neon_mul_h_q, neon_mul_s_q,\ (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,\ neon_mul_h_scalar_q, neon_mul_s_scalar_q,\
......
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
UNSPEC_VMULLP64))] UNSPEC_VMULLP64))]
"TARGET_CRYPTO" "TARGET_CRYPTO"
"vmull.p64\\t%q0, %P1, %P2" "vmull.p64\\t%q0, %P1, %P2"
[(set_attr "type" "neon_mul_d_long")] [(set_attr "type" "crypto_pmull")]
) )
(define_insn "crypto_<crypto_pattern>" (define_insn "crypto_<crypto_pattern>"
......
...@@ -78,7 +78,7 @@ ...@@ -78,7 +78,7 @@
neon_sat_mul_s_scalar, neon_sat_mul_s_scalar_q,\ neon_sat_mul_s_scalar, neon_sat_mul_s_scalar_q,\
neon_sat_mul_b_long, neon_sat_mul_h_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_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") (const_string "neon_multiply")
(eq_attr "type" "neon_mla_b, neon_mla_h, neon_mla_s,\ (eq_attr "type" "neon_mla_b, neon_mla_h, neon_mla_s,\
......
...@@ -539,6 +539,7 @@ ...@@ -539,6 +539,7 @@
; crypto_sha1_slow ; crypto_sha1_slow
; crypto_sha256_fast ; crypto_sha256_fast
; crypto_sha256_slow ; crypto_sha256_slow
; crypto_pmull
; ;
; The classification below is for coprocessor instructions ; The classification below is for coprocessor instructions
; ;
...@@ -1078,6 +1079,7 @@ ...@@ -1078,6 +1079,7 @@
crypto_sha1_slow,\ crypto_sha1_slow,\
crypto_sha256_fast,\ crypto_sha256_fast,\
crypto_sha256_slow,\ crypto_sha256_slow,\
crypto_pmull,\
coproc" coproc"
(const_string "untyped")) (const_string "untyped"))
......
...@@ -527,5 +527,6 @@ ...@@ -527,5 +527,6 @@
(define_insn_reservation "xgene1_neon_pmull" 5 (define_insn_reservation "xgene1_neon_pmull" 5
(and (eq_attr "tune" "xgene1") (and (eq_attr "tune" "xgene1")
(eq_attr "type" "neon_mul_d_long,\ (eq_attr "type" "neon_mul_d_long,\
")) crypto_pmull,\
"))
"xgene1_decode2op") "xgene1_decode2op")
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