From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot1-x32c.google.com (mail-ot1-x32c.google.com [IPv6:2607:f8b0:4864:20::32c]) by sourceware.org (Postfix) with ESMTPS id B12D53858D35 for ; Sat, 17 Jun 2023 02:31:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B12D53858D35 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ot1-x32c.google.com with SMTP id 46e09a7af769-6b29b9f5a94so1299990a34.2 for ; Fri, 16 Jun 2023 19:31:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686969088; x=1689561088; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=iVBz1DwZjB6JoQFZSwY+2F2BVLkI+ZvzMGDiVtpaeYw=; b=g3yPTW+8GXTBnqnbrEOGIBztXrjqH48y+72aLWqL4COxs58Q6Gc75RVr8hmVnZcHws 4z9am482MuMupLLOuWzUDysu2Ucl9ozrAjBe3J30ZdHZFwIz4iz+gGFQLhsOcRVrIX3S It7mKdMZ8JBPlvvVLYYVxPgPD1q5LSZL+PrvchzlnEhdcFcIckYuBa95RS6LM+PRtftg gSOVC4/OP08njoJXFV3unXBfFyXAPHqtNKZtATZs/ahx3/x4gVCeaQPtJ9rltgNiq/ik iEynIVVwLnzWTxPQm4YH9lc7qnWXwKw4JA9raLya7BckWQwmglnDWF88KZQNqBedMb1K 64Ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686969088; x=1689561088; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=iVBz1DwZjB6JoQFZSwY+2F2BVLkI+ZvzMGDiVtpaeYw=; b=k++W5LCHqW2YoFiUKb+AXwjTjP5VK/NRaFZrHtkSaSEW1A7oFkUEYFhlwsjvPd/5Ul H1T1gEH+5rVP+VIzj/Uru2o5+2mONB2/5+hnE3X5aHI4SBPf3z2NlYBIKMyZ27BHlLXu K56W0MvhwBUyq4OcKcAAMlUVARKCUyLPgZoFXXax9EJSMp9BiLN4ITuSBmBtKJUHztSu GmAtAMXkobv77d6s3tN/6WSqG9J2sOCccz+eueYTU4iSdZZHQQr/Kc0PfojVi2oltG5u Cmv8Uy9XcvEEE5NS6BJIe+oCMaTF7WsUwPawCxJ39jTFKgreVgUVsHBcC0DgZkYKFreM Uc1w== X-Gm-Message-State: AC+VfDyVSoB7Q3YOgi4jWPXOkNZ8a5szxZm3LiBmUQr6+GqSdh2PMC1J D7fxZ8vmP5ijq+OABs9JV04hWp7TPEE= X-Google-Smtp-Source: ACHHUZ78ZkqYk3ttjfIIXKbxEaGPNHYL188yJ6JGyYmGie85/4oCEFzvLHzomeLoh3BqW1DyPSLFdw== X-Received: by 2002:a05:6358:f15:b0:12f:2563:292c with SMTP id b21-20020a0563580f1500b0012f2563292cmr1003019rwj.27.1686969087861; Fri, 16 Jun 2023 19:31:27 -0700 (PDT) Received: from [172.31.0.109] ([136.36.130.248]) by smtp.gmail.com with ESMTPSA id v24-20020a62a518000000b0064d2ad04cbesm13931239pfm.209.2023.06.16.19.31.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 16 Jun 2023 19:31:27 -0700 (PDT) Message-ID: <4c7afcac-08a8-1951-a686-2467218322b7@gmail.com> Date: Fri, 16 Jun 2023 20:31:26 -0600 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [PATCH] simplify-rtx: Simplify VEC_CONCAT of SUBREG and VEC_CONCAT from same vector Content-Language: en-US To: Kyrylo Tkachov , "gcc-patches@gcc.gnu.org" References: From: Jeff Law In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,KAM_SHORT,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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: On 6/16/23 03:06, Kyrylo Tkachov via Gcc-patches wrote: > Hi all, > > In the testcase for this patch we try to vec_concat the lowpart and highpart of a vector, but the lowpart is expressed as a subreg. > simplify-rtx.cc does not recognise this and combine ends up trying to match: > Trying 7 -> 8: > 7: r93:V2SI=vec_select(r95:V4SI,parallel) > 8: r97:V4SI=vec_concat(r95:V4SI#0,r93:V2SI) > REG_DEAD r95:V4SI > REG_DEAD r93:V2SI > Failed to match this instruction: > (set (reg:V4SI 97) > (vec_concat:V4SI (subreg:V2SI (reg/v:V4SI 95 [ a ]) 0) > (vec_select:V2SI (reg/v:V4SI 95 [ a ]) > (parallel:V4SI [ > (const_int 2 [0x2]) > (const_int 3 [0x3]) > ])))) > > This should be just (set (reg:V4SI 97) (reg:V4SI 95)). This patch adds such a simplification. > The testcase is a bit artificial, but I do have other aarch64-specific patterns that I want to optimise later > that rely on this simplification happening. > > Without this patch for the testcase we generate: > foo: > dup d31, v0.d[1] > ins v0.d[1], v31.d[0] > ret > > whereas we should just not generate anything as the operation is ultimately a no-op. > > Bootstrapped and tested on aarch64-none-linux-gnu and aarch64_be-none-elf. > Ok for trunk? > Thanks, > Kyrill > > gcc/ChangeLog: > > * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): > Simplify vec_concat of lowpart subreg and high part vec_select. > > gcc/testsuite/ChangeLog: > > * gcc.target/aarch64/simd/low-high-combine_1.c: New test. OK. Jeff