From patchwork Tue Jan 31 15:37:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Philipp Tomsich X-Patchwork-Id: 64022 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A51313858C60 for ; Tue, 31 Jan 2023 15:37:25 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com [IPv6:2a00:1450:4864:20::62c]) by sourceware.org (Postfix) with ESMTPS id CE6E33858D28 for ; Tue, 31 Jan 2023 15:37:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CE6E33858D28 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=vrull.eu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=vrull.eu Received: by mail-ej1-x62c.google.com with SMTP id dr8so21163583ejc.12 for ; Tue, 31 Jan 2023 07:37:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=kTs0rS7ADjMUyvUgDoNKD3NqOj/GWklQ1oLzUJrXe44=; b=DFpqXfhgJz/lnmiq9FWWktgHI/s4jKWmoNFUwIuEnH8vK/kJOCxb7tFiUjBgMdUh/F yy1HckCI4cTQYXmkkF1potu1xQWA7VuAyD5DaR1sP0cqogrZ/GN9U+6dn4An3o+LiIdI x1qehuC46LBbzWwPGmZBiFPixX3Zg4qWdiqcvNqUX14A1xnap0Ce02wZMDdq+j+J6xrG GxCVeV8voL/IUbhJOHdhOoCEELyQFTKfk20WX7n1QeqIHkcQRZ1fDXsLZ+uEf+PRZQfl s74G2XRNYEVovFoS4sWCw/wM2b3uNqz8J49nPnQ/8tmocRuwanTjsAc7ehehBdOpwRYi gDfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=kTs0rS7ADjMUyvUgDoNKD3NqOj/GWklQ1oLzUJrXe44=; b=CxvwS7UrlhFi2S9jqZnLcLDPEDPIA9nFCnQNQKQdfO9/nXj+TK6WOTWt2lvU2SQNTB 3pDp6QWmKscfHtlh0V4FMV9ee8f5m9zKebaNuOM0H24hf1wsAl4YKqvtUgfudtGHqQ4a LbGIFA+785G4R4XjDBKbami/nc9u5K/5g+aGb93QjCw2R36/GAitmdZF5Jjfo0FoWlUI 3Wd/FxoK9YKJz8CsHm++4S9xlWVSqzS7hXJ5R4/FmuGU8RPwQca1P8W1mJVxEgw+TQfT ZRy5EFw1jfLRldfsVUPQZro4dRbaETd/htAEkLtKKMWB0+/RdXy0IlL4KoK3IqyTL28r hJeg== X-Gm-Message-State: AO0yUKV2W4ITE1IEbCxz4Kyig5P3ravc4xjvgbMP9ehlhcxljtBtl0DG mJ1KDgCxuqpYtrdo+fd2kApPmXDLtCiUUelg54E= X-Google-Smtp-Source: AK7set8XVWc2ndLcUgTH4XzPOkeTPbXr/ScrhGKuLmV/GDq66Eq2ZqSJHlbrZj4ZrKGYSJbkAu8exA== X-Received: by 2002:a17:907:d48f:b0:888:4e73:b71d with SMTP id vj15-20020a170907d48f00b008884e73b71dmr4458446ejc.47.1675179427185; Tue, 31 Jan 2023 07:37:07 -0800 (PST) Received: from ubuntu-focal.. ([2a01:4f9:3a:1e26::2]) by smtp.gmail.com with ESMTPSA id p7-20020a170906b20700b0088478517830sm5004103ejz.83.2023.01.31.07.37.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 Jan 2023 07:37:06 -0800 (PST) From: Philipp Tomsich To: gcc-patches@gcc.gnu.org Cc: Philipp Tomsich Subject: [PATCH, COMMITTED] PR target/108589 - Check REG_P for AARCH64_FUSE_ADDSUB_2REG_CONST1 Date: Tue, 31 Jan 2023 16:37:02 +0100 Message-Id: <20230131153702.2844226-1-philipp.tomsich@vrull.eu> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_NUMSUBJECT, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" This adds a check for REG_P on SET_DEST for the new idiom recognizer for AARCH64_FUSE_ADDSUB_2REG_CONST1. The reported ICE is only observable with checking=rtl. Bootstrapped/regtested aarch64-linux, committed. PR target/108589 gcc/ChangeLog: * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Check REG_P on SET_DEST. gcc/testsuite/ChangeLog: * gcc.target/aarch64/pr108589.c: New test. Signed-off-by: Philipp Tomsich --- gcc/config/aarch64/aarch64.cc | 1 + gcc/testsuite/gcc.target/aarch64/pr108589.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 gcc/testsuite/gcc.target/aarch64/pr108589.c diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index 17c1e23e5b5..acc0cfe5f94 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -25704,6 +25704,7 @@ aarch_macro_fusion_pair_p (rtx_insn *prev, rtx_insn *curr) && CONST_INT_P (XEXP (curr_src, 1)) && INTVAL (XEXP (curr_src, 1)) == polarity && REG_P (XEXP (curr_src, 0)) + && REG_P (SET_DEST (prev_set)) && REGNO (SET_DEST (prev_set)) == REGNO (XEXP (curr_src, 0))) return true; } diff --git a/gcc/testsuite/gcc.target/aarch64/pr108589.c b/gcc/testsuite/gcc.target/aarch64/pr108589.c new file mode 100644 index 00000000000..e9c5bc608af --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/pr108589.c @@ -0,0 +1,15 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target lp64 } */ +/* { dg-options "-O2 -mtune=ampere1a -fno-split-wide-types" } */ + +int i; +__int128 j; +short s; + +void +foo (void) +{ + j -= i; + int l = i - __builtin_sub_overflow_p (0, 61680, s); + j -= __builtin_mul_overflow_p (i, l, 0); +}