diff mbox

[AArch64] Add neon_pairwise_add & neon_pairwise_add_q types

Message ID CO2PR07MB2694EC19F7D449923C27C7EA83200@CO2PR07MB2694.namprd07.prod.outlook.com
State New
Headers show

Commit Message

Hurugalawadi, Naveen March 10, 2017, 6:37 a.m. UTC
Hi James,

> The whitespace in various places in this patch is inconsistent with the
> whitespace around the modified line. For example:

Fixed the whitespace.

>> So this patch isn't OK without fixes for the models
>> in cortex-a53.md and exynos-m1.md

Thanks for pointing out the missing cores in patch.
Added the support as per your comments.

Please find attached the modified patch and let us know
if its okay for stage1?

Thanks,
Naveen

Comments

Hurugalawadi, Naveen April 25, 2017, 7:05 a.m. UTC | #1
Hi,  

Please consider this as a personal reminder to review the patch
at following link and let me know your comments on the same.  

https://gcc.gnu.org/ml/gcc-patches/2017-03/msg00505.html

Thanks,
Naveen
Hurugalawadi, Naveen May 11, 2017, 4:52 a.m. UTC | #2
Hi,  

Please consider this as a personal reminder to review the patch
at following link and let me know your comments on the same.  

https://gcc.gnu.org/ml/gcc-patches/2017-03/msg00505.html

Thanks,
Naveen
Hurugalawadi, Naveen May 26, 2017, 6:24 a.m. UTC | #3
Hi,  

Please consider this as a personal reminder to review the patch
at following link and let me know your comments on the same.  

https://gcc.gnu.org/ml/gcc-patches/2017-03/msg00505.html

Thanks,
Naveen
Hurugalawadi, Naveen July 27, 2017, 6:22 a.m. UTC | #4
Hi,  

Please consider this as a personal reminder to review the patch
at following link and let me know your comments on the same.  

https://gcc.gnu.org/ml/gcc-patches/2017-03/msg00505.html

Thanks,
Naveen
Hurugalawadi, Naveen Aug. 11, 2017, 4:53 a.m. UTC | #5
Hi,  

Please consider this as a personal reminder to review the patch
at following link and let me know your comments on the same.  

https://gcc.gnu.org/ml/gcc-patches/2017-03/msg00505.html

Thanks,
Naveen
diff mbox

Patch

diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md
index 7ad3a76..4e378d3 100644
--- a/gcc/config/aarch64/aarch64-simd.md
+++ b/gcc/config/aarch64/aarch64-simd.md
@@ -2101,7 +2101,7 @@ 
 		    UNSPEC_ADDV))]
  "TARGET_SIMD"
  "add<VDQV:vp>\\t%<Vetype>0, %1.<Vtype>"
-  [(set_attr "type" "neon_reduc_add<q>")]
+  [(set_attr "type" "neon_<reduc_pairwise>_add<q>")]
 )
 
 (define_insn "aarch64_reduc_plus_internalv2si"
@@ -2110,7 +2110,7 @@ 
 		    UNSPEC_ADDV))]
  "TARGET_SIMD"
  "addp\\t%0.2s, %1.2s, %1.2s"
-  [(set_attr "type" "neon_reduc_add")]
+  [(set_attr "type" "neon_pairwise_add")]
 )
 
 (define_insn "reduc_plus_scal_<mode>"
@@ -4405,7 +4405,7 @@ 
           UNSPEC_ADDP))]
   "TARGET_SIMD"
   "addp\t%<v>0<Vmtype>, %<v>1<Vmtype>, %<v>2<Vmtype>"
-  [(set_attr "type" "neon_reduc_add<q>")]
+  [(set_attr "type" "neon_pairwise_add<q>")]
 )
 
 (define_insn "aarch64_addpdi"
@@ -4415,7 +4415,7 @@ 
           UNSPEC_ADDP))]
   "TARGET_SIMD"
   "addp\t%d0, %1.2d"
-  [(set_attr "type" "neon_reduc_add")]
+  [(set_attr "type" "neon_pairwise_add")]
 )
 
 ;; sqrt
diff --git a/gcc/config/aarch64/iterators.md b/gcc/config/aarch64/iterators.md
index 1ddf6ad..41f2f4c 100644
--- a/gcc/config/aarch64/iterators.md
+++ b/gcc/config/aarch64/iterators.md
@@ -793,6 +793,12 @@ 
 		      (V2SF "p") (V4SF  "v")
 		      (V4HF "v") (V8HF  "v")])
 
+(define_mode_attr reduc_pairwise [(V8QI "reduc") (V16QI "reduc")
+				  (V4HI "reduc") (V8HI "reduc")
+				  (V2SI "pairwise") (V4SI "reduc")
+				  (V2DI "pairwise") (V2DF "pairwise")
+				  (V2SF "pairwise") (V4SF "reduc")])
+
 (define_mode_attr vsi2qi [(V2SI "v8qi") (V4SI "v16qi")])
 (define_mode_attr VSI2QI [(V2SI "V8QI") (V4SI "V16QI")])
 
diff --git a/gcc/config/aarch64/thunderx.md b/gcc/config/aarch64/thunderx.md
index b67671d..95bfad4 100644
--- a/gcc/config/aarch64/thunderx.md
+++ b/gcc/config/aarch64/thunderx.md
@@ -266,7 +266,8 @@ 
 
 (define_insn_reservation "thunderx_neon_add" 4
   (and (eq_attr "tune" "thunderx")
-       (eq_attr "type" "neon_reduc_add, neon_reduc_minmax, neon_fp_reduc_add_s, \
+       (eq_attr "type" "neon_reduc_add, neon_pairwise_add, neon_reduc_minmax,\
+			neon_fp_reduc_add_s, \
 			neon_fp_reduc_add_d, neon_fp_to_int_s, neon_fp_to_int_d, \
 			neon_add_halve, neon_sub_halve, neon_qadd, neon_compare, \
 			neon_compare_zero, neon_minmax, neon_abd, neon_add, neon_sub, \
@@ -280,7 +281,8 @@ 
 
 (define_insn_reservation "thunderx_neon_add_q" 5
   (and (eq_attr "tune" "thunderx")
-       (eq_attr "type" "neon_reduc_add_q, neon_reduc_minmax_q, neon_fp_reduc_add_s_q, \
+       (eq_attr "type" "neon_reduc_add_q, neon_pairwise_add_q,\
+			neon_reduc_minmax_q, neon_fp_reduc_add_s_q, \
 			neon_fp_reduc_add_d_q, neon_fp_to_int_s_q, neon_fp_to_int_d_q, \
 			neon_add_halve_q, neon_sub_halve_q, neon_qadd_q, neon_compare_q, \
 			neon_compare_zero_q, neon_minmax_q, neon_abd_q, neon_add_q, neon_sub_q, \
diff --git a/gcc/config/aarch64/thunderx2t99.md b/gcc/config/aarch64/thunderx2t99.md
index 0dd7199..eb5e02a 100644
--- a/gcc/config/aarch64/thunderx2t99.md
+++ b/gcc/config/aarch64/thunderx2t99.md
@@ -231,6 +231,7 @@ 
 			neon_abs,neon_abs_q,\
 			neon_add,neon_add_q,\
 			neon_neg,neon_neg_q,\
+			neon_pairwise_add,neon_pairwise_add_q,\
 			neon_add_long,neon_add_widen,\
 			neon_add_halve,neon_add_halve_q,\
 			neon_sub_long,neon_sub_widen,\
diff --git a/gcc/config/arm/cortex-a15-neon.md b/gcc/config/arm/cortex-a15-neon.md
index 73ee84c..e3731ea 100644
--- a/gcc/config/arm/cortex-a15-neon.md
+++ b/gcc/config/arm/cortex-a15-neon.md
@@ -48,6 +48,7 @@ 
           (eq_attr "type" "neon_add, neon_add_q, neon_add_long,\
                            neon_add_widen, neon_neg, neon_neg_q,\
                            neon_reduc_add, neon_reduc_add_q,\
+                           neon_pairwise_add, neon_pairwise_add_q,\
                            neon_reduc_add_long, neon_sub, neon_sub_q,\
                            neon_sub_long, neon_sub_widen, neon_logic,\
                            neon_logic_q, neon_tst, neon_tst_q")
diff --git a/gcc/config/arm/cortex-a17-neon.md b/gcc/config/arm/cortex-a17-neon.md
index 29d08de..0eaf6fc 100644
--- a/gcc/config/arm/cortex-a17-neon.md
+++ b/gcc/config/arm/cortex-a17-neon.md
@@ -47,6 +47,7 @@ 
           (eq_attr "type" "neon_add, neon_add_q, neon_add_long,\
                            neon_add_widen, neon_neg, neon_neg_q,\
                            neon_reduc_add, neon_reduc_add_q,\
+                           neon_pairwise_add, neon_pairwise_add_q,\
                            neon_reduc_add_long, neon_sub, neon_sub_q,\
                            neon_sub_long, neon_sub_widen, neon_logic,\
                            neon_logic_q, neon_tst, neon_tst_q")
diff --git a/gcc/config/arm/cortex-a53.md b/gcc/config/arm/cortex-a53.md
index 7cf5fc5..0b6ea6b 100644
--- a/gcc/config/arm/cortex-a53.md
+++ b/gcc/config/arm/cortex-a53.md
@@ -301,7 +301,7 @@ 
 		     neon_sub_halve, neon_abs, neon_neg, neon_qneg,\
 		     neon_qabs, neon_abd, neon_minmax, neon_compare,\
 		     neon_compare_zero, neon_arith_acc, neon_reduc_add,\
-		     neon_reduc_add_acc, neon_reduc_minmax,\
+		     neon_pairwise_add, neon_reduc_add_acc, neon_reduc_minmax,\
 		     neon_logic, neon_tst, neon_shift_imm,\
 		     neon_shift_reg, neon_shift_acc, neon_sat_shift_imm,\
 		     neon_sat_shift_reg, neon_ins, neon_move,\
@@ -330,7 +330,7 @@ 
 		     neon_abs_q, neon_neg_q, neon_qneg_q, neon_qabs_q,\
 		     neon_abd_q, neon_abd_long, neon_minmax_q,\
 		     neon_compare_q, neon_compare_zero_q,\
-		     neon_arith_acc_q, neon_reduc_add_q,\
+		     neon_arith_acc_q, neon_reduc_add_q, neon_pairwise_add_q,\
 		     neon_reduc_add_long, neon_reduc_add_acc_q,\
 		     neon_reduc_minmax_q, neon_logic_q, neon_tst_q,\
 		     neon_shift_imm_q, neon_shift_imm_narrow_q,\
diff --git a/gcc/config/arm/cortex-a57.md b/gcc/config/arm/cortex-a57.md
index fd30758..9709725 100644
--- a/gcc/config/arm/cortex-a57.md
+++ b/gcc/config/arm/cortex-a57.md
@@ -50,6 +50,7 @@ 
 	  (eq_attr "type" "neon_add, neon_add_q, neon_add_long,\
 			   neon_add_widen, neon_neg, neon_neg_q,\
 			   neon_reduc_add, neon_reduc_add_q,\
+			   neon_pairwise_add, neon_pairwise_add_q,\
 			   neon_reduc_add_long, neon_sub, neon_sub_q,\
 			   neon_sub_long, neon_sub_widen, neon_logic,\
 			   neon_logic_q, neon_tst, neon_tst_q")
diff --git a/gcc/config/arm/cortex-a8-neon.md b/gcc/config/arm/cortex-a8-neon.md
index baa9180..5046370 100644
--- a/gcc/config/arm/cortex-a8-neon.md
+++ b/gcc/config/arm/cortex-a8-neon.md
@@ -51,6 +51,7 @@ 
                           (const_string "neon_int_2")
           (eq_attr "type" "neon_neg, neon_neg_q,\
                            neon_reduc_add, neon_reduc_add_q,\
+                           neon_pairwise_add, neon_pairwise_add_q,\
                            neon_reduc_add_long,\
                            neon_add_long, neon_sub_long")
                           (const_string "neon_int_3")
diff --git a/gcc/config/arm/cortex-a9-neon.md b/gcc/config/arm/cortex-a9-neon.md
index 9e9827f..022b7f6 100644
--- a/gcc/config/arm/cortex-a9-neon.md
+++ b/gcc/config/arm/cortex-a9-neon.md
@@ -52,6 +52,7 @@ 
                           (const_string "neon_int_2")
           (eq_attr "type" "neon_neg, neon_neg_q,\
                            neon_reduc_add, neon_reduc_add_q,\
+                           neon_pairwise_add, neon_pairwise_add_q,\
                            neon_reduc_add_long,\
                            neon_add_long, neon_sub_long")
                           (const_string "neon_int_3")
diff --git a/gcc/config/arm/exynos-m1.md b/gcc/config/arm/exynos-m1.md
index 5d397cc..1bb14c9 100644
--- a/gcc/config/arm/exynos-m1.md
+++ b/gcc/config/arm/exynos-m1.md
@@ -55,6 +55,7 @@ 
 
 	  (eq_attr "type" "neon_add_widen, neon_arith_acc, neon_arith_acc_q,\
 			   neon_reduc_add, neon_reduc_add_q,\
+			   neon_pairwise_add, neon_pairwise_add_q,\
 			   neon_reduc_add_acc, neon_reduc_add_acc_q,\
 			   neon_reduc_add_long, neon_add_halve_narrow_q,\
 			   neon_add_halve, neon_add_halve_q,\
diff --git a/gcc/config/arm/types.md b/gcc/config/arm/types.md
index b0b375c..193f926 100644
--- a/gcc/config/arm/types.md
+++ b/gcc/config/arm/types.md
@@ -274,6 +274,8 @@ 
 ; neon_reduc_add_long
 ; neon_reduc_add_acc
 ; neon_reduc_add_acc_q
+; neon_pairwise_add
+; neon_pairwise_add_q
 ; neon_reduc_minmax
 ; neon_reduc_minmax_q
 ; neon_logic
@@ -787,6 +789,8 @@ 
   neon_reduc_add_long,\
   neon_reduc_add_acc,\
   neon_reduc_add_acc_q,\
+  neon_pairwise_add,\
+  neon_pairwise_add_q,\
   neon_reduc_minmax,\
   neon_reduc_minmax_q,\
   neon_logic,\
@@ -1114,6 +1118,7 @@ 
           neon_compare_q, neon_compare_zero, neon_compare_zero_q,\
           neon_arith_acc, neon_arith_acc_q, neon_reduc_add,\
           neon_reduc_add_q, neon_reduc_add_long, neon_reduc_add_acc,\
+          neon_pairwise_add, neon_pairwise_add_q,\
           neon_reduc_add_acc_q, neon_reduc_minmax, neon_reduc_minmax_q,\
           neon_logic, neon_logic_q, neon_tst, neon_tst_q,\
           neon_shift_imm, neon_shift_imm_q, neon_shift_imm_narrow_q,\
diff --git a/gcc/config/arm/xgene1.md b/gcc/config/arm/xgene1.md
index 62a0732..1569dc6 100644
--- a/gcc/config/arm/xgene1.md
+++ b/gcc/config/arm/xgene1.md
@@ -288,6 +288,8 @@ 
                         neon_arith_acc_q,\
                         neon_reduc_add,\
                         neon_reduc_add_q,\
+                        neon_pairwise_add,\
+                        neon_pairwise_add_q,\
                         neon_add_halve,\
                         neon_add_halve_q,\
                         neon_sub_halve,\