From patchwork Thu Sep 21 12:33:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "juzhe.zhong@rivai.ai" X-Patchwork-Id: 142800 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp4811118vqi; Thu, 21 Sep 2023 05:34:26 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFHeiYiDROWfwVmxrvYkHs2sQTuPzVtkKCodiThHxkyPVbL7dvG+JhzE349HzGQS0tGlTHb X-Received: by 2002:aa7:c58f:0:b0:523:38f5:c5ad with SMTP id g15-20020aa7c58f000000b0052338f5c5admr4669145edq.20.1695299666325; Thu, 21 Sep 2023 05:34:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1695299666; cv=none; d=google.com; s=arc-20160816; b=U1ZLpbJ0WOXCmoJ4P1Dc3TcmgI915PkvEwc0Xu1N3en5CbxpJYdHYTgOfVJGSsb1Jj 8ISGwq4DBBaG/EkkgX0iUYk9h0eoZuZ3QW7W69M4NdN7BXd7BE1ZRejFbyux30jcBXbj Ljp2rKUZwoKiCxLc6Pxdyw8Zwl6qF242CnFOIHO0IW1trFFwEmjNQn4oR3Io24Cpuqxp z8U2PTAmyoWAD+gwJ7lUiiXl+27A97HZVMqXLwQX/SxMbHCKoD9FANnsH9im7yyHM3b0 vzT9jIVWnmMqI46B30zvQX0u4naENRGyqDah6GkNLI8FdAR+0yi4EwtHRjihFIT5tkQn otXg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:feedback-id :content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:dmarc-filter:delivered-to; bh=07vjq4r1GS3wcxdaJxDMpaRDYAEzvPWiUuyMN5/y2gw=; fh=12MRPJmZ1mgDpHqWoogMKqnaGRGM2b7lcuJroqfjJiw=; b=UtrFDEE/0U3iiAI2q+SCJ8Kfd4qKLu+kvwIlt4wuQrHgeqNq0vL89n2ae1yYGjmXeD o0puuCIlawZm3DdGq/GayLHkFjiAtKg98Ah3vwiJbWVRB/ShxhX/SRyc+bQ6/0+kUNNG RwGhIPd/4hro3fyl32CjGYg7HDC8iidSAB/6TGemLD8Uw7nYcNSJXHg/Ro7fYerVk4Zh 5VgL5PUVo1i1HF3F8vr5YVFmH589t/2XWE6zTCn3HS+FO3eUbrE52Btaiy5JArnTh4gk hzzK0KsjkQA4nw1H7+PHMWgY7y/xQQUXFOJpfG4oocflT3A4s8sQFCXaaCaFUUJp4eKs E2fw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org" Received: from server2.sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id a3-20020aa7cf03000000b00532e70aefe3si1148492edy.193.2023.09.21.05.34.26 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 21 Sep 2023 05:34:26 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 155503857709 for ; Thu, 21 Sep 2023 12:34:18 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from smtpbg151.qq.com (smtpbg151.qq.com [18.169.211.239]) by sourceware.org (Postfix) with ESMTPS id 7FB013858C27 for ; Thu, 21 Sep 2023 12:33:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7FB013858C27 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai X-QQ-mid: bizesmtp64t1695299616t3we8hkh Received: from rios-cad121.hadoop.rioslab.org ( [58.60.1.9]) by bizesmtp.qq.com (ESMTP) with id ; Thu, 21 Sep 2023 20:33:35 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: +ynUkgUhZJkRkEdhCKdv7ImJjZgbe4ZkTlkeTMh58cqTNtJ5ABkQf3SFDog2v oOBKiK7oAcVwpVD4dwbsmOhzT0TvPc1NnbbQDsnIdKcy7EY0yMqVAtAwatdlf4r93nE4m5W 5++MtR1VJ0wrLZUOt4bXZ5Sx2n2CETcRe7T8FtWZgkuOiq9M7HL3peMweN37B+O48q8ZtLc lnP2ktMhcXrKwpiUKC6pRAJqDo74txTAnlHq3KLN2p7LCUTG3ZcB+7Ergy1WnRrFYjQsOBg XynKi7rVILvoW5lYCPCUL+83x/Gc6G1BjHIfzo0uJUrVV2JyO4CHp3beq3G7PDoYCGE3iD6 NhIyxTxwj6DzAtDPK2aip/qZ8MQBk6J/jiq+A7QaR7lkoRJK7YH5i1R3MTgpo5LFkcnQHX6 66sjJB45/b79IDcSf1n4mw== X-QQ-GoodBg: 2 X-BIZMAIL-ID: 211949048298916646 From: Juzhe-Zhong To: gcc-patches@gcc.gnu.org Cc: kito.cheng@gmail.com, kito.cheng@sifive.com, jeffreyalaw@gmail.com, rdapp.gcc@gmail.com, Juzhe-Zhong Subject: [Committed] RISC-V: Add more VLS unary tests Date: Thu, 21 Sep 2023 20:33:33 +0800 Message-Id: <20230921123333.3451981-1-juzhe.zhong@rivai.ai> X-Mailer: git-send-email 2.36.3 MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, 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.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777650542706252432 X-GMAIL-MSGID: 1777650542706252432 Notice we are missing these tests. Committed. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/vls/abs-1.c: New test. * gcc.target/riscv/rvv/autovec/vls/not-1.c: New test. * gcc.target/riscv/rvv/autovec/vls/sqrt-1.c: New test. --- .../gcc.target/riscv/rvv/autovec/vls/abs-1.c | 52 ++++++++++++++ .../gcc.target/riscv/rvv/autovec/vls/not-1.c | 69 +++++++++++++++++++ .../gcc.target/riscv/rvv/autovec/vls/sqrt-1.c | 52 ++++++++++++++ 3 files changed, 173 insertions(+) create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/abs-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/not-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/sqrt-1.c diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/abs-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/abs-1.c new file mode 100644 index 00000000000..7c7a5bd6ac7 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/abs-1.c @@ -0,0 +1,52 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8 -ffast-math -fdump-tree-optimized" } */ + +#include "def.h" + +DEF_OP_V (fabs, 2, _Float16, __builtin_fabs) +DEF_OP_V (fabs, 4, _Float16, __builtin_fabs) +DEF_OP_V (fabs, 8, _Float16, __builtin_fabs) +DEF_OP_V (fabs, 16, _Float16, __builtin_fabs) +DEF_OP_V (fabs, 32, _Float16, __builtin_fabs) +DEF_OP_V (fabs, 64, _Float16, __builtin_fabs) +DEF_OP_V (fabs, 128, _Float16, __builtin_fabs) +DEF_OP_V (fabs, 256, _Float16, __builtin_fabs) +DEF_OP_V (fabs, 512, _Float16, __builtin_fabs) +DEF_OP_V (fabs, 1024, _Float16, __builtin_fabs) +DEF_OP_V (fabs, 2048, _Float16, __builtin_fabs) + +DEF_OP_V (fabs, 2, float, __builtin_fabs) +DEF_OP_V (fabs, 4, float, __builtin_fabs) +DEF_OP_V (fabs, 8, float, __builtin_fabs) +DEF_OP_V (fabs, 16, float, __builtin_fabs) +DEF_OP_V (fabs, 32, float, __builtin_fabs) +DEF_OP_V (fabs, 64, float, __builtin_fabs) +DEF_OP_V (fabs, 128, float, __builtin_fabs) +DEF_OP_V (fabs, 256, float, __builtin_fabs) +DEF_OP_V (fabs, 512, float, __builtin_fabs) +DEF_OP_V (fabs, 1024, float, __builtin_fabs) + +DEF_OP_V (fabs, 2, double, __builtin_fabs) +DEF_OP_V (fabs, 4, double, __builtin_fabs) +DEF_OP_V (fabs, 8, double, __builtin_fabs) +DEF_OP_V (fabs, 16, double, __builtin_fabs) +DEF_OP_V (fabs, 32, double, __builtin_fabs) +DEF_OP_V (fabs, 64, double, __builtin_fabs) +DEF_OP_V (fabs, 128, double, __builtin_fabs) +DEF_OP_V (fabs, 256, double, __builtin_fabs) +DEF_OP_V (fabs, 512, double, __builtin_fabs) + +/* { dg-final { scan-assembler-times {vfabs\.v\s+v[0-9]+,\s*v[0-9]+} 30 } } */ +/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-tree-dump-not "1,1" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "2,2" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "4,4" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "16,16" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "32,32" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "64,64" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "128,128" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "256,256" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "512,512" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "1024,1024" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "2048,2048" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "4096,4096" "optimized" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/not-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/not-1.c new file mode 100644 index 00000000000..316bac88fed --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/not-1.c @@ -0,0 +1,69 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8 -fdump-tree-optimized" } */ + +#include "def.h" + +DEF_OP_V (not, 1, int8_t, ~) +DEF_OP_V (not, 2, int8_t, ~) +DEF_OP_V (not, 4, int8_t, ~) +DEF_OP_V (not, 8, int8_t, ~) +DEF_OP_V (not, 16, int8_t, ~) +DEF_OP_V (not, 32, int8_t, ~) +DEF_OP_V (not, 64, int8_t, ~) +DEF_OP_V (not, 128, int8_t, ~) +DEF_OP_V (not, 256, int8_t, ~) +DEF_OP_V (not, 512, int8_t, ~) +DEF_OP_V (not, 1024, int8_t, ~) +DEF_OP_V (not, 2048, int8_t, ~) +DEF_OP_V (not, 4096, int8_t, ~) + +DEF_OP_V (not, 1, int16_t, ~) +DEF_OP_V (not, 2, int16_t, ~) +DEF_OP_V (not, 4, int16_t, ~) +DEF_OP_V (not, 8, int16_t, ~) +DEF_OP_V (not, 16, int16_t, ~) +DEF_OP_V (not, 32, int16_t, ~) +DEF_OP_V (not, 64, int16_t, ~) +DEF_OP_V (not, 128, int16_t, ~) +DEF_OP_V (not, 256, int16_t, ~) +DEF_OP_V (not, 512, int16_t, ~) +DEF_OP_V (not, 1024, int16_t, ~) +DEF_OP_V (not, 2048, int16_t, ~) + +DEF_OP_V (not, 1, int32_t, ~) +DEF_OP_V (not, 2, int32_t, ~) +DEF_OP_V (not, 4, int32_t, ~) +DEF_OP_V (not, 8, int32_t, ~) +DEF_OP_V (not, 16, int32_t, ~) +DEF_OP_V (not, 32, int32_t, ~) +DEF_OP_V (not, 64, int32_t, ~) +DEF_OP_V (not, 128, int32_t, ~) +DEF_OP_V (not, 256, int32_t, ~) +DEF_OP_V (not, 512, int32_t, ~) +DEF_OP_V (not, 1024, int32_t, ~) + +DEF_OP_V (not, 1, int64_t, ~) +DEF_OP_V (not, 2, int64_t, ~) +DEF_OP_V (not, 4, int64_t, ~) +DEF_OP_V (not, 8, int64_t, ~) +DEF_OP_V (not, 16, int64_t, ~) +DEF_OP_V (not, 32, int64_t, ~) +DEF_OP_V (not, 64, int64_t, ~) +DEF_OP_V (not, 128, int64_t, ~) +DEF_OP_V (not, 256, int64_t, ~) +DEF_OP_V (not, 512, int64_t, ~) + +/* { dg-final { scan-assembler-times {vnot\.v\s+v[0-9]+,\s*v[0-9]+} 42 } } */ +/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-tree-dump-not "1,1" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "2,2" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "4,4" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "16,16" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "32,32" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "64,64" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "128,128" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "256,256" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "512,512" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "1024,1024" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "2048,2048" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "4096,4096" "optimized" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/sqrt-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/sqrt-1.c new file mode 100644 index 00000000000..60dbfd77c2a --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/sqrt-1.c @@ -0,0 +1,52 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8 -ffast-math -fdump-tree-optimized" } */ + +#include "def.h" + +DEF_OP_V (sqrt, 2, _Float16, __builtin_sqrtf16) +DEF_OP_V (sqrt, 4, _Float16, __builtin_sqrtf16) +DEF_OP_V (sqrt, 8, _Float16, __builtin_sqrtf16) +DEF_OP_V (sqrt, 16, _Float16, __builtin_sqrtf16) +DEF_OP_V (sqrt, 32, _Float16, __builtin_sqrtf16) +DEF_OP_V (sqrt, 64, _Float16, __builtin_sqrtf16) +DEF_OP_V (sqrt, 128, _Float16, __builtin_sqrtf16) +DEF_OP_V (sqrt, 256, _Float16, __builtin_sqrtf16) +DEF_OP_V (sqrt, 512, _Float16, __builtin_sqrtf16) +DEF_OP_V (sqrt, 1024, _Float16, __builtin_sqrtf16) +DEF_OP_V (sqrt, 2048, _Float16, __builtin_sqrtf16) + +DEF_OP_V (sqrt, 2, float, __builtin_sqrtf) +DEF_OP_V (sqrt, 4, float, __builtin_sqrtf) +DEF_OP_V (sqrt, 8, float, __builtin_sqrtf) +DEF_OP_V (sqrt, 16, float, __builtin_sqrtf) +DEF_OP_V (sqrt, 32, float, __builtin_sqrtf) +DEF_OP_V (sqrt, 64, float, __builtin_sqrtf) +DEF_OP_V (sqrt, 128, float, __builtin_sqrtf) +DEF_OP_V (sqrt, 256, float, __builtin_sqrtf) +DEF_OP_V (sqrt, 512, float, __builtin_sqrtf) +DEF_OP_V (sqrt, 1024, float, __builtin_sqrtf) + +DEF_OP_V (sqrt, 2, double, __builtin_sqrt) +DEF_OP_V (sqrt, 4, double, __builtin_sqrt) +DEF_OP_V (sqrt, 8, double, __builtin_sqrt) +DEF_OP_V (sqrt, 16, double, __builtin_sqrt) +DEF_OP_V (sqrt, 32, double, __builtin_sqrt) +DEF_OP_V (sqrt, 64, double, __builtin_sqrt) +DEF_OP_V (sqrt, 128, double, __builtin_sqrt) +DEF_OP_V (sqrt, 256, double, __builtin_sqrt) +DEF_OP_V (sqrt, 512, double, __builtin_sqrt) + +/* { dg-final { scan-assembler-times {vfsqrt\.v\s+v[0-9]+,\s*v[0-9]+} 30 } } */ +/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-tree-dump-not "1,1" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "2,2" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "4,4" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "16,16" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "32,32" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "64,64" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "128,128" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "256,256" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "512,512" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "1024,1024" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "2048,2048" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "4096,4096" "optimized" } } */