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: 1848230 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=hi0S7U/H; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4S6PbJ737Bz1yqj for ; Fri, 13 Oct 2023 22:36:11 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D8843385B515 for ; Fri, 13 Oct 2023 11:36:08 +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+incoming=patchwork.ozlabs.org@gcc.gnu.org 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 --- .../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 ()