From patchwork Fri Oct 13 11:35:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Li, Pan2" X-Patchwork-Id: 152510 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:2908:b0:403:3b70:6f57 with SMTP id ib8csp1823898vqb; Fri, 13 Oct 2023 04:36:24 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFXwBaz5dL4qB3MExHR+ZRM3drc5AegdClsRLftIli8O9b/GA/8x7msOYSJvxT/bnk17iou X-Received: by 2002:ad4:5ca1:0:b0:66d:1624:2203 with SMTP id q1-20020ad45ca1000000b0066d16242203mr5258232qvh.20.1697196983939; Fri, 13 Oct 2023 04:36:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697196983; cv=none; d=google.com; s=arc-20160816; b=wH1RFoDc0muxVE0M5TLL8aWfUhQdiR65r8GFH/OxgQI8us8LLEJhgtBpbxYF9h/AIq IUwQ2vvNUxsTzHq9piJOgSNxT1GhZwdUXFK6g08LHELIugw5SV8kstZygfCZ+6lT08J4 G4wZJTsOqzJb62O0KopE4mOwdFJk1szmhYpfVLOM7YTj9CCWzzz4t/Rw9/nu0bnM04y+ bE+SfbcG27F2/Qsd98SkAhCpi5+BrOx79yU0NV9GqtBow+dfBUkWxTb+HjyBRdIPUI2d 3n95DhAXl28N6M3WM+S16ZH/LykuTzvfRKSMTh0g2wXTglEcaTt6eYR7TPMQbmHqg1Y6 DGSw== 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:content-transfer-encoding :mime-version:message-id:date:subject:cc:to:from:dkim-signature :dmarc-filter:delivered-to; bh=j+6ocjlfiQ85OY9GEfW3EjvunhddzvKjhn/hEsnIFP8=; fh=yqBQmCEeFYB2Wjmf8l8QkV/dOy5iKwSEx/iU/FYQjxU=; b=cz8BnDCiMEdlNFWBo+RiKz8T9LYqNn8LpM4yryq3ir6qaBakVgyYuFDVDs57H/K4eE iYjW43AwnktFHY/zPaqjQe4qNycH64WAwPYCRveRel7Y1IeQF91nehr5FiffhxHmhori 45e1ynlR87wN0fxEHLDt1SCVYazm5adXcgHzU9UGAq6pYlHAetP7toxAyZGBl4Cu+Nuu McveFzNUxeX/W/pthCGKaepVXTphBLX+yyxeiBlex0zHQSmzrNuI0TC+kvG0r9OS+2X9 3le8A5/1K0bXyJNFrgkc4arY+alMfW+Rq00JUVZRQKANIkwuP6iPN3MrXWS/JF04mEfo cHWw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="hi0S7U/H"; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id y4-20020a05620a44c400b007756a7b3dfasi1046719qkp.503.2023.10.13.04.36.23 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Oct 2023 04:36:23 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="hi0S7U/H"; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 1C11C385C424 for ; Fri, 13 Oct 2023 11:36:21 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.93]) by sourceware.org (Postfix) with ESMTPS id 18F213858D35 for ; Fri, 13 Oct 2023 11:35:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 18F213858D35 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1697196952; x=1728732952; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=6hGOFPn71E4QSWe2iwbziH7AOLW0Qasb0OiE3zMS4Wk=; b=hi0S7U/HzLVFjjwyRdhXPOO26rxX27fbHtsTM8YHj+z/wBqiXRVO5BwK 3HMZRMZMyJgPKtFiL9CyUmFV1+KTGprkHjA1ckFupGx1G3sCTcsXP3oHC jQy8FNnWC/brhikmPB8A6arBwhhjk6CkPdAvlkILRct5oBEb2kkfadJMZ JjSlfX/yuwrhtbaplUs65Ixcm9nQvhtZD0yBuk3WQ04/ygp0rv0C6oIc5 j8zBaClNBrs/PD788vAWclMVf88JXHNJDOSevexTJ5VUQQrCYl9iSn7Jy 6cjA3HKo3aebn/7YC7M/Yns5YLLpQJy+TbJsV4AYU2LUpv6VO3hJS9Hbr Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10861"; a="382391328" X-IronPort-AV: E=Sophos;i="6.03,222,1694761200"; d="scan'208";a="382391328" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Oct 2023 04:35:49 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10861"; a="784125726" X-IronPort-AV: E=Sophos;i="6.03,222,1694761200"; d="scan'208";a="784125726" Received: from shvmail03.sh.intel.com ([10.239.245.20]) by orsmga008.jf.intel.com with ESMTP; 13 Oct 2023 04:35:43 -0700 Received: from pli-ubuntu.sh.intel.com (pli-ubuntu.sh.intel.com [10.239.159.47]) by shvmail03.sh.intel.com (Postfix) with ESMTP id 5BB011005662; Fri, 13 Oct 2023 19:35:42 +0800 (CST) From: pan2.li@intel.com To: gcc-patches@gcc.gnu.org Cc: juzhe.zhong@rivai.ai, pan2.li@intel.com, yanzhang.wang@intel.com, kito.cheng@gmail.com Subject: [PATCH v1] RISC-V: Refine run test cases of math autovec Date: Fri, 13 Oct 2023 19:35:41 +0800 Message-Id: <20231013113541.1954338-1-pan2.li@intel.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Spam-Status: No, score=-11.2 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, SPF_HELO_NONE, SPF_NONE, 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: 1779640024653697398 X-GMAIL-MSGID: 1779640024653697398 From: Pan Li For the run test cases of math autovec, we need a reference value to check if the return value is expected or not. The previous patch leverage hardcode for the reference value but we can leverage the scalar math function instead. For example ceil after autovec. ASSERT (CEIL (Vector {1.2,...}) == Vector {2.0, ...}); But we can leverage the scalar math function to avoid potential mistakes. ASSERT (CEIL (Vector {1.2,...}) == Vector {ceil (1.2), ...}); This patch remove some fflags check as it covered by check-body already. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/unop/math-ceil-run-1.c: Use scalar func as reference instead of hardcode. * gcc.target/riscv/rvv/autovec/unop/math-ceil-run-2.c: Ditto. * gcc.target/riscv/rvv/autovec/unop/math-floor-run-1.c: Ditto. * gcc.target/riscv/rvv/autovec/unop/math-floor-run-2.c: Ditto. * gcc.target/riscv/rvv/autovec/unop/math-nearbyint-run-1.c: Ditto. * gcc.target/riscv/rvv/autovec/unop/math-nearbyint-run-2.c: Ditto. * gcc.target/riscv/rvv/autovec/unop/math-rint-run-1.c: Ditto. * gcc.target/riscv/rvv/autovec/unop/math-rint-run-2.c: Ditto. * gcc.target/riscv/rvv/autovec/unop/math-round-run-1.c: Ditto. * gcc.target/riscv/rvv/autovec/unop/math-round-run-2.c: Ditto. * gcc.target/riscv/rvv/autovec/unop/math-trunc-run-1.c: Ditto. * gcc.target/riscv/rvv/autovec/unop/math-trunc-run-2.c: Ditto. Signed-off-by: Pan Li Signed-off-by: Pan Li Signed-off-by: Pan Li > --- .../riscv/rvv/autovec/unop/math-ceil-run-1.c | 18 +++++----- .../riscv/rvv/autovec/unop/math-ceil-run-2.c | 18 +++++----- .../riscv/rvv/autovec/unop/math-floor-run-1.c | 18 +++++----- .../riscv/rvv/autovec/unop/math-floor-run-2.c | 18 +++++----- .../rvv/autovec/unop/math-nearbyint-run-1.c | 33 ++++++++++--------- .../rvv/autovec/unop/math-nearbyint-run-2.c | 33 ++++++++++--------- .../riscv/rvv/autovec/unop/math-rint-run-1.c | 33 ++++++++++--------- .../riscv/rvv/autovec/unop/math-rint-run-2.c | 33 ++++++++++--------- .../riscv/rvv/autovec/unop/math-round-run-1.c | 18 +++++----- .../riscv/rvv/autovec/unop/math-round-run-2.c | 18 +++++----- .../riscv/rvv/autovec/unop/math-trunc-run-1.c | 18 +++++----- .../riscv/rvv/autovec/unop/math-trunc-run-2.c | 18 +++++----- 12 files changed, 140 insertions(+), 136 deletions(-) diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-ceil-run-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-ceil-run-1.c index 88611e8268e..419a3def4df 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-ceil-run-1.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-ceil-run-1.c @@ -12,15 +12,15 @@ float ref[ARRAY_SIZE]; TEST_UNARY_CALL (float, __builtin_ceilf) TEST_ASSERT (float) -TEST_INIT (float, 1.2, 2.0, 1) -TEST_INIT (float, -1.2, -1.0, 2) -TEST_INIT (float, 3.0, 3.0, 3) -TEST_INIT (float, 8388607.5, 8388608.0, 4) -TEST_INIT (float, 8388609.0, 8388609.0, 5) -TEST_INIT (float, 0.0, 0.0, 6) -TEST_INIT (float, -0.0, -0.0, 7) -TEST_INIT (float, -8388607.5, -8388607.0, 8) -TEST_INIT (float, -8388608.0, -8388608.0, 9) +TEST_INIT (float, 1.2, __builtin_ceilf (1.2), 1) +TEST_INIT (float, -1.2, __builtin_ceilf (-1.2), 2) +TEST_INIT (float, 3.0, __builtin_ceilf (3.0), 3) +TEST_INIT (float, 8388607.5, __builtin_ceilf (8388607.5), 4) +TEST_INIT (float, 8388609.0, __builtin_ceilf (8388609.0), 5) +TEST_INIT (float, 0.0, __builtin_ceilf (0.0), 6) +TEST_INIT (float, -0.0,__builtin_ceilf (-0.0), 7) +TEST_INIT (float, -8388607.5, __builtin_ceilf (-8388607.5), 8) +TEST_INIT (float, -8388608.0, __builtin_ceilf (-8388608.0), 9) int main () diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-ceil-run-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-ceil-run-2.c index bb4c86c3d12..2b29c8e4414 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-ceil-run-2.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-ceil-run-2.c @@ -12,15 +12,15 @@ double ref[ARRAY_SIZE]; TEST_UNARY_CALL (double, __builtin_ceil) TEST_ASSERT (double) -TEST_INIT (double, 1.2, 2.0, 1) -TEST_INIT (double, -1.2, -1.0, 2) -TEST_INIT (double, 3.0, 3.0, 3) -TEST_INIT (double, 4503599627370495.5, 4503599627370496.0, 4) -TEST_INIT (double, 4503599627370497.0, 4503599627370497.0, 5) -TEST_INIT (double, 0.0, 0.0, 6) -TEST_INIT (double, -0.0, -0.0, 7) -TEST_INIT (double, -4503599627370495.5, -4503599627370495.0, 8) -TEST_INIT (double, -4503599627370496.0, -4503599627370496.0, 9) +TEST_INIT (double, 1.2, __builtin_ceil (1.2), 1) +TEST_INIT (double, -1.2, __builtin_ceil (-1.2), 2) +TEST_INIT (double, 3.0, __builtin_ceil (3.0), 3) +TEST_INIT (double, 4503599627370495.5, __builtin_ceil (4503599627370495.5), 4) +TEST_INIT (double, 4503599627370497.0, __builtin_ceil (4503599627370497.0), 5) +TEST_INIT (double, 0.0, __builtin_ceil (0.0), 6) +TEST_INIT (double, -0.0, __builtin_ceil (-0.0), 7) +TEST_INIT (double, -4503599627370495.5, __builtin_ceil (-4503599627370495.5), 8) +TEST_INIT (double, -4503599627370496.0, __builtin_ceil (-4503599627370496.0), 9) int main () diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-floor-run-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-floor-run-1.c index 4af60c9270e..07b61cd28f6 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-floor-run-1.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-floor-run-1.c @@ -12,15 +12,15 @@ float ref[ARRAY_SIZE]; TEST_UNARY_CALL (float, __builtin_floorf) TEST_ASSERT (float) -TEST_INIT (float, 1.2, 1.0, 1) -TEST_INIT (float, -1.2, -2.0, 2) -TEST_INIT (float, 3.0, 3.0, 3) -TEST_INIT (float, 8388607.5, 8388607.0, 4) -TEST_INIT (float, 8388609.0, 8388609.0, 5) -TEST_INIT (float, 0.0, 0.0, 6) -TEST_INIT (float, -0.0, -0.0, 7) -TEST_INIT (float, -8388607.5, -8388608.0, 8) -TEST_INIT (float, -8388608.0, -8388608.0, 9) +TEST_INIT (float, 1.2, __builtin_floorf (1.2), 1) +TEST_INIT (float, -1.2, __builtin_floorf (-1.2), 2) +TEST_INIT (float, 3.0, __builtin_floorf (3.0), 3) +TEST_INIT (float, 8388607.5, __builtin_floorf (8388607.5), 4) +TEST_INIT (float, 8388609.0, __builtin_floorf (8388609.0), 5) +TEST_INIT (float, 0.0, __builtin_floorf (0.0), 6) +TEST_INIT (float, -0.0, __builtin_floorf (-0.0), 7) +TEST_INIT (float, -8388607.5, __builtin_floorf (-8388607.5), 8) +TEST_INIT (float, -8388608.0, __builtin_floorf (-8388608.0), 9) int main () diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-floor-run-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-floor-run-2.c index ad3735c2eec..7201ac1cd7b 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-floor-run-2.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-floor-run-2.c @@ -12,15 +12,15 @@ double ref[ARRAY_SIZE]; TEST_UNARY_CALL (double, __builtin_floor) TEST_ASSERT (double) -TEST_INIT (double, 1.2, 1.0, 1) -TEST_INIT (double, -1.2, -2.0, 2) -TEST_INIT (double, 3.0, 3.0, 3) -TEST_INIT (double, 4503599627370495.5, 4503599627370495.0, 4) -TEST_INIT (double, 4503599627370497.0, 4503599627370497.0, 5) -TEST_INIT (double, 0.0, 0.0, 6) -TEST_INIT (double, -0.0, -0.0, 7) -TEST_INIT (double, -4503599627370495.5, -4503599627370496.0, 8) -TEST_INIT (double, -4503599627370496.0, -4503599627370496.0, 9) +TEST_INIT (double, 1.2, __builtin_floor (1.2), 1) +TEST_INIT (double, -1.2, __builtin_floor (-1.2), 2) +TEST_INIT (double, 3.0, __builtin_floor (3.0), 3) +TEST_INIT (double, 4503599627370495.5, __builtin_floor (4503599627370495.5), 4) +TEST_INIT (double, 4503599627370497.0, __builtin_floor (4503599627370497.0), 5) +TEST_INIT (double, 0.0, __builtin_floor (0.0), 6) +TEST_INIT (double, -0.0, __builtin_floor (-0.0), 7) +TEST_INIT (double, -4503599627370495.5, __builtin_floor (-4503599627370496.0), 8) +TEST_INIT (double, -4503599627370496.0, __builtin_floor (-4503599627370496.0), 9) int main () diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-nearbyint-run-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-nearbyint-run-1.c index 6786e54d0ec..b0209eecf90 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-nearbyint-run-1.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-nearbyint-run-1.c @@ -9,24 +9,30 @@ float in[ARRAY_SIZE]; float out[ARRAY_SIZE]; float ref[ARRAY_SIZE]; +static float +get_ref_nearbyintf (float val) +{ + set_rm (FRM_RTZ); + + return __builtin_nearbyintf (val); +} + TEST_UNARY_CALL (float, __builtin_nearbyintf) TEST_ASSERT (float) -TEST_INIT (float, 1.2, 1.0, 1) -TEST_INIT (float, -1.2, -1.0, 2) -TEST_INIT (float, 3.0, 3.0, 3) -TEST_INIT (float, 8388607.5, 8388607.0, 4) -TEST_INIT (float, 8388609.0, 8388609.0, 5) -TEST_INIT (float, 0.0, 0.0, 6) -TEST_INIT (float, -0.0, -0.0, 7) -TEST_INIT (float, -8388607.5, -8388607.0, 8) -TEST_INIT (float, -8388608.0, -8388608.0, 9) +TEST_INIT (float, 1.2, get_ref_nearbyintf (1.2), 1) +TEST_INIT (float, -1.2, get_ref_nearbyintf (-1.2), 2) +TEST_INIT (float, 3.0, get_ref_nearbyintf (3.0), 3) +TEST_INIT (float, 8388607.5, get_ref_nearbyintf (8388607.5), 4) +TEST_INIT (float, 8388609.0, get_ref_nearbyintf (8388609.0), 5) +TEST_INIT (float, 0.0, get_ref_nearbyintf (0.0), 6) +TEST_INIT (float, -0.0, get_ref_nearbyintf (-0.0), 7) +TEST_INIT (float, -8388607.5, get_ref_nearbyintf (-8388607.5), 8) +TEST_INIT (float, -8388608.0, get_ref_nearbyintf (-8388608.0), 9) int main () { - unsigned fflags_before = get_fflags (); - set_rm (FRM_RTZ); RUN_TEST (float, 1, __builtin_nearbyintf, in, out, ref, ARRAY_SIZE); @@ -39,10 +45,5 @@ main () RUN_TEST (float, 8, __builtin_nearbyintf, in, out, ref, ARRAY_SIZE); RUN_TEST (float, 9, __builtin_nearbyintf, in, out, ref, ARRAY_SIZE); - unsigned fflags_after = get_fflags (); - - if (fflags_before != fflags_after) - __builtin_abort (); - return 0; } diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-nearbyint-run-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-nearbyint-run-2.c index 9d3a3a68ee8..2329a515390 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-nearbyint-run-2.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-nearbyint-run-2.c @@ -9,24 +9,30 @@ double in[ARRAY_SIZE]; double out[ARRAY_SIZE]; double ref[ARRAY_SIZE]; +static double +get_ref_nearbyint (double val) +{ + set_rm (FRM_RNE); + + return __builtin_nearbyint (val); +} + TEST_UNARY_CALL (double, __builtin_nearbyint) TEST_ASSERT (double) -TEST_INIT (double, 1.2, 1.0, 1) -TEST_INIT (double, -1.8, -2.0, 2) -TEST_INIT (double, 3.0, 3.0, 3) -TEST_INIT (double, 4503599627370495.5, 4503599627370496.0, 4) -TEST_INIT (double, 4503599627370497.0, 4503599627370497.0, 5) -TEST_INIT (double, 0.0, 0.0, 6) -TEST_INIT (double, -0.0, -0.0, 7) -TEST_INIT (double, -4503599627370495.5, -4503599627370496.0, 8) -TEST_INIT (double, -4503599627370496.0, -4503599627370496.0, 9) +TEST_INIT (double, 1.2, get_ref_nearbyint (1.2), 1) +TEST_INIT (double, -1.8, get_ref_nearbyint (-1.8), 2) +TEST_INIT (double, 3.0, get_ref_nearbyint (3.0), 3) +TEST_INIT (double, 4503599627370495.5, get_ref_nearbyint (4503599627370495.5), 4) +TEST_INIT (double, 4503599627370497.0, get_ref_nearbyint (4503599627370497.0), 5) +TEST_INIT (double, 0.0, get_ref_nearbyint (0.0), 6) +TEST_INIT (double, -0.0, get_ref_nearbyint (-0.0), 7) +TEST_INIT (double, -4503599627370495.5, get_ref_nearbyint (-4503599627370495.5), 8) +TEST_INIT (double, -4503599627370496.0, get_ref_nearbyint (-4503599627370496.0), 9) int main () { - unsigned fflags_before = get_fflags (); - set_rm (FRM_RNE); RUN_TEST (double, 1, __builtin_nearbyint, in, out, ref, ARRAY_SIZE); @@ -39,10 +45,5 @@ main () RUN_TEST (double, 8, __builtin_nearbyint, in, out, ref, ARRAY_SIZE); RUN_TEST (double, 9, __builtin_nearbyint, in, out, ref, ARRAY_SIZE); - unsigned fflags_after = get_fflags (); - - if (fflags_before != fflags_after) - __builtin_abort (); - return 0; } diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-rint-run-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-rint-run-1.c index 080f1d9a2e4..9590d4465e3 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-rint-run-1.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-rint-run-1.c @@ -9,24 +9,30 @@ float in[ARRAY_SIZE]; float out[ARRAY_SIZE]; float ref[ARRAY_SIZE]; +static float +get_ref_rintf (float val) +{ + set_rm (FRM_RTZ); + + return __builtin_rintf (val); +} + TEST_UNARY_CALL (float, __builtin_rintf) TEST_ASSERT (float) -TEST_INIT (float, 1.2, 1.0, 1) -TEST_INIT (float, -1.2, -1.0, 2) -TEST_INIT (float, 3.0, 3.0, 3) -TEST_INIT (float, 8388607.5, 8388607.0, 4) -TEST_INIT (float, 8388609.0, 8388609.0, 5) -TEST_INIT (float, 0.0, 0.0, 6) -TEST_INIT (float, -0.0, -0.0, 7) -TEST_INIT (float, -8388607.5, -8388607.0, 8) -TEST_INIT (float, -8388608.0, -8388608.0, 9) +TEST_INIT (float, 1.2, get_ref_rintf (1.2), 1) +TEST_INIT (float, -1.2, get_ref_rintf (-1.2), 2) +TEST_INIT (float, 3.0, get_ref_rintf (3.0), 3) +TEST_INIT (float, 8388607.5, get_ref_rintf (8388607.5), 4) +TEST_INIT (float, 8388609.0, get_ref_rintf (8388609.0), 5) +TEST_INIT (float, 0.0, get_ref_rintf (0.0), 6) +TEST_INIT (float, -0.0, get_ref_rintf (-0.0), 7) +TEST_INIT (float, -8388607.5, get_ref_rintf (-8388607.5), 8) +TEST_INIT (float, -8388608.0, get_ref_rintf (-8388608.0), 9) int main () { - unsigned fflags_before = get_fflags (); - set_rm (FRM_RTZ); RUN_TEST (float, 1, __builtin_rintf, in, out, ref, ARRAY_SIZE); @@ -39,10 +45,5 @@ main () RUN_TEST (float, 8, __builtin_rintf, in, out, ref, ARRAY_SIZE); RUN_TEST (float, 9, __builtin_rintf, in, out, ref, ARRAY_SIZE); - unsigned fflags_after = get_fflags (); - - if (fflags_before == fflags_after) - __builtin_abort (); - return 0; } diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-rint-run-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-rint-run-2.c index 6d03118e825..fe586492471 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-rint-run-2.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-rint-run-2.c @@ -9,24 +9,30 @@ double in[ARRAY_SIZE]; double out[ARRAY_SIZE]; double ref[ARRAY_SIZE]; +static double +get_ref_rint (double val) +{ + set_rm (FRM_RNE); + + return __builtin_rint (val); +} + TEST_UNARY_CALL (double, __builtin_rint) TEST_ASSERT (double) -TEST_INIT (double, 1.2, 1.0, 1) -TEST_INIT (double, -1.8, -2.0, 2) -TEST_INIT (double, 3.0, 3.0, 3) -TEST_INIT (double, 4503599627370495.5, 4503599627370496.0, 4) -TEST_INIT (double, 4503599627370497.0, 4503599627370497.0, 5) -TEST_INIT (double, 0.0, 0.0, 6) -TEST_INIT (double, -0.0, -0.0, 7) -TEST_INIT (double, -4503599627370495.5, -4503599627370496.0, 8) -TEST_INIT (double, -4503599627370496.0, -4503599627370496.0, 9) +TEST_INIT (double, 1.2, get_ref_rint (1.2), 1) +TEST_INIT (double, -1.8, get_ref_rint (-1.8), 2) +TEST_INIT (double, 3.0, get_ref_rint (3.0), 3) +TEST_INIT (double, 4503599627370495.5, get_ref_rint (4503599627370495.5), 4) +TEST_INIT (double, 4503599627370497.0, get_ref_rint (4503599627370497.0), 5) +TEST_INIT (double, 0.0, get_ref_rint (0.0), 6) +TEST_INIT (double, -0.0, get_ref_rint (-0.0), 7) +TEST_INIT (double, -4503599627370495.5, get_ref_rint (-4503599627370495.5), 8) +TEST_INIT (double, -4503599627370496.0, get_ref_rint (-4503599627370496.0), 9) int main () { - unsigned fflags_before = get_fflags (); - set_rm (FRM_RNE); RUN_TEST (double, 1, __builtin_rint, in, out, ref, ARRAY_SIZE); @@ -39,10 +45,5 @@ main () RUN_TEST (double, 8, __builtin_rint, in, out, ref, ARRAY_SIZE); RUN_TEST (double, 9, __builtin_rint, in, out, ref, ARRAY_SIZE); - unsigned fflags_after = get_fflags (); - - if (fflags_before == fflags_after) - __builtin_abort (); - return 0; } diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-round-run-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-round-run-1.c index fc8686fa043..27e04d710b0 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-round-run-1.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-round-run-1.c @@ -12,15 +12,15 @@ float ref[ARRAY_SIZE]; TEST_UNARY_CALL (float, __builtin_roundf) TEST_ASSERT (float) -TEST_INIT (float, 1.2, 1.0, 1) -TEST_INIT (float, -1.6, -2.0, 2) -TEST_INIT (float, 3.0, 3.0, 3) -TEST_INIT (float, 8388607.5, 8388608.0, 4) -TEST_INIT (float, 8388609.0, 8388609.0, 5) -TEST_INIT (float, 0.0, 0.0, 6) -TEST_INIT (float, -0.0, -0.0, 7) -TEST_INIT (float, -8388607.5, -8388608.0, 8) -TEST_INIT (float, -8388608.0, -8388608.0, 9) +TEST_INIT (float, 1.2, __builtin_roundf (1.2), 1) +TEST_INIT (float, -1.6, __builtin_roundf (-1.6), 2) +TEST_INIT (float, 3.0, __builtin_roundf (3.0), 3) +TEST_INIT (float, 8388607.5, __builtin_roundf (8388607.5), 4) +TEST_INIT (float, 8388609.0, __builtin_roundf (8388609.0), 5) +TEST_INIT (float, 0.0, __builtin_roundf (0.0), 6) +TEST_INIT (float, -0.0, __builtin_roundf (-0.0), 7) +TEST_INIT (float, -8388607.5, __builtin_roundf (-8388607.5), 8) +TEST_INIT (float, -8388608.0, __builtin_roundf (-8388608.0), 9) int main () diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-round-run-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-round-run-2.c index 14ddf6c9f36..cef280ce557 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-round-run-2.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-round-run-2.c @@ -12,15 +12,15 @@ double ref[ARRAY_SIZE]; TEST_UNARY_CALL (double, __builtin_round) TEST_ASSERT (double) -TEST_INIT (double, 1.2, 1.0, 1) -TEST_INIT (double, -1.8, -2.0, 2) -TEST_INIT (double, 3.0, 3.0, 3) -TEST_INIT (double, 4503599627370495.5, 4503599627370496.0, 4) -TEST_INIT (double, 4503599627370497.0, 4503599627370497.0, 5) -TEST_INIT (double, 0.0, 0.0, 6) -TEST_INIT (double, -0.0, -0.0, 7) -TEST_INIT (double, -4503599627370495.5, -4503599627370496.0, 8) -TEST_INIT (double, -4503599627370496.0, -4503599627370496.0, 9) +TEST_INIT (double, 1.2, __builtin_round (1.2), 1) +TEST_INIT (double, -1.8, __builtin_round (-1.8), 2) +TEST_INIT (double, 3.0, __builtin_round (3.0), 3) +TEST_INIT (double, 4503599627370495.5, __builtin_round (4503599627370495.5), 4) +TEST_INIT (double, 4503599627370497.0, __builtin_round (4503599627370497.0), 5) +TEST_INIT (double, 0.0, __builtin_round (0.0), 6) +TEST_INIT (double, -0.0, __builtin_round (-0.0), 7) +TEST_INIT (double, -4503599627370495.5, __builtin_round (-4503599627370495.5), 8) +TEST_INIT (double, -4503599627370496.0, __builtin_round (-4503599627370496.0), 9) int main () diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-trunc-run-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-trunc-run-1.c index 8b9f6d2a6ca..910031d6e20 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-trunc-run-1.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-trunc-run-1.c @@ -12,15 +12,15 @@ float ref[ARRAY_SIZE]; TEST_UNARY_CALL (float, __builtin_truncf) TEST_ASSERT (float) -TEST_INIT (float, 1.2, 1.0, 1) -TEST_INIT (float, -1.2, -1.0, 2) -TEST_INIT (float, 3.0, 3.0, 3) -TEST_INIT (float, 8388607.5, 8388607.0, 4) -TEST_INIT (float, 8388609.0, 8388609.0, 5) -TEST_INIT (float, 0.0, 0.0, 6) -TEST_INIT (float, -0.0, -0.0, 7) -TEST_INIT (float, -8388607.5, -8388607.0, 8) -TEST_INIT (float, -8388608.0, -8388608.0, 9) +TEST_INIT (float, 1.2, __builtin_truncf (1.2), 1) +TEST_INIT (float, -1.2,__builtin_truncf (-1.2), 2) +TEST_INIT (float, 3.0, __builtin_truncf (3.0), 3) +TEST_INIT (float, 8388607.5, __builtin_truncf (8388607.5), 4) +TEST_INIT (float, 8388609.0, __builtin_truncf (8388609.0), 5) +TEST_INIT (float, 0.0, __builtin_truncf (0.0), 6) +TEST_INIT (float, -0.0, __builtin_truncf (-0.0), 7) +TEST_INIT (float, -8388607.5, __builtin_truncf (-8388607.5), 8) +TEST_INIT (float, -8388608.0, __builtin_truncf (-8388608.0), 9) int main () diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-trunc-run-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-trunc-run-2.c index 2ae354f31e6..20d91f0654e 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-trunc-run-2.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-trunc-run-2.c @@ -12,15 +12,15 @@ double ref[ARRAY_SIZE]; TEST_UNARY_CALL (double, __builtin_trunc) TEST_ASSERT (double) -TEST_INIT (double, 1.2, 1.0, 1) -TEST_INIT (double, -1.2, -1.0, 2) -TEST_INIT (double, 3.0, 3.0, 3) -TEST_INIT (double, 4503599627370495.5, 4503599627370495.0, 4) -TEST_INIT (double, 4503599627370497.0, 4503599627370497.0, 5) -TEST_INIT (double, 0.0, 0.0, 6) -TEST_INIT (double, -0.0, -0.0, 7) -TEST_INIT (double, -4503599627370495.5, -4503599627370495.0, 8) -TEST_INIT (double, -4503599627370496.0, -4503599627370496.0, 9) +TEST_INIT (double, 1.2, __builtin_trunc (1.2), 1) +TEST_INIT (double, -1.2, __builtin_trunc (-1.2), 2) +TEST_INIT (double, 3.0, __builtin_trunc (3.0), 3) +TEST_INIT (double, 4503599627370495.5, __builtin_trunc (4503599627370495.5), 4) +TEST_INIT (double, 4503599627370497.0, __builtin_trunc (4503599627370497.0), 5) +TEST_INIT (double, 0.0, __builtin_trunc (0.0), 6) +TEST_INIT (double, -0.0, __builtin_trunc (-0.0), 7) +TEST_INIT (double, -4503599627370495.5, __builtin_trunc (-4503599627370495.5), 8) +TEST_INIT (double, -4503599627370496.0, __builtin_trunc (-4503599627370496.0), 9) int main ()