https://gcc.gnu.org/g:96ba66508eef23597c4e016758fc1fcc55b4c3f9

commit 96ba66508eef23597c4e016758fc1fcc55b4c3f9
Author: Michael Meissner <meiss...@linux.ibm.com>
Date:   Wed Oct 16 17:51:38 2024 -0400

    Revert changes

Diff:
---
 gcc/config/rs6000/fusion.md  | 44 ++++----------------------------------------
 gcc/config/rs6000/rs6000.cc  |  3 ---
 gcc/config/rs6000/rs6000.opt |  4 ----
 3 files changed, 4 insertions(+), 47 deletions(-)

diff --git a/gcc/config/rs6000/fusion.md b/gcc/config/rs6000/fusion.md
index 5332c84681fa..4ed9ae1d69f4 100644
--- a/gcc/config/rs6000/fusion.md
+++ b/gcc/config/rs6000/fusion.md
@@ -2896,13 +2896,13 @@
 
 ;; logical-logical fusion pattern generated by gen_logical_addsubf
 ;; vector vandc -> vxor
-(define_insn "*fuse_vandc_vxor_noxxeval"
+(define_insn "*fuse_vandc_vxor"
   [(set (match_operand:VM 3 "altivec_register_operand" "=&0,&1,&v,v")
         (xor:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" 
"v,v,v,v"))
                           (match_operand:VM 1 "altivec_register_operand" 
"v,v,v,v"))
                  (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))
    (clobber (match_scratch:VM 4 "=X,X,X,&v"))]
-  "(TARGET_P10_FUSION && (!TARGET_XXEVAL || !TARGET_PREFIXED))"
+  "(TARGET_P10_FUSION)"
   "@
    vandc %3,%1,%0\;vxor %3,%3,%2
    vandc %3,%1,%0\;vxor %3,%3,%2
@@ -2912,24 +2912,6 @@
    (set_attr "cost" "6")
    (set_attr "length" "8")])
 
-(define_insn "*fuse_vandc_vxor_xxeval"
-  [(set (match_operand:VM 3 "vsx_register_operand" "=&0,&1,&v,v,wa")
-        (xor:VM (and:VM (not:VM (match_operand:VM 0 "vsx_register_operand" 
"v,v,v,v,wa"))
-                          (match_operand:VM 1 "vsx_register_operand" 
"v,v,v,v,wa"))
-                 (match_operand:VM 2 "vsx_register_operand" "v,v,v,v,wa")))
-   (clobber (match_scratch:VM 4 "=X,X,X,&v,X"))]
-  "(TARGET_P10_FUSION && TARGET_XXEVAL && TARGET_PREFIXED)"
-  "@
-   vandc %3,%1,%0\;vxor %3,%3,%2
-   vandc %3,%1,%0\;vxor %3,%3,%2
-   vandc %3,%1,%0\;vxor %3,%3,%2
-   vandc %4,%1,%0\;vxor %3,%4,%2
-   xxeval %w3,%w0,%w1,%w2,45\t\t# fuse xxlxor (%w0, xxlandc (%x1, %x2))"
-  [(set_attr "type" "fused_vector")
-   (set_attr "cost" "6")
-   (set_attr "length" "8")
-   (set_attr "prefixed" "*,*,*,*,yes")])
-
 ;; logical-logical fusion pattern generated by gen_logical_addsubf
 ;; vector veqv -> vxor
 (define_insn "*fuse_veqv_vxor"
@@ -3022,13 +3004,13 @@
 
 ;; logical-logical fusion pattern generated by gen_logical_addsubf
 ;; vector vxor -> vxor
-(define_insn "*fuse_vxor_vxor_noxxeval"
+(define_insn "*fuse_vxor_vxor"
   [(set (match_operand:VM 3 "altivec_register_operand" "=&0,&1,&v,v")
         (xor:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" 
"v,v,v,v")
                           (match_operand:VM 1 "altivec_register_operand" 
"%v,v,v,v"))
                  (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))
    (clobber (match_scratch:VM 4 "=X,X,X,&v"))]
-  "(TARGET_P10_FUSION && (!TARGET_XXEVAL || !TARGET_PREFIXED))"
+  "(TARGET_P10_FUSION)"
   "@
    vxor %3,%1,%0\;vxor %3,%3,%2
    vxor %3,%1,%0\;vxor %3,%3,%2
@@ -3038,24 +3020,6 @@
    (set_attr "cost" "6")
    (set_attr "length" "8")])
 
-(define_insn "*fuse_vxor_vxor_xxeval"
-  [(set (match_operand:VM 3 "vsx_register_operand" "=&0,&1,&v,v,wa")
-        (xor:VM (xor:VM (match_operand:VM 0 "vsx_register_operand" 
"v,v,v,v,wa")
-                          (match_operand:VM 1 "vsx_register_operand" 
"%v,v,v,v,wa"))
-                 (match_operand:VM 2 "vsx_register_operand" "v,v,v,v,wa")))
-   (clobber (match_scratch:VM 4 "=X,X,X,&v,X"))]
-  "(TARGET_P10_FUSION && TARGET_XXEVAL && TARGET_PREFIXED)"
-  "@
-   vxor %3,%1,%0\;vxor %3,%3,%2
-   vxor %3,%1,%0\;vxor %3,%3,%2
-   vxor %3,%1,%0\;vxor %3,%3,%2
-   vxor %4,%1,%0\;vxor %3,%4,%2
-   xxeval %x3,%x0,%x1,%x2,105\t\t# fuse xxlxor (%x0, xxlxor (%x1,%x2))"
-  [(set_attr "type" "fused_vector")
-   (set_attr "cost" "6")
-   (set_attr "length" "8")
-   (set_attr "prefixed" "*,*,*,*,yes")])
-
 ;; add-add fusion pattern generated by gen_addadd
 (define_insn "*fuse_add_add"
   [(set (match_operand:GPR 3 "gpc_reg_operand" "=&0,&1,&r,r")
diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc
index 072556b7fd7a..aa67e7256bb9 100644
--- a/gcc/config/rs6000/rs6000.cc
+++ b/gcc/config/rs6000/rs6000.cc
@@ -24668,9 +24668,6 @@ static struct rs6000_opt_var const rs6000_opt_vars[] =
   { "speculate-indirect-jumps",
     offsetof (struct gcc_options, x_rs6000_speculate_indirect_jumps),
     offsetof (struct cl_target_option, x_rs6000_speculate_indirect_jumps), },
-  { "xxeval",
-    offsetof (struct gcc_options, x_TARGET_XXEVAL),
-    offsetof (struct cl_target_option, x_TARGET_XXEVAL), },
 };
 
 /* Inner function to handle attribute((target("..."))) and #pragma GCC target
diff --git a/gcc/config/rs6000/rs6000.opt b/gcc/config/rs6000/rs6000.opt
index 127befdcd56b..0d71dbaf2fc1 100644
--- a/gcc/config/rs6000/rs6000.opt
+++ b/gcc/config/rs6000/rs6000.opt
@@ -631,10 +631,6 @@ mieee128-constant
 Target Var(TARGET_IEEE128_CONSTANT) Init(1) Save
 Generate (do not generate) code that uses the LXVKQ instruction.
 
-mxxeval
-Target Var(TARGET_XXEVAL) Init(0) Save
-Use xxeval for fusion
-
 ; Documented parameters
 
 -param=rs6000-vect-unroll-limit=

Reply via email to