https://gcc.gnu.org/g:0b7aaee1ce5fa2f2f5f2239450eb128dd6d2b2e5

commit 0b7aaee1ce5fa2f2f5f2239450eb128dd6d2b2e5
Author: Michael Meissner <meiss...@linux.ibm.com>
Date:   Tue Aug 20 12:46:42 2024 -0400

    Revert changes

Diff:
---
 gcc/config/rs6000/rs6000-builtins.def             |  10 -
 gcc/config/rs6000/vector-pair.md                  | 326 +---------------------
 gcc/doc/extend.texi                               |   9 -
 gcc/testsuite/gcc.target/powerpc/vector-pair-10.c |  61 ----
 gcc/testsuite/gcc.target/powerpc/vector-pair-11.c |  65 -----
 gcc/testsuite/gcc.target/powerpc/vector-pair-12.c |  65 -----
 gcc/testsuite/gcc.target/powerpc/vector-pair-5.c  |  56 ----
 gcc/testsuite/gcc.target/powerpc/vector-pair-6.c  |  56 ----
 gcc/testsuite/gcc.target/powerpc/vector-pair-7.c  |  18 --
 gcc/testsuite/gcc.target/powerpc/vector-pair-8.c  |  18 --
 gcc/testsuite/gcc.target/powerpc/vector-pair-9.c  |  61 ----
 11 files changed, 1 insertion(+), 744 deletions(-)

diff --git a/gcc/config/rs6000/rs6000-builtins.def 
b/gcc/config/rs6000/rs6000-builtins.def
index b3eaa842f12..099f4b6a008 100644
--- a/gcc/config/rs6000/rs6000-builtins.def
+++ b/gcc/config/rs6000/rs6000-builtins.def
@@ -3934,10 +3934,6 @@
   void __builtin_vsx_stxvp (v256, unsigned long, const v256 *);
     STXVP nothing {mma,pair}
 
-;; Vector pair built-in functions.
-  v256 __builtin_vpair_zero ();
-    VPAIR_ZERO vpair_zero {mma}
-
 ;; Vector pair built-in functions with float elements
   v256 __builtin_vpair_f32_abs (v256);
     VPAIR_F32_ABS vpair_abs_v8sf2 {mma}
@@ -3975,9 +3971,6 @@
   v256 __builtin_vpair_f32_nfms (v256, v256, v256);
     VPAIR_F32_NFMS vpair_nfms_v8sf4 {mma}
 
-  v256 __builtin_vpair_f32_splat (float);
-    VPAIR_F32_SPLAT vpair_splat_v8sf {mma}
-
   v256 __builtin_vpair_f32_sub (v256, v256);
     VPAIR_F32_SUB vpair_sub_v8sf3 {mma}
 
@@ -4018,8 +4011,5 @@
   v256 __builtin_vpair_f64_nfms (v256, v256, v256);
     VPAIR_F64_NFMS vpair_nfms_v4df4 {mma}
 
-  v256 __builtin_vpair_f64_splat (double);
-    VPAIR_F64_SPLAT vpair_splat_v4df {mma}
-
   v256 __builtin_vpair_f64_sub (v256, v256);
     VPAIR_F64_SUB vpair_sub_v4df3 {mma}
diff --git a/gcc/config/rs6000/vector-pair.md b/gcc/config/rs6000/vector-pair.md
index 7a81acbdc05..73ae46e6d40 100644
--- a/gcc/config/rs6000/vector-pair.md
+++ b/gcc/config/rs6000/vector-pair.md
@@ -38,9 +38,7 @@
    UNSPEC_VPAIR_NEG
    UNSPEC_VPAIR_PLUS
    UNSPEC_VPAIR_SMAX
-   UNSPEC_VPAIR_SMIN
-   UNSPEC_VPAIR_ZERO
-   UNSPEC_VPAIR_SPLAT])
+   UNSPEC_VPAIR_SMIN])
 
 ;; Vector pair element ID that defines the scaler element within the vector 
pair.
 (define_c_enum "vpair_element"
@@ -100,104 +98,6 @@
 ;; Map the scalar element ID into the appropriate insn type for divide.
 (define_int_attr vpair_divtype [(VPAIR_ELEMENT_FLOAT  "vecfdiv")
                                (VPAIR_ELEMENT_DOUBLE "vecdiv")])
-
-;; Mode iterator for the vector modes that we provide splat operations for.
-(define_mode_iterator VPAIR_SPLAT_VMODE [V4SF V2DF])
-
-;; Map element mode to 128-bit vector mode for splat operations
-(define_mode_attr VPAIR_SPLAT_ELEMENT_TO_VMODE [(SF "V4SF")
-                                               (DF "V2DF")])
-
-;; Map either element mode or vector mode into the name for the splat insn.
-(define_mode_attr vpair_splat_name [(SF   "v8sf")
-                                   (DF   "v4df")
-                                   (V4SF "v8sf")
-                                   (V2DF "v4df")])
-
-;; Initialize a vector pair to 0
-(define_insn_and_split "vpair_zero"
-  [(set (match_operand:OO 0 "vsx_register_operand" "=wa")
-       (unspec:OO [(const_int 0)] UNSPEC_VPAIR_ZERO))]
-  "TARGET_MMA"
-  "#"
-  "&& reload_completed"
-  [(set (match_dup 1) (match_dup 3))
-   (set (match_dup 2) (match_dup 3))]
-{
-  rtx op0 = operands[0];
-
-  operands[1] = simplify_gen_subreg (V2DFmode, op0, OOmode, 0);
-  operands[2] = simplify_gen_subreg (V2DFmode, op0, OOmode, 16);
-  operands[3] = CONST0_RTX (V2DFmode);
-}
-  [(set_attr "length" "8")
-   (set_attr "type" "vecperm")])
-
-;; Create a vector pair with a value splat'ed (duplicated) to all of the
-;; elements.
-(define_expand "vpair_splat_<vpair_splat_name>"
-  [(use (match_operand:OO 0 "vsx_register_operand"))
-   (use (match_operand:SFDF 1 "input_operand"))]
-  "TARGET_MMA"
-{
-  rtx op0 = operands[0];
-  rtx op1 = operands[1];
-  machine_mode element_mode = <MODE>mode;
-
-  if (op1 == CONST0_RTX (element_mode))
-    {
-      emit_insn (gen_vpair_zero (op0));
-      DONE;
-    }
-
-  machine_mode vector_mode = <VPAIR_SPLAT_ELEMENT_TO_VMODE>mode;
-  rtx vec = gen_reg_rtx (vector_mode);
-  unsigned num_elements = GET_MODE_NUNITS (vector_mode);
-  rtvec elements = rtvec_alloc (num_elements);
-  for (size_t i = 0; i < num_elements; i++)
-    RTVEC_ELT (elements, i) = copy_rtx (op1);
-
-  rs6000_expand_vector_init (vec, gen_rtx_PARALLEL (vector_mode, elements));
-  emit_insn (gen_vpair_splat_<vpair_splat_name>_internal (op0, vec));
-  DONE;
-})
-
-;; Inner splat support.  Operand1 is the vector splat created above.  Allow
-;; operand 1 to overlap with the output registers to eliminate one move
-;; instruction.
-(define_insn_and_split "vpair_splat_<vpair_splat_name>_internal"
-  [(set (match_operand:OO 0 "vsx_register_operand" "=wa,wa")
-       (unspec:OO
-        [(match_operand:VPAIR_SPLAT_VMODE 1 "vsx_register_operand" "0,wa")]
-        UNSPEC_VPAIR_SPLAT))]
-  "TARGET_MMA"
-  "#"
-  "&& reload_completed"
-  [(const_int 0)]
-{
-  rtx op0 = operands[0];
-  rtx op0_a = simplify_gen_subreg (<MODE>mode, op0, OOmode, 0);
-  rtx op0_b = simplify_gen_subreg (<MODE>mode, op0, OOmode, 16);
-  rtx op1 = operands[1];
-  unsigned op1_regno = reg_or_subregno (op1);
-
-  /* Check if the input is one of the output registers.  */
-  if (op1_regno == reg_or_subregno (op0_a))
-    emit_move_insn (op0_b, op1);
-
-  else if (op1_regno == reg_or_subregno (op0_b))
-    emit_move_insn (op0_a, op1);
-
-  else
-    {
-      emit_move_insn (op0_a, op1);
-      emit_move_insn (op0_b, op1);
-    }
-
-  DONE;
-}
-  [(set_attr "length" "*,8")
-   (set_attr "type" "vecmove")])
 
 ;; Vector pair unary operations.  The last argument in the UNSPEC is a
 ;; CONST_INT which identifies what the scalar element is.
@@ -261,31 +161,6 @@
    (set (attr "type") (if_then_else (match_test "<VPAIR_OP> == DIV")
                                    (const_string "<vpair_divtype>")
                                    (const_string "<vpair_type>")))])
-
-;; Optimize vector pair add of a negative value into a subtract.
-(define_insn_and_split "*vpair_add_neg_<vpair_modename>3"
-  [(set (match_operand:OO 0 "vsx_register_operand" "=wa")
-       (unspec:OO
-        [(match_operand:OO 1 "vsx_register_operand" "wa")
-         (unspec:OO
-          [(match_operand:OO 2 "vsx_register_operand" "wa")
-           (const_int VPAIR_FP_ELEMENT)]
-          UNSPEC_VPAIR_NEG)
-         (const_int VPAIR_FP_ELEMENT)]
-        VPAIR_FP_BINARY))]
-  "TARGET_MMA"
-  "#"
-  "&& 1"
-  [(set (match_dup 0)
-       (unspec:OO
-        [(match_dup 1)
-         (match_dup 2)
-         (const_int VPAIR_FP_ELEMENT)]
-        UNSPEC_VPAIR_MINUS))]
-{
-}
-  [(set_attr "length" "8")
-   (set_attr "type" "<vpair_type>")])
 
 ;; Vector pair fused-multiply (FMA) operations.  The last argument in the
 ;; UNSPEC is a CONST_INT which identifies what the scalar element is.
@@ -379,202 +254,3 @@
 }
   [(set_attr "length" "8")
    (set_attr "type" "<vpair_type>")])
-
-;; Optimize vector pair multiply and vector pair add into vector pair fma,
-;; providing the compiler would do this optimization for scalar and vectors.
-;; Unlike most of the define_insn_and_splits, this can be done before register
-;; allocation.
-(define_insn_and_split "*vpair_fma_<vpair_modename>_merge"
-  [(set (match_operand:OO 0 "vsx_register_operand" "=wa,wa")
-       (unspec:OO
-        [(unspec:OO
-          [(match_operand:OO 1 "vsx_register_operand" "%wa,wa")
-           (match_operand:OO 2 "vsx_register_operand" "wa,0")
-           (const_int VPAIR_FP_ELEMENT)]
-          UNSPEC_VPAIR_MULT)
-         (match_operand:OO 3 "vsx_register_operand" "0,wa")
-         (const_int VPAIR_FP_ELEMENT)]
-        UNSPEC_VPAIR_PLUS))]
-  "TARGET_MMA && flag_fp_contract_mode == FP_CONTRACT_FAST"
-  "#"
-  "&& 1"
-  [(set (match_dup 0)
-       (unspec:OO
-        [(match_dup 1)
-         (match_dup 2)
-         (match_dup 3)
-         (const_int VPAIR_FP_ELEMENT)]
-        UNSPEC_VPAIR_FMA))]
-{
-}
-  [(set_attr "length" "8")
-   (set_attr "type" "<vpair_type>")])
-
-;; Merge multiply and subtract.
-(define_insn_and_split "*vpair_fma_<vpair_modename>_merge"
-  [(set (match_operand:OO 0 "vsx_register_operand" "=wa,wa")
-       (unspec:OO
-        [(unspec:OO
-          [(match_operand:OO 1 "vsx_register_operand" "%wa,wa")
-           (match_operand:OO 2 "vsx_register_operand" "wa,0")
-           (const_int VPAIR_FP_ELEMENT)]
-          UNSPEC_VPAIR_MULT)
-         (match_operand:OO 3 "vsx_register_operand" "0,wa")
-         (const_int VPAIR_FP_ELEMENT)]
-        UNSPEC_VPAIR_MINUS))]
-  "TARGET_MMA && flag_fp_contract_mode == FP_CONTRACT_FAST"
-  "#"
-  "&& 1"
-  [(set (match_dup 0)
-       (unspec:OO
-        [(match_dup 1)
-         (match_dup 2)
-         (unspec:OO
-          [(match_dup 3)
-           (const_int VPAIR_FP_ELEMENT)]
-          UNSPEC_VPAIR_NEG)
-         (const_int VPAIR_FP_ELEMENT)]
-        UNSPEC_VPAIR_FMA))]
-{
-}
-  [(set_attr "length" "8")
-   (set_attr "type" "<vpair_type>")])
-
-(define_insn_and_split "*vpair_fma_<vpair_modename>_merge2"
-  [(set (match_operand:OO 0 "vsx_register_operand" "=wa,wa")
-       (unspec:OO
-        [(unspec:OO
-          [(match_operand:OO 1 "vsx_register_operand" "%wa,wa")
-           (match_operand:OO 2 "vsx_register_operand" "wa,0")
-           (const_int VPAIR_FP_ELEMENT)]
-          UNSPEC_VPAIR_MULT)
-         (unspec:OO
-          [(match_operand:OO 3 "vsx_register_operand" "0,wa")
-           (const_int VPAIR_FP_ELEMENT)]
-          UNSPEC_VPAIR_NEG)
-         (const_int VPAIR_FP_ELEMENT)]
-        UNSPEC_VPAIR_PLUS))]
-  "TARGET_MMA && flag_fp_contract_mode == FP_CONTRACT_FAST"
-  "#"
-  "&& 1"
-  [(set (match_dup 0)
-       (unspec:OO
-        [(match_dup 1)
-         (match_dup 2)
-         (unspec:OO
-          [(match_dup 3)
-           (const_int VPAIR_FP_ELEMENT)]
-          UNSPEC_VPAIR_NEG)
-         (const_int VPAIR_FP_ELEMENT)]
-        UNSPEC_VPAIR_FMA))]
-{
-}
-  [(set_attr "length" "8")
-   (set_attr "type" "<vpair_type>")])
-
-;; Merge negate, multiply, and add.
-(define_insn_and_split "*vpair_nfma_<vpair_modename>_merge"
-  [(set (match_operand:OO 0 "vsx_register_operand" "=wa,wa")
-       (unspec:OO
-        [(unspec:OO
-          [(unspec:OO
-            [(match_operand:OO 1 "vsx_register_operand" "%wa,wa")
-             (match_operand:OO 2 "vsx_register_operand" "wa,0")
-             (const_int VPAIR_FP_ELEMENT)]
-            UNSPEC_VPAIR_MULT)
-           (match_operand:OO 3 "vsx_register_operand" "0,wa")
-           (const_int VPAIR_FP_ELEMENT)]
-          UNSPEC_VPAIR_PLUS)
-         (const_int VPAIR_FP_ELEMENT)]
-        UNSPEC_VPAIR_NEG))]
-  "TARGET_MMA && flag_fp_contract_mode == FP_CONTRACT_FAST"
-  "#"
-  "&& 1"
-  [(set (match_dup 0)
-       (unspec:OO
-        [(unspec:OO
-          [(match_dup 1)
-           (match_dup 2)
-           (match_dup 3)
-           (const_int VPAIR_FP_ELEMENT)]
-          UNSPEC_VPAIR_FMA)
-         (const_int VPAIR_FP_ELEMENT)]
-        UNSPEC_VPAIR_NEG))]
-{
-}
-  [(set_attr "length" "8")
-   (set_attr "type" "<vpair_type>")])
-
-;; Merge negate, multiply, and subtract.
-(define_insn_and_split "*vpair_nfms_<vpair_modename>_merge"
-  [(set (match_operand:OO 0 "vsx_register_operand" "=wa,wa")
-       (unspec:OO
-        [(unspec:OO
-          [(unspec:OO
-            [(match_operand:OO 1 "vsx_register_operand" "%wa,wa")
-             (match_operand:OO 2 "vsx_register_operand" "wa,0")
-             (const_int VPAIR_FP_ELEMENT)]
-            UNSPEC_VPAIR_MULT)
-           (match_operand:OO 3 "vsx_register_operand" "0,wa")
-           (const_int VPAIR_FP_ELEMENT)]
-          UNSPEC_VPAIR_MINUS)
-         (const_int VPAIR_FP_ELEMENT)]
-        UNSPEC_VPAIR_NEG))]
-  "TARGET_MMA && flag_fp_contract_mode == FP_CONTRACT_FAST"
-  "#"
-  "&& 1"
-  [(set (match_dup 0)
-       (unspec:OO
-        [(unspec:OO
-          [(match_dup 1)
-           (match_dup 2)
-           (unspec:OO
-            [(match_dup 3)
-             (const_int VPAIR_FP_ELEMENT)]
-            UNSPEC_VPAIR_NEG)
-           (const_int VPAIR_FP_ELEMENT)]
-          UNSPEC_VPAIR_FMA)
-         (const_int VPAIR_FP_ELEMENT)]
-        UNSPEC_VPAIR_NEG))]
-{
-}
-  [(set_attr "length" "8")
-   (set_attr "type" "<vpair_type>")])
-
-(define_insn_and_split "*vpair_nfms_<vpair_modename>_merge2"
-  [(set (match_operand:OO 0 "vsx_register_operand" "=wa,wa")
-       (unspec:OO
-        [(unspec:OO
-          [(unspec:OO
-            [(match_operand:OO 1 "vsx_register_operand" "%wa,wa")
-             (match_operand:OO 2 "vsx_register_operand" "wa,0")
-             (const_int VPAIR_FP_ELEMENT)]
-            UNSPEC_VPAIR_MULT)
-           (unspec:OO
-            [(match_operand:OO 3 "vsx_register_operand" "0,wa")
-             (const_int VPAIR_FP_ELEMENT)]
-            UNSPEC_VPAIR_NEG)
-           (const_int VPAIR_FP_ELEMENT)]
-          UNSPEC_VPAIR_PLUS)
-         (const_int VPAIR_FP_ELEMENT)]
-        UNSPEC_VPAIR_NEG))]
-  "TARGET_MMA && flag_fp_contract_mode == FP_CONTRACT_FAST"
-  "#"
-  "&& 1"
-  [(set (match_dup 0)
-       (unspec:OO
-        [(unspec:OO
-          [(match_dup 1)
-           (match_dup 2)
-           (unspec:OO
-            [(match_dup 3)
-             (const_int VPAIR_FP_ELEMENT)]
-            UNSPEC_VPAIR_NEG)
-           (const_int VPAIR_FP_ELEMENT)]
-          UNSPEC_VPAIR_FMA)
-         (const_int VPAIR_FP_ELEMENT)]
-        UNSPEC_VPAIR_NEG))]
-{
-}
-  [(set_attr "length" "8")
-   (set_attr "type" "<vpair_type>")])
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index 43893d74415..e3b2090ef18 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -24206,13 +24206,6 @@ The @code{nfma} built-in is a combination of 
@code{neg} of the
 The @code{nfms} built-in is a combination of @code{neg} of the
 @code{fms} built-in.
 
-The following built-in function is independent on the type of the
-underlying vector:
-
-@smallexample
-__vector_pair __builtin_vpair_zero ();
-@end smallexample
-
 The following built-in functions operate on pairs of
 @code{vector float} values:
 
@@ -24233,7 +24226,6 @@ __vector_pair __builtin_vpair_f32_nfma (__vector_pair, 
__vector_pair,
                                        __vector_pair);
 __vector_pair __builtin_vpair_f32_nfms (__vector_pair, __vector_pair,
                                        __vector_pair);
-__vector_pair __builtin_vpair_f32_splat (float);
 __vector_pair __builtin_vpair_f32_sub (__vector_pair, __vector_pair);
 @end smallexample
 
@@ -24257,7 +24249,6 @@ __vector_pair __builtin_vpair_f64_nfma (__vector_pair, 
__vector_pair,
                                        __vector_pair);
 __vector_pair __builtin_vpair_f64_nfms (__vector_pair, __vector_pair,
                                        __vector_pair);
-__vector_pair __builtin_vpair_f64_splat (double);
 __vector_pair __builtin_vpair_f64_sub (__vector_pair, __vector_pair);
 @end smallexample
 
diff --git a/gcc/testsuite/gcc.target/powerpc/vector-pair-10.c 
b/gcc/testsuite/gcc.target/powerpc/vector-pair-10.c
deleted file mode 100644
index d2ee4dd0dd9..00000000000
--- a/gcc/testsuite/gcc.target/powerpc/vector-pair-10.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target power10_ok } */
-/* { dg-options "-mdejagnu-cpu=power10 -Ofast -ffp-contract=fast" } */
-
-/* Test whether the vector builtin code merges multiply, add/subtract, and
-   negate into fma operations.  */
-
-void
-test_fma (__vector_pair *p,
-         __vector_pair *q,
-         __vector_pair *r,
-         __vector_pair *s)
-{
-  /* lxvp, 2 xvmadd{a,m}sp, stxvp.  */
-  __vector_pair mul = __builtin_vpair_f32_mul (*q, *r);
-  *p = __builtin_vpair_f32_add (mul, *s);
-}
-
-void
-test_fms (__vector_pair *p,
-         __vector_pair *q,
-         __vector_pair *r,
-         __vector_pair *s)
-{
-  /* lxvp, 2 xvmsub{a,m}sp, stxvp.  */
-  __vector_pair mul = __builtin_vpair_f32_mul (*q, *r);
-  __vector_pair neg = __builtin_vpair_f32_neg (*s);
-  *p = __builtin_vpair_f32_add (mul, neg);
-}
-
-void
-test_nfma (__vector_pair *p,
-          __vector_pair *q,
-          __vector_pair *r,
-          __vector_pair *s)
-{
-  /* lxvp, 2 xvnmadd{a,m}sp, stxvp.  */
-  __vector_pair mul = __builtin_vpair_f32_mul (*q, *r);
-  __vector_pair muladd = __builtin_vpair_f32_add (mul, *s);
-  *p = __builtin_vpair_f32_neg (muladd);
-}
-
-void
-test_nfms (__vector_pair *p,
-          __vector_pair *q,
-          __vector_pair *r,
-          __vector_pair *s)
-{
-  /* lxvp, 2 xvnmsub{a,m}sp, stxvp.  */
-  __vector_pair mul = __builtin_vpair_f32_mul (*q, *r);
-  __vector_pair neg = __builtin_vpair_f32_neg (*s);
-  __vector_pair muladd = __builtin_vpair_f32_add (mul, neg);
-  *p = __builtin_vpair_f32_neg (muladd);
-}
-
-/* { dg-final { scan-assembler-times {\mlxvp\M}       12 } } */
-/* { dg-final { scan-assembler-times {\mstxvp\M}       4 } } */
-/* { dg-final { scan-assembler-times {\mxvmadd.sp\M}   2 } } */
-/* { dg-final { scan-assembler-times {\mxvmsub.sp\M}   2 } } */
-/* { dg-final { scan-assembler-times {\mxvnmadd.sp\M}  2 } } */
-/* { dg-final { scan-assembler-times {\mxvnmsub.sp\M}  2 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/vector-pair-11.c 
b/gcc/testsuite/gcc.target/powerpc/vector-pair-11.c
deleted file mode 100644
index e635b599aed..00000000000
--- a/gcc/testsuite/gcc.target/powerpc/vector-pair-11.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target power10_ok } */
-/* { dg-options "-mdejagnu-cpu=power10 -O2 -ffp-contract=off" } */
-
-/* Test whether the vector builtin code do not merge multiply, add/subtract,
-   and negate into fma operations if -ffp-contract is off.  */
-
-void
-test_fma (__vector_pair *p,
-         __vector_pair *q,
-         __vector_pair *r,
-         __vector_pair *s)
-{
-  /* lxvp, 2 xvmuldp, 2 xvadddp, stxvp.  */
-  __vector_pair mul = __builtin_vpair_f64_mul (*q, *r);
-  *p = __builtin_vpair_f64_add (mul, *s);
-}
-
-void
-test_fms (__vector_pair *p,
-         __vector_pair *q,
-         __vector_pair *r,
-         __vector_pair *s)
-{
-  /* lxvp, 2 xvmuldp, 2 xvsubdp, stxvp.  */
-  __vector_pair mul = __builtin_vpair_f64_mul (*q, *r);
-  __vector_pair neg = __builtin_vpair_f64_neg (*s);
-  *p = __builtin_vpair_f64_add (mul, neg);
-}
-
-void
-test_nfma (__vector_pair *p,
-          __vector_pair *q,
-          __vector_pair *r,
-          __vector_pair *s)
-{
-  /* lxvp, 2 xvmuldp, 2 xvadddp, 2 xvnegdp, stxvp.  */
-  __vector_pair mul = __builtin_vpair_f64_mul (*q, *r);
-  __vector_pair muladd = __builtin_vpair_f64_add (mul, *s);
-  *p = __builtin_vpair_f64_neg (muladd);
-}
-
-void
-test_nfms (__vector_pair *p,
-          __vector_pair *q,
-          __vector_pair *r,
-          __vector_pair *s)
-{
-  /* lxvp, 2 xvmuldp, 2 xvsubdp, 2 xvnegdp, stxvp.  */
-  __vector_pair mul = __builtin_vpair_f64_mul (*q, *r);
-  __vector_pair neg = __builtin_vpair_f64_neg (*s);
-  __vector_pair muladd = __builtin_vpair_f64_add (mul, neg);
-  *p = __builtin_vpair_f64_neg (muladd);
-}
-
-/* { dg-final { scan-assembler-times {\mlxvp\M}       12 } } */
-/* { dg-final { scan-assembler-times {\mstxvp\M}       4 } } */
-/* { dg-final { scan-assembler-times {\mxvadddp\M}     4 } } */
-/* { dg-final { scan-assembler-times {\mxvmuldp\M}     8 } } */
-/* { dg-final { scan-assembler-times {\mxvnegdp\M}     4 } } */
-/* { dg-final { scan-assembler-times {\mxvsubdp\M}     4 } } */
-/* { dg-final { scan-assembler-not   {\mxvmadd.dp\M}     } } */
-/* { dg-final { scan-assembler-not   {\mxvmsub.dp\M}     } } */
-/* { dg-final { scan-assembler-not   {\mxvnmadd.dp\M}    } } */
-/* { dg-final { scan-assembler-not   {\mxvnmsub.dp\M}    } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/vector-pair-12.c 
b/gcc/testsuite/gcc.target/powerpc/vector-pair-12.c
deleted file mode 100644
index 4997279473e..00000000000
--- a/gcc/testsuite/gcc.target/powerpc/vector-pair-12.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target power10_ok } */
-/* { dg-options "-mdejagnu-cpu=power10 -O2 -ffp-contract=off" } */
-
-/* Test whether the vector builtin code do not merge multiply, add/subtract,
-   and negate into fma operations if -ffp-contract is off.  */
-
-void
-test_fma (__vector_pair *p,
-         __vector_pair *q,
-         __vector_pair *r,
-         __vector_pair *s)
-{
-  /* lxvp, 2 xvmulsp, 2 xvaddsp, stxvp.  */
-  __vector_pair mul = __builtin_vpair_f32_mul (*q, *r);
-  *p = __builtin_vpair_f32_add (mul, *s);
-}
-
-void
-test_fms (__vector_pair *p,
-         __vector_pair *q,
-         __vector_pair *r,
-         __vector_pair *s)
-{
-  /* lxvp, 2 xvmulsp, 2 xvsubsp, stxvp.  */
-  __vector_pair mul = __builtin_vpair_f32_mul (*q, *r);
-  __vector_pair neg = __builtin_vpair_f32_neg (*s);
-  *p = __builtin_vpair_f32_add (mul, neg);
-}
-
-void
-test_nfma (__vector_pair *p,
-          __vector_pair *q,
-          __vector_pair *r,
-          __vector_pair *s)
-{
-  /* lxvp, 2 xvmulsp, 2 xvaddsp, 2 xvnegsp, stxvp.  */
-  __vector_pair mul = __builtin_vpair_f32_mul (*q, *r);
-  __vector_pair muladd = __builtin_vpair_f32_add (mul, *s);
-  *p = __builtin_vpair_f32_neg (muladd);
-}
-
-void
-test_nfms (__vector_pair *p,
-          __vector_pair *q,
-          __vector_pair *r,
-          __vector_pair *s)
-{
-  /* lxvp, 2 xvmulsp, 2 xvsubsp, 2 xvnegsp, stxvp.  */
-  __vector_pair mul = __builtin_vpair_f32_mul (*q, *r);
-  __vector_pair neg = __builtin_vpair_f32_neg (*s);
-  __vector_pair muladd = __builtin_vpair_f32_add (mul, neg);
-  *p = __builtin_vpair_f32_neg (muladd);
-}
-
-/* { dg-final { scan-assembler-times {\mlxvp\M}       12 } } */
-/* { dg-final { scan-assembler-times {\mstxvp\M}       4 } } */
-/* { dg-final { scan-assembler-times {\mxvaddsp\M}     4 } } */
-/* { dg-final { scan-assembler-times {\mxvmulsp\M}     8 } } */
-/* { dg-final { scan-assembler-times {\mxvnegsp\M}     4 } } */
-/* { dg-final { scan-assembler-times {\mxvsubsp\M}     4 } } */
-/* { dg-final { scan-assembler-not   {\mxvmadd.sp\M}     } } */
-/* { dg-final { scan-assembler-not   {\mxvmsub.sp\M}     } } */
-/* { dg-final { scan-assembler-not   {\mxvnmadd.sp\M}    } } */
-/* { dg-final { scan-assembler-not   {\mxvnmsub.sp\M}    } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/vector-pair-5.c 
b/gcc/testsuite/gcc.target/powerpc/vector-pair-5.c
deleted file mode 100644
index 9b645e626e1..00000000000
--- a/gcc/testsuite/gcc.target/powerpc/vector-pair-5.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target power10_ok } */
-/* { dg-options "-mdejagnu-cpu=power10 -O2" } */
-
-/* Test whether the vector builtin code generates the expected instructions for
-   vector pairs zero and splat functions for vector pairs containing
-   doubles.  */
-
-void
-test_zero (__vector_pair *p)
-{
-  /* 2 xxspltib/xxlxor.  */
-  *p = __builtin_vpair_zero ();
-}
-
-void
-test_splat_zero (__vector_pair *p)
-{
-  /* 2 xxspltib/xxlxor.  */
-  *p = __builtin_vpair_f64_splat (0.0);
-}
-
-void
-test_splat_one (__vector_pair *p)
-{
-  /* xxspltidp, xxlor.  */
-  *p = __builtin_vpair_f64_splat (1.0);
-}
-
-void
-test_splat_pi (__vector_pair *p)
-{
-  /* plxv, xxlor (note, we cannot use xxspltidp).  */
-  *p = __builtin_vpair_f64_splat (3.1415926535);
-}
-
-void
-test_splat_arg (__vector_pair *p, double x)
-{
-  /* xxpermdi, xxlor.  */
-  *p = __builtin_vpair_f64_splat (x);
-}
-
-void
-test_splat_mem (__vector_pair *p, double *q)
-{
-  /* lxvdsx, xxlor.  */
-  *p = __builtin_vpair_f64_splat (*q);
-}
-
-/* { dg-final { scan-assembler-times {\mlxvdsx\M}              1 } } */
-/* { dg-final { scan-assembler-times {\mp?lxvx?\M}             1 } } */
-/* { dg-final { scan-assembler-times {\mstxvp\M}               6 } } */
-/* { dg-final { scan-assembler-times {\mxxpermdi\M}            1 } } */
-/* { dg-final { scan-assembler-times {\mxxspltib\M|\mxxlxor\M} 4 } } */
-/* { dg-final { scan-assembler-times {\mxxspltidp\M}           1 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/vector-pair-6.c 
b/gcc/testsuite/gcc.target/powerpc/vector-pair-6.c
deleted file mode 100644
index 5ec53d4bfc3..00000000000
--- a/gcc/testsuite/gcc.target/powerpc/vector-pair-6.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target power10_ok } */
-/* { dg-options "-mdejagnu-cpu=power10 -O2" } */
-
-/* Test whether the vector builtin code generates the expected instructions for
-   vector pairs zero and splat functions for vector pairs containing
-   floats.  */
-
-void
-test_zero (__vector_pair *p)
-{
-  /* 2 xxspltib/xxlxor.  */
-  *p = __builtin_vpair_zero ();
-}
-
-void
-test_splat_zero (__vector_pair *p)
-{
-  /* 2 xxspltib/xxlxor.  */
-  *p = __builtin_vpair_f32_splat (0.0f);
-}
-
-void
-test_splat_one (__vector_pair *p)
-{
-  /* xxspltiw, xxlor.  */
-  *p = __builtin_vpair_f32_splat (1.0f);
-}
-
-void
-test_splat_pi (__vector_pair *p)
-{
-  /* xxspltiw, xxlor.  */
-  *p = __builtin_vpair_f32_splat (3.1415926535f);
-}
-
-void
-test_splat_arg (__vector_pair *p, float x)
-{
-  /* xscvdpspn, xxspltw, xxlor.  */
-  *p = __builtin_vpair_f32_splat (x);
-}
-
-void
-test_splat_mem (__vector_pair *p, float *q)
-{
-  /* xlvwsx, xxlor.  */
-  *p = __builtin_vpair_f32_splat (*q);
-}
-
-/* { dg-final { scan-assembler-times {\mlxvwsx\M}              1 } } */
-/* { dg-final { scan-assembler-times {\mstxvp\M}               6 } } */
-/* { dg-final { scan-assembler-times {\mxscvdpspn\M}           1 } } */
-/* { dg-final { scan-assembler-times {\mxxspltib\M|\mxxlxor\M} 4 } } */
-/* { dg-final { scan-assembler-times {\mxxspltiw\M}            2 } } */
-/* { dg-final { scan-assembler-times {\mxxspltw\M}             1 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/vector-pair-7.c 
b/gcc/testsuite/gcc.target/powerpc/vector-pair-7.c
deleted file mode 100644
index 51a400cb4b3..00000000000
--- a/gcc/testsuite/gcc.target/powerpc/vector-pair-7.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target power10_ok } */
-/* { dg-options "-mdejagnu-cpu=power10 -O2" } */
-
-/* Test whether the vector builtin code merges plus and neg into a minus
-   operation.  */
-
-void
-test_minus (__vector_pair *p, __vector_pair *q, __vector_pair *r)
-{
-  *p = __builtin_vpair_f64_add (*q, __builtin_vpair_f64_neg (*r));
-}
-
-/* { dg-final { scan-assembler-times {\mlxvp\M}     2 } } */
-/* { dg-final { scan-assembler-times {\mstxvp\M}    1 } } */
-/* { dg-final { scan-assembler-times {\mxvsubdp\M}  2 } } */
-/* { dg-final { scan-assembler-not   {\mxvadddp\M}    } } */
-/* { dg-final { scan-assembler-not   {\mxvnegdp\M}    } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/vector-pair-8.c 
b/gcc/testsuite/gcc.target/powerpc/vector-pair-8.c
deleted file mode 100644
index 67957e3bdea..00000000000
--- a/gcc/testsuite/gcc.target/powerpc/vector-pair-8.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target power10_ok } */
-/* { dg-options "-mdejagnu-cpu=power10 -O2" } */
-
-/* Test whether the vector builtin code merges plus and neg into a minus
-   operation.  */
-
-void
-test_minus (__vector_pair *p, __vector_pair *q, __vector_pair *r)
-{
-  *p = __builtin_vpair_f32_add (*q, __builtin_vpair_f32_neg (*r));
-}
-
-/* { dg-final { scan-assembler-times {\mlxvp\M}     2 } } */
-/* { dg-final { scan-assembler-times {\mstxvp\M}    1 } } */
-/* { dg-final { scan-assembler-times {\mxvsubsp\M}  2 } } */
-/* { dg-final { scan-assembler-not   {\mxvaddsp\M}    } } */
-/* { dg-final { scan-assembler-not   {\mxvnegsp\M}    } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/vector-pair-9.c 
b/gcc/testsuite/gcc.target/powerpc/vector-pair-9.c
deleted file mode 100644
index eacf8dae9d8..00000000000
--- a/gcc/testsuite/gcc.target/powerpc/vector-pair-9.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target power10_ok } */
-/* { dg-options "-mdejagnu-cpu=power10 -Ofast -ffp-contract=fast" } */
-
-/* Test whether the vector builtin code merges multiply, add/subtract, and
-   negate into fma operations.  */
-
-void
-test_fma (__vector_pair *p,
-         __vector_pair *q,
-         __vector_pair *r,
-         __vector_pair *s)
-{
-  /* lxvp, 2 xvmadd{a,m}dp, stxvp.  */
-  __vector_pair mul = __builtin_vpair_f64_mul (*q, *r);
-  *p = __builtin_vpair_f64_add (mul, *s);
-}
-
-void
-test_fms (__vector_pair *p,
-         __vector_pair *q,
-         __vector_pair *r,
-         __vector_pair *s)
-{
-  /* lxvp, 2 xvmsub{a,m}dp, stxvp.  */
-  __vector_pair mul = __builtin_vpair_f64_mul (*q, *r);
-  __vector_pair neg = __builtin_vpair_f64_neg (*s);
-  *p = __builtin_vpair_f64_add (mul, neg);
-}
-
-void
-test_nfma (__vector_pair *p,
-          __vector_pair *q,
-          __vector_pair *r,
-          __vector_pair *s)
-{
-  /* lxvp, 2 xvnmadd{a,m}dp, stxvp.  */
-  __vector_pair mul = __builtin_vpair_f64_mul (*q, *r);
-  __vector_pair muladd = __builtin_vpair_f64_add (mul, *s);
-  *p = __builtin_vpair_f64_neg (muladd);
-}
-
-void
-test_nfms (__vector_pair *p,
-          __vector_pair *q,
-          __vector_pair *r,
-          __vector_pair *s)
-{
-  /* lxvp, 2 xvnmsub{a,m}dp, stxvp.  */
-  __vector_pair mul = __builtin_vpair_f64_mul (*q, *r);
-  __vector_pair neg = __builtin_vpair_f64_neg (*s);
-  __vector_pair muladd = __builtin_vpair_f64_add (mul, neg);
-  *p = __builtin_vpair_f64_neg (muladd);
-}
-
-/* { dg-final { scan-assembler-times {\mlxvp\M}       12 } } */
-/* { dg-final { scan-assembler-times {\mstxvp\M}       4 } } */
-/* { dg-final { scan-assembler-times {\mxvmadd.dp\M}   2 } } */
-/* { dg-final { scan-assembler-times {\mxvmsub.dp\M}   2 } } */
-/* { dg-final { scan-assembler-times {\mxvnmadd.dp\M}  2 } } */
-/* { dg-final { scan-assembler-times {\mxvnmsub.dp\M}  2 } } */

Reply via email to