https://gcc.gnu.org/g:fbb48b307250fb5d7a84ffc4491b6308cca75fdf
commit fbb48b307250fb5d7a84ffc4491b6308cca75fdf Author: Michael Meissner <[email protected]> Date: Mon Oct 26 00:29:16 2026 -0400 Revert changes Diff: --- gcc/config/rs6000/rs6000.md | 14 -------- .../gcc.target/powerpc/saturate-subtract-1.c | 39 --------------------- .../gcc.target/powerpc/saturate-subtract-2.c | 40 ---------------------- gcc/testsuite/lib/target-supports.exp | 13 ------- 4 files changed, 106 deletions(-) diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 9144b894bf56..166a03bc6e91 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -2503,20 +2503,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 1 "gpc_reg_operand" "r") - (match_operand:GPR 2 "gpc_reg_operand" "r")) - (minus:GPR (match_dup 1) - (match_dup 2)) - (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 c32a70a5e898..000000000000 --- a/gcc/testsuite/gcc.target/powerpc/saturate-subtract-1.c +++ /dev/null @@ -1,39 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-mdejagnu-cpu=future -O2" } */ -/* { dg-require-effective-target powerpc_future_ok } */ - -/* 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 {\msubwus\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 482d7384c172..000000000000 --- a/gcc/testsuite/gcc.target/powerpc/saturate-subtract-2.c +++ /dev/null @@ -1,40 +0,0 @@ -/* { dg-do compile } */ -/* { dg-require-effective-target powerpc_future_ok } */ -/* { dg-require-effective-target lp64 } */ -/* { 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 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 {\msubdus\M} 4 } } */ -/* { dg-final { scan-assembler-not {\mcmpld\M} } } */ -/* { dg-final { scan-assembler-not {\misel\M} } } */ -/* { dg-final { scan-assembler-not {\msubf\M} } } */ diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 3b9b4216bf9b..3c5dfd59f6fe 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -8495,19 +8495,6 @@ proc check_htm_hw_available { } { } }] } - -# Return 1 if this is a PowerPC target supporting -mcpu=future - -proc check_effective_target_powerpc_future_ok { } { - return [check_no_compiler_messages powerpc_future_ok object { - unsigned long a, b, c; - int main (void) { - asm ("subdus %0,%1,%2" : "=r" (a) : "r" (b), "r" (c)); - return 0; - } - } "-mcpu=future"] -} - # Return 1 if this is a PowerPC target supporting -mcpu=cell. proc check_effective_target_powerpc_ppu_ok { } {
