From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7924) id D95823853D36; Tue, 26 Sep 2023 12:21:09 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D95823853D36 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1695730869; bh=LmmcTYuX/e61nNwcyR5JSkoOY7+SUIDrBKEZUbz7Whs=; h=From:To:Subject:Date:From; b=H6sFtmX4X/v/82BwEVuTVVkoEL2kc3xETt/YbXL7j+cjpYQpU9RVe747f1eKx1owz FbeZnX3L5e2wg9veGLmgC+e/m8RZhckcX4ZsQQlSCN23zW96PVDzu17AT+GZy0i5Uh CO9+Y5/Wmi6ypn6QBpI7CqM5EkDqyQMlJM3tAeg0= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Pan Li To: gcc-cvs@gcc.gnu.org Subject: [gcc r14-4278] MATCH: Optimize COND_ADD reduction pattern X-Act-Checkin: gcc X-Git-Author: Juzhe-Zhong X-Git-Refname: refs/heads/master X-Git-Oldrev: dd0197fb4cdee8cd5f78fea9a965c96d7ca47229 X-Git-Newrev: 277456180ea4d002675a9498a7b1ec9d483ded73 Message-Id: <20230926122109.D95823853D36@sourceware.org> Date: Tue, 26 Sep 2023 12:21:09 +0000 (GMT) List-Id: https://gcc.gnu.org/g:277456180ea4d002675a9498a7b1ec9d483ded73 commit r14-4278-g277456180ea4d002675a9498a7b1ec9d483ded73 Author: Juzhe-Zhong Date: Tue Sep 26 17:58:47 2023 +0800 MATCH: Optimize COND_ADD reduction pattern Current COND_ADD reduction pattern can't optimize floating-point vector. As Richard suggested: https://gcc.gnu.org/pipermail/gcc-patches/2023-September/631336.html Allow COND_ADD reduction pattern to optimize floating-point vector. Bootstrap and Regression is running. Ok for trunk if tests pass ? gcc/ChangeLog: * match.pd: Optimize COND_ADD reduction pattern. Diff: --- gcc/match.pd | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gcc/match.pd b/gcc/match.pd index 3ce90c3333b..790d956fe69 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -8863,8 +8863,11 @@ and, c = mask1 && mask2 ? d + b : d. */ (simplify - (IFN_COND_ADD @0 @1 (vec_cond @2 @3 integer_zerop) @1) - (IFN_COND_ADD (bit_and @0 @2) @1 @3 @1)) + (IFN_COND_ADD @0 @1 (vec_cond @2 @3 zerop@4) @1) + (if (ANY_INTEGRAL_TYPE_P (type) + || (FLOAT_TYPE_P (type) + && fold_real_zero_addition_p (type, NULL_TREE, @4, 0))) + (IFN_COND_ADD (bit_and @0 @2) @1 @3 @1))) /* Detect simplication for a conditional length reduction where