diff options
author | Pan Li <pan2.li@intel.com> | 2024-11-13 07:30:19 +0800 |
---|---|---|
committer | Pan Li <pan2.li@intel.com> | 2024-11-13 07:30:19 +0800 |
commit | d95339c9e3c3086ab5dc082f4e2b08d9197d74f5 (patch) | |
tree | 70c1fae5c365ccef2f3188fe2ae9b729053e5adf | |
parent | 169897bb402c46394ca38c8b3146d9d0c7ec35f5 (diff) | |
download | gcc-d95339c9e3c3086ab5dc082f4e2b08d9197d74f5.zip gcc-d95339c9e3c3086ab5dc082f4e2b08d9197d74f5.tar.gz gcc-d95339c9e3c3086ab5dc082f4e2b08d9197d74f5.tar.bz2 |
Revert "Match: Simplify branch form 3 of unsigned SAT_ADD into branchless"
This reverts commit df4af89bc3eabbeaccb16539aa1082cb9863e187.
-rw-r--r-- | gcc/match.pd | 11 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/sat_u_add-simplify-1-u16.c | 15 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/sat_u_add-simplify-1-u32.c | 15 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/sat_u_add-simplify-1-u64.c | 15 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/sat_u_add-simplify-1-u8.c | 15 |
5 files changed, 4 insertions, 67 deletions
diff --git a/gcc/match.pd b/gcc/match.pd index fc33b9a..9d86d0f 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -3146,13 +3146,10 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) (match (unsigned_integer_sat_add @0 @1) (bit_ior:c (usadd_left_part_2 @0 @1) (usadd_right_part_2 @0 @1))) -/* Simplify SAT_U_ADD to the cheap form - From: SAT_U_ADD = (X + Y) >= x ? (X + Y) : -1. - To: SAT_U_ADD = (X + Y) | - ((X + Y) < X). */ -(simplify (cond (ge (plus:c@2 @0 @1) @0) @2 integer_minus_onep) - (if (INTEGRAL_TYPE_P (type) && TYPE_UNSIGNED (type) - && types_match (type, @0, @1)) - (bit_ior @2 (negate (convert (lt @2 @0)))))) +/* Unsigned saturation add, case 3 (branch with ge): + SAT_U_ADD = (X + Y) >= x ? (X + Y) : -1. */ +(match (unsigned_integer_sat_add @0 @1) + (cond^ (ge (usadd_left_part_1@2 @0 @1) @0) @2 integer_minus_onep)) /* Unsigned saturation add, case 4 (branch with lt): SAT_U_ADD = (X + Y) < x ? -1 : (X + Y). */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/sat_u_add-simplify-1-u16.c b/gcc/testsuite/gcc.dg/tree-ssa/sat_u_add-simplify-1-u16.c deleted file mode 100644 index 7617fba..0000000 --- a/gcc/testsuite/gcc.dg/tree-ssa/sat_u_add-simplify-1-u16.c +++ /dev/null @@ -1,15 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-gimple-details" } */ - -#include <stdint.h> - -#define T uint16_t - -T sat_add_u_1 (T x, T y) -{ - return (T)(x + y) >= x ? (x + y) : -1; -} - -/* { dg-final { scan-tree-dump-not " if " "gimple" } } */ -/* { dg-final { scan-tree-dump-not " else " "gimple" } } */ -/* { dg-final { scan-tree-dump-not " goto " "gimple" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/sat_u_add-simplify-1-u32.c b/gcc/testsuite/gcc.dg/tree-ssa/sat_u_add-simplify-1-u32.c deleted file mode 100644 index efea85b..0000000 --- a/gcc/testsuite/gcc.dg/tree-ssa/sat_u_add-simplify-1-u32.c +++ /dev/null @@ -1,15 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-gimple-details" } */ - -#include <stdint.h> - -#define T uint32_t - -T sat_add_u_1 (T x, T y) -{ - return (T)(x + y) >= x ? (x + y) : -1; -} - -/* { dg-final { scan-tree-dump-not " if " "gimple" } } */ -/* { dg-final { scan-tree-dump-not " else " "gimple" } } */ -/* { dg-final { scan-tree-dump-not " goto " "gimple" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/sat_u_add-simplify-1-u64.c b/gcc/testsuite/gcc.dg/tree-ssa/sat_u_add-simplify-1-u64.c deleted file mode 100644 index b7b55d7..0000000 --- a/gcc/testsuite/gcc.dg/tree-ssa/sat_u_add-simplify-1-u64.c +++ /dev/null @@ -1,15 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-gimple-details" } */ - -#include <stdint.h> - -#define T uint64_t - -T sat_add_u_1 (T x, T y) -{ - return (T)(x + y) >= x ? (x + y) : -1; -} - -/* { dg-final { scan-tree-dump-not " if " "gimple" } } */ -/* { dg-final { scan-tree-dump-not " else " "gimple" } } */ -/* { dg-final { scan-tree-dump-not " goto " "gimple" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/sat_u_add-simplify-1-u8.c b/gcc/testsuite/gcc.dg/tree-ssa/sat_u_add-simplify-1-u8.c deleted file mode 100644 index 77e9af3..0000000 --- a/gcc/testsuite/gcc.dg/tree-ssa/sat_u_add-simplify-1-u8.c +++ /dev/null @@ -1,15 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-gimple-details" } */ - -#include <stdint.h> - -#define T uint8_t - -T sat_add_u_1 (T x, T y) -{ - return (T)(x + y) >= x ? (x + y) : -1; -} - -/* { dg-final { scan-tree-dump-not " if " "gimple" } } */ -/* { dg-final { scan-tree-dump-not " else " "gimple" } } */ -/* { dg-final { scan-tree-dump-not " goto " "gimple" } } */ |