https://gcc.gnu.org/g:f4413ca7262aa4b0ee6c8fbb0663275e595cfa69
commit f4413ca7262aa4b0ee6c8fbb0663275e595cfa69 Author: Michael Meissner <[email protected]> Date: Wed Mar 11 17:49:19 2026 -0400 Revert changes Diff: --- gcc/config/rs6000/rs6000.md | 14 -------- .../gcc.target/powerpc/saturate-subtract-1.c | 38 ---------------------- .../gcc.target/powerpc/saturate-subtract-2.c | 38 ---------------------- 3 files changed, 90 deletions(-) diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 7fc34f2bb34b..83b1d2837628 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -2427,20 +2427,6 @@ "" ) -;; Saturating subtract -(define_code_iterator gtu_geu [gtu geu]) - -(define_insn "*subfus<mode>3_<code>" - [(set (match_operand:GPR 0 "gpc_reg_operand" "=r") - (if_then_else:GPR (gtu_geu (match_operand:GPR 2 "gpc_reg_operand" "r") - (match_operand:GPR 1 "gpc_reg_operand" "r")) - (minus:GPR (match_dup 2) - (match_dup 1)) - (const_int 0)))] - "TARGET_FUTURE" - "sub<wd>us %0,%1,%2" - [(set_attr "type" "add")]) - (define_insn "@neg<mode>2" [(set (match_operand:GPR 0 "gpc_reg_operand" "=r") (neg:GPR (match_operand:GPR 1 "gpc_reg_operand" "r")))] diff --git a/gcc/testsuite/gcc.target/powerpc/saturate-subtract-1.c b/gcc/testsuite/gcc.target/powerpc/saturate-subtract-1.c deleted file mode 100644 index db05d19008cb..000000000000 --- a/gcc/testsuite/gcc.target/powerpc/saturate-subtract-1.c +++ /dev/null @@ -1,38 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-mdejagnu-cpu=future -O2" } */ - -/* Check that saturating subtract (subfus) is generated. Check that all - combinations of >, >=, <, and <= are optimized. */ - -#ifndef TYPE -#define TYPE unsigned int -#endif - -void -saturated_subtract_gt (TYPE a, TYPE b, TYPE *p) -{ - *p = (a > b) ? a - b : 0; -} - -void -saturated_subtract_ge (TYPE a, TYPE b, TYPE *p) -{ - *p = (a >= b) ? a - b : 0; -} - -void -saturated_subtract_lt (TYPE a, TYPE b, TYPE *p) -{ - *p = (a < b) ? 0 : a - b; -} - -void -saturated_subtract_le (TYPE a, TYPE b, TYPE *p) -{ - *p = (a <= b) ? 0 : a - b; -} - -/* { dg-final { scan-assembler-times {\mubfus\M} 4 } } */ -/* { dg-final { scan-assembler-not {\mcmplw\M} } } */ -/* { dg-final { scan-assembler-not {\misel\M} } } */ -/* { dg-final { scan-assembler-not {\msubf\M} } } */ diff --git a/gcc/testsuite/gcc.target/powerpc/saturate-subtract-2.c b/gcc/testsuite/gcc.target/powerpc/saturate-subtract-2.c deleted file mode 100644 index 6c9b8b3acbd2..000000000000 --- a/gcc/testsuite/gcc.target/powerpc/saturate-subtract-2.c +++ /dev/null @@ -1,38 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-mdejagnu-cpu=future -O2" } */ - -/* Check that saturating subtract (subfus) is generated. Check that all - combinations of >, >=, <, and <= are optimized. */ - -#ifndef TYPE -#define TYPE unsigned long -#endif - -void -saturated_subtract_gt (TYPE a, TYPE b, TYPE *p) -{ - *p = (a > b) ? a - b : 0; -} - -void -saturated_subtract_ge (TYPE a, TYPE b, TYPE *p) -{ - *p = (a >= b) ? a - b : 0; -} - -void -saturated_subtract_lt (TYPE a, TYPE b, TYPE *p) -{ - *p = (a < b) ? 0 : a - b; -} - -void -saturated_subtract_le (TYPE a, TYPE b, TYPE *p) -{ - *p = (a <= b) ? 0 : a - b; -} - -/* { dg-final { scan-assembler-times {\mubdus\M} 4 } } */ -/* { dg-final { scan-assembler-not {\mcmpld\M} } } */ -/* { dg-final { scan-assembler-not {\misel\M} } } */ -/* { dg-final { scan-assembler-not {\msubf\M} } } */
