From patchwork Tue Apr 11 19:03:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Palmer Dabbelt X-Patchwork-Id: 67644 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 0DA9C3858438 for ; Tue, 11 Apr 2023 19:04:53 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-pg1-x531.google.com (mail-pg1-x531.google.com [IPv6:2607:f8b0:4864:20::531]) by sourceware.org (Postfix) with ESMTPS id CB1183858D28 for ; Tue, 11 Apr 2023 19:04:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CB1183858D28 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivosinc.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivosinc.com Received: by mail-pg1-x531.google.com with SMTP id 41be03b00d2f7-517c0b93cedso459764a12.3 for ; Tue, 11 Apr 2023 12:04:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20210112.gappssmtp.com; s=20210112; t=1681239875; h=to:from:cc:content-transfer-encoding:mime-version:message-id:date :subject:from:to:cc:subject:date:message-id:reply-to; bh=GkvFvf50xb4au7Y3LLZD6l8YvNPs4fyGUQse3i8vRgw=; b=ONJg4D79dIEzwb7CGu5H+eFpqzcKMuJq9ZJHZTT1tlWz81rpZrXrB0gr5Slx3ZgOqc BL2evZtiWMIxmQTtaRxvD0YL47Ni+zPS09t5cDP8hl1EdrwUrquVgg+/OLwtYWc4cd71 3EL+R1BaFlHs5Z07WAelyxFxbh5ESte4ze4nOnyPJIn2p6+0V4HfVsVewVzm/d9rol0v EivbLpLZVhaWuNBoEYqpyE4/aG1IzLJW+nJBIMqLEte1new7CR0n3uUmNCMnO9DbNU3+ 11RIGqpVy+1CM6QVN2RkUh+J0zPSLKQ/7DcKj1eif51ZJ1BU2y/dblOy0ajRpihYAguH KczA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1681239875; h=to:from:cc:content-transfer-encoding:mime-version:message-id:date :subject:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=GkvFvf50xb4au7Y3LLZD6l8YvNPs4fyGUQse3i8vRgw=; b=6wAfVQtsackjWc1VdfaA59/kctRsBS8JQ7dsTPZCnE2WcxDFZoTT+7wHu6yDdSQqA1 lb2HWc14CVEecmN1XxT0Mqh0JnsbFJ77ofDevGkBV9Z72PCGfxMGCI+KuFoDO20TFlJC vFMQA68zysSgQ00HloK2Pdf7xI7woZ0Otyv77E3qnnT+7DiMs2a1jwdowsBiPWNKzKI/ RC8bL+Xnem/T2KjFWzy5qZ+YSR30u4CyQ0BA8QjPx74kjI7MlUR8u5pnlz5S1Z1ZNGUH XEqF99cN5G3gPUZjKoKIM8DtIRvdBy3DVRl/jNfD3uyCuR8kOWyl1webwMASmVspc9OS 1ZTg== X-Gm-Message-State: AAQBX9eYFj3tXJqEsqh2ZAmG5pHFXDhwAuWv5JjIBz7x1nzqIiY5zM1N r9FrH1lrYLRxZyYrVVxQIjG4bw== X-Google-Smtp-Source: AKy350bdQ9o0wDywf//qMG7vTYoAUwvUMDt/ZJLTzMs5zJHVWW0BYRULw6YS2JvbaNlVNmBPiNv2nw== X-Received: by 2002:aa7:96ae:0:b0:638:13ab:b0a9 with SMTP id g14-20020aa796ae000000b0063813abb0a9mr6961900pfk.24.1681239874656; Tue, 11 Apr 2023 12:04:34 -0700 (PDT) Received: from localhost ([50.221.140.188]) by smtp.gmail.com with ESMTPSA id b8-20020aa78108000000b0062d7c0dc4f4sm10094274pfi.80.2023.04.11.12.04.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Apr 2023 12:04:32 -0700 (PDT) Subject: [PATCH] RISC-V: Clean up the pr106602.c testcase Date: Tue, 11 Apr 2023 12:03:21 -0700 Message-Id: <20230411190320.13717-1-palmer@rivosinc.com> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 Cc: Palmer Dabbelt From: Palmer Dabbelt To: gcc-patches@gcc.gnu.org X-Spam-Status: No, score=-12.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, 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 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" The test case that was added is rv64i-specific, as there's better ways to generate this code on rv32i (where the long/int cast is a NOP) and on rv64i_zba (where we have word shifts). This renames the original test case and adds two more for those targets. gcc/testsuite/ChangeLog: PR target/106602 * gcc.target/riscv/pr106602.c: Moved to... * gcc.target/riscv/pr106602-rv64i.c: ...here. * gcc.target/riscv/pr106602-rv32i.c: New test. * gcc.target/riscv/pr106602-rv64i_zba.c: New test. --- The test suite is still running, but it looks like it's made it past these so I figured I'd send it now as otherwise I might forget. OK for trunk? (assuming the tests finish and pass) --- gcc/testsuite/gcc.target/riscv/pr106602-rv32i.c | 14 ++++++++++++++ .../riscv/{pr106602.c => pr106602-rv64i.c} | 2 +- .../gcc.target/riscv/pr106602-rv64i_zba.c | 15 +++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.target/riscv/pr106602-rv32i.c rename gcc/testsuite/gcc.target/riscv/{pr106602.c => pr106602-rv64i.c} (88%) create mode 100644 gcc/testsuite/gcc.target/riscv/pr106602-rv64i_zba.c diff --git a/gcc/testsuite/gcc.target/riscv/pr106602-rv32i.c b/gcc/testsuite/gcc.target/riscv/pr106602-rv32i.c new file mode 100644 index 00000000000..05b54db7486 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/pr106602-rv32i.c @@ -0,0 +1,14 @@ +/* { dg-do compile { target { riscv64*-*-* } } } */ +/* { dg-options "-O2 -march=rv32i -mabi=ilp32" } */ + +unsigned long +foo2 (unsigned long a) +{ + return (unsigned long)(unsigned int) a << 6; +} + +/* { dg-final { scan-assembler-times "slli\t" 1 } } */ +/* { dg-final { scan-assembler-not "srli\t" } } */ +/* { dg-final { scan-assembler-not "\tli\t" } } */ +/* { dg-final { scan-assembler-not "addi\t" } } */ +/* { dg-final { scan-assembler-not "and\t" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/pr106602.c b/gcc/testsuite/gcc.target/riscv/pr106602-rv64i.c similarity index 88% rename from gcc/testsuite/gcc.target/riscv/pr106602.c rename to gcc/testsuite/gcc.target/riscv/pr106602-rv64i.c index 825b1a143b5..ef0719f4a9a 100644 --- a/gcc/testsuite/gcc.target/riscv/pr106602.c +++ b/gcc/testsuite/gcc.target/riscv/pr106602-rv64i.c @@ -1,5 +1,5 @@ /* { dg-do compile { target { riscv64*-*-* } } } */ -/* { dg-options "-O2" } */ +/* { dg-options "-O2 -march=rv64i -mabi=lp64" } */ unsigned long foo2 (unsigned long a) diff --git a/gcc/testsuite/gcc.target/riscv/pr106602-rv64i_zba.c b/gcc/testsuite/gcc.target/riscv/pr106602-rv64i_zba.c new file mode 100644 index 00000000000..23b9f1e60f6 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/pr106602-rv64i_zba.c @@ -0,0 +1,15 @@ +/* { dg-do compile { target { riscv64*-*-* } } } */ +/* { dg-options "-O2 -march=rv64i_zba -mabi=lp64" } */ + +unsigned long +foo2 (unsigned long a) +{ + return (unsigned long)(unsigned int) a << 6; +} + +/* { dg-final { scan-assembler-times "slli.uw\t" 1 } } */ +/* { dg-final { scan-assembler-not "slli\t" } } */ +/* { dg-final { scan-assembler-not "srli\t" } } */ +/* { dg-final { scan-assembler-not "\tli\t" } } */ +/* { dg-final { scan-assembler-not "addi\t" } } */ +/* { dg-final { scan-assembler-not "and\t" } } */