From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com [IPv6:2a00:1450:4864:20::632]) by sourceware.org (Postfix) with ESMTPS id E9DA83844775 for ; Fri, 10 May 2024 13:17:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E9DA83844775 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E9DA83844775 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::632 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1715347044; cv=none; b=xx5bMXNeNoyq+UfXr8/MO8LpJ6q+uUxbm5W5DpXi6Ofq5OHEv4ACt7vu3cuDMKrZa2kVZ1yyv/7A2+/R/jmi8EDM6L/vWktyor5oPNs/HDBIUQdSrVqaUHOvsFtQKXNTokzm8W90wcaqmX8OH497997uBvIfUN/7vI8TDEBIE1s= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1715347044; c=relaxed/simple; bh=tQF2T3eDMnfxN/XQuXUCkMWCn6HNjIFylHJMRva4LDI=; h=DKIM-Signature:Message-ID:Date:MIME-Version:To:From:Subject; b=BhB6x9cEwy/AL0eC9er9pGbpRWJeE62rohV1Gw6VESADN4RP2KVQNsrxyUaKCnliQcl6Hc0o3eNokoD/3HDCsDjOuIWl0w9V9CCOihtp1Qvydi6x8lx2FOEjQ+KUK8ZXFBu8J+gE7aPJwIeEpDU+SloX2dtNDLCiLkn6mHB8WeY= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-ej1-x632.google.com with SMTP id a640c23a62f3a-a59a0168c75so530549266b.1 for ; Fri, 10 May 2024 06:17:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715347041; x=1715951841; darn=gcc.gnu.org; h=content-transfer-encoding:subject:from:to:content-language:cc :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=dPZNh8JpV3GPMneV1dT8DWUEF3A0+NpjSMdHBp4PgSA=; b=Ftqs7w3TOr4pYmhcXZrpULJJ4MLeKUY3QvgscQbE7dyX34RJPOxqhmCY4I4v772DQE 03r+iII81I5CwXfKljuG3IIEH1hybewdnRvXu5JcTi7110pow2NM883lrPtttjsAy1P/ 1vc/mK+ifJ28ycxgpOAV24nHbP2O+8V2wKIcJDp01xjoPTUJkroxwW+5T5abalMgTJZ8 ThWTMMLh3kpbyLiF7CeVrQGeiT8x38IYPd0hGyuTsJ8gNPML6nepKdEgpL6ENX27I68+ uv1ThApDRTRFVkJJ4usOa+WFo56PJ2LfLPGnlEMFY4CkQgcrbdQ81/gT+Py9zRw7QVmy Wbew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715347041; x=1715951841; h=content-transfer-encoding:subject:from:to:content-language:cc :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=dPZNh8JpV3GPMneV1dT8DWUEF3A0+NpjSMdHBp4PgSA=; b=WzXi9uUk+GnwxT8Xg1XjalLx1fKjFxFMk3IQfGRRMfpaB+9JGkvA7UdbXNz4B0u49+ ppayvKHpRZU0doAe+6T7jj8J/xDmxGyE5nUxZrZ9c0yclrF4E1H42B41Qh6CdO8FFHUj m1tROHuVht6vtUalVAH7uAYo9HbDKmVptQcwuaChT7aybHFJJOH3C64QPp9fXV12meFv uZZnwhd/JXC8NFn6Yig4E737RMzfPOdp7kJmg29XwtWerJEivdh5JX0GBmqXM+XECdDT wMbum4VCGbAOLp9gAgkVYW9QV2wYT7pp9XH3PGC9N77T1dcNZT66clIvi8nMq1jMn8WU Tdzw== X-Gm-Message-State: AOJu0Yw/P8464nC0jpMYECT9AIinyMuuDLje6XEnFDtXmULZ0ZAi9oIW hEYJEzgq3X9q+RD13GE93jNTnqknUUGfzqBElvU9xuBPWo0XvqQTf4eCQg== X-Google-Smtp-Source: AGHT+IERkN0sTRXWKAKDqT+sxkI1mzaNkgU2laVre7/s7JIgMptYGteoo9sS1lFL7Yy98VNXmoCmMw== X-Received: by 2002:a17:906:3155:b0:a59:9e01:e784 with SMTP id a640c23a62f3a-a5a2d53ad83mr173792066b.5.1715347040944; Fri, 10 May 2024 06:17:20 -0700 (PDT) Received: from [192.168.1.23] (ip-149-172-150-237.um42.pools.vodafone-ip.de. [149.172.150.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a5a17b0140dsm182877866b.151.2024.05.10.06.17.20 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 10 May 2024 06:17:20 -0700 (PDT) Message-ID: <4ee89471-d998-4734-a7d3-1f947d0d9f22@gmail.com> Date: Fri, 10 May 2024 15:17:19 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Cc: rdapp.gcc@gmail.com Content-Language: en-US To: gcc-patches From: Robin Dapp Subject: [PATCH] internal-fn: Do not force vcond operand to reg. Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-9.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,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 List-Id: Hi, this only forces the first comparison operator into a register if it is not already suitable. Bootstrap and regtest is running on x86 and aarch64, successful on p10. Regtested on riscv. gcc/ChangeLog: PR middle-end/113474 * internal-fn.cc (expand_vec_cond_mask_optab_fn): Only force op1 to reg if necessary. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/pr113474.c: New test. Regards Robin --- gcc/internal-fn.cc | 3 ++- .../gcc.target/riscv/rvv/autovec/pr113474.c | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113474.c diff --git a/gcc/internal-fn.cc b/gcc/internal-fn.cc index 2c764441cde..72cc6b7a1f7 100644 --- a/gcc/internal-fn.cc +++ b/gcc/internal-fn.cc @@ -3164,7 +3164,8 @@ expand_vec_cond_mask_optab_fn (internal_fn, gcall *stmt, convert_optab optab) rtx_op2 = expand_normal (op2); mask = force_reg (mask_mode, mask); - rtx_op1 = force_reg (mode, rtx_op1); + if (!insn_operand_matches (icode, 1, rtx_op1)) + rtx_op1 = force_reg (mode, rtx_op1); rtx target = expand_expr (lhs, NULL_RTX, VOIDmode, EXPAND_WRITE); create_output_operand (&ops[0], target, mode); diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113474.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113474.c new file mode 100644 index 00000000000..0364bf9f5e3 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113474.c @@ -0,0 +1,13 @@ +/* { dg-do compile { target riscv_v } } */ +/* { dg-additional-options "-std=c99" } */ + +void +foo (int n, int **a) +{ + int b; + for (b = 0; b < n; b++) + for (long e = 8; e > 0; e--) + a[b][e] = a[b][e] == 15; +} + +/* { dg-final { scan-assembler "vmerge.vim" } } */ -- 2.45.0