From patchwork Mon Jan 4 14:24:42 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Siddhesh Poyarekar X-Patchwork-Id: 41626 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 752C4387540F; Mon, 4 Jan 2021 14:25:29 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 752C4387540F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1609770329; bh=ZASXLp1OYzIrp69iA4FsTjrBs7AzMIR3lo1T5gjdCpM=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=epqX1+jtFaUxITKQ0ZOS4HYiT8B4p6ffdTR0GioV/aMEsJxDfyYbtRwca938n9qTA bA9sxkxuYlCVSUQV5lKvCPdYrZnPYbkTE/gxyekoTPz8xPgyNs2SMiXUMeUJQ36YUg j5faZgVeXMakng26/wiVYqdR64BehdzkmPPl7WKM= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from bee.birch.relay.mailchannels.net (bee.birch.relay.mailchannels.net [23.83.209.14]) by sourceware.org (Postfix) with ESMTPS id AAD143840C2A for ; Mon, 4 Jan 2021 14:25:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org AAD143840C2A X-Sender-Id: dreamhost|x-authsender|siddhesh@gotplt.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 677371E19EB; Mon, 4 Jan 2021 14:25:24 +0000 (UTC) Received: from pdx1-sub0-mail-a68.g.dreamhost.com (100-96-1-8.trex.outbound.svc.cluster.local [100.96.1.8]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id CA1AA1E189B; Mon, 4 Jan 2021 14:25:23 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|siddhesh@gotplt.org Received: from pdx1-sub0-mail-a68.g.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.18.11); Mon, 04 Jan 2021 14:25:24 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|siddhesh@gotplt.org X-MailChannels-Auth-Id: dreamhost X-Interest-Versed: 04dbcac218adc35a_1609770324075_1756250741 X-MC-Loop-Signature: 1609770324075:662620675 X-MC-Ingress-Time: 1609770324075 Received: from pdx1-sub0-mail-a68.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a68.g.dreamhost.com (Postfix) with ESMTP id 70BD37E491; Mon, 4 Jan 2021 06:25:23 -0800 (PST) Received: from rhbox.lan (unknown [103.199.172.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: siddhesh@gotplt.org) by pdx1-sub0-mail-a68.g.dreamhost.com (Postfix) with ESMTPSA id 5DEB27E492; Mon, 4 Jan 2021 06:25:19 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a68 To: libc-alpha@sourceware.org Subject: [PATCH 1/2] Drop nan-pseudo-number.h usage from tests Date: Mon, 4 Jan 2021 19:54:42 +0530 Message-Id: <20210104142443.3034204-2-siddhesh@sourceware.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210104142443.3034204-1-siddhesh@sourceware.org> References: <20210104142443.3034204-1-siddhesh@sourceware.org> MIME-Version: 1.0 X-Spam-Status: No, score=-1168.2 required=5.0 tests=BAYES_00, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_DMARC_NONE, KAM_DMARC_STATUS, RCVD_IN_ABUSEAT, RCVD_IN_BARRACUDACENTRAL, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NEUTRAL, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Siddhesh Poyarekar via Libc-alpha From: Siddhesh Poyarekar Reply-To: Siddhesh Poyarekar Cc: fweimer@redhat.com, joseph@codesourcery.com Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" Make the tests use TEST_COND_intel96 to decide on whether to build the unnormal tests instead of the macro in nan-pseudo-number.h and then drop the header inclusion. This unbreaks test runs on all architectures that do not have ldbl-96. Also drop the HANDLE_PSEUDO_NUMBERS macro since it is not used anywhere. --- math/libm-test-driver.c | 5 ++--- math/libm-test-fpclassify.inc | 4 ++-- math/libm-test-isinf.inc | 4 ++-- math/libm-test-isnan.inc | 4 ++-- math/libm-test-issignaling.inc | 4 ++-- sysdeps/ieee754/ldbl-96/nan-pseudo-number.h | 4 +--- sysdeps/x86/fpu/nan-pseudo-number.h | 1 - 7 files changed, 11 insertions(+), 15 deletions(-) diff --git a/math/libm-test-driver.c b/math/libm-test-driver.c index 87f2793061..f7c0861c39 100644 --- a/math/libm-test-driver.c +++ b/math/libm-test-driver.c @@ -19,7 +19,6 @@ #include "libm-test-support.h" #include -#include /* Flags set by the including file. */ const int flag_test_errno = TEST_ERRNO; @@ -124,7 +123,7 @@ const char qtype_str[] = TYPE_STR; #define snan_value_ld __builtin_nansl ("") /* For pseudo-normal number tests. */ -#if HANDLE_PSEUDO_NUMBERS +#if TEST_COND_intel96 # include #define pseudo_inf { .parts = { 0x00000000, 0x00000000, 0x7fff }} #define pseudo_zero { .parts = { 0x00000000, 0x00000000, 0x0100 }} @@ -328,7 +327,7 @@ struct test_f_i_data } rd, rn, rz, ru; }; /* Used for RUN_TEST_LOOP_f_i_tg_u and RUN_TEST_LOOP_f_b_tg_u. */ -#if HANDLE_PSEUDO_NUMBERS +#if TEST_COND_intel96 struct test_f_i_data_u { const char *arg_str; diff --git a/math/libm-test-fpclassify.inc b/math/libm-test-fpclassify.inc index 39728d0771..c1c7e1ead1 100644 --- a/math/libm-test-fpclassify.inc +++ b/math/libm-test-fpclassify.inc @@ -37,7 +37,7 @@ static const struct test_f_i_data fpclassify_test_data[] = TEST_f_i (fpclassify, -min_subnorm_value, FP_SUBNORMAL, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), }; -#if HANDLE_PSEUDO_NUMBERS +#if TEST_COND_intel96 static const struct test_f_i_data_u fpclassify_test_data_u[] = { TEST_f_i (fpclassify, pseudo_zero, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), @@ -52,7 +52,7 @@ static void fpclassify_test (void) { ALL_RM_TEST (fpclassify, 1, fpclassify_test_data, RUN_TEST_LOOP_f_i_tg, END); -#if HANDLE_PSEUDO_NUMBERS +#if TEST_COND_intel96 ALL_RM_TEST (fpclassify, 1, fpclassify_test_data_u, RUN_TEST_LOOP_f_i_tg_u, END); #endif } diff --git a/math/libm-test-isinf.inc b/math/libm-test-isinf.inc index 38f973ba38..7d4b27a45c 100644 --- a/math/libm-test-isinf.inc +++ b/math/libm-test-isinf.inc @@ -37,7 +37,7 @@ static const struct test_f_i_data isinf_test_data[] = TEST_f_b (isinf, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), }; -#if HANDLE_PSEUDO_NUMBERS +#if TEST_COND_intel96 static const struct test_f_i_data_u isinf_test_data_u[] = { TEST_f_b (isinf, pseudo_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), @@ -52,7 +52,7 @@ static void isinf_test (void) { ALL_RM_TEST (isinf, 1, isinf_test_data, RUN_TEST_LOOP_f_b_tg, END); -#if HANDLE_PSEUDO_NUMBERS +#if TEST_COND_intel96 ALL_RM_TEST (isinf, 1, isinf_test_data_u, RUN_TEST_LOOP_f_b_tg_u, END); #endif } diff --git a/math/libm-test-isnan.inc b/math/libm-test-isnan.inc index 948a3afdec..501bb1856f 100644 --- a/math/libm-test-isnan.inc +++ b/math/libm-test-isnan.inc @@ -37,7 +37,7 @@ static const struct test_f_i_data isnan_test_data[] = TEST_f_b (isnan, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), }; -#if HANDLE_PSEUDO_NUMBERS +#if TEST_COND_intel96 static const struct test_f_i_data_u isnan_test_data_u[] = { TEST_f_b (isnan, pseudo_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), @@ -52,7 +52,7 @@ static void isnan_test (void) { ALL_RM_TEST (isnan, 1, isnan_test_data, RUN_TEST_LOOP_f_b_tg, END); -#if HANDLE_PSEUDO_NUMBERS +#if TEST_COND_intel96 ALL_RM_TEST (isnan, 1, isnan_test_data_u, RUN_TEST_LOOP_f_b_tg_u, END); #endif } diff --git a/math/libm-test-issignaling.inc b/math/libm-test-issignaling.inc index cc7c801e29..bea61a3664 100644 --- a/math/libm-test-issignaling.inc +++ b/math/libm-test-issignaling.inc @@ -39,7 +39,7 @@ static const struct test_f_i_data issignaling_test_data[] = TEST_f_b (issignaling, -snan_value_MACRO, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), }; -#if HANDLE_PSEUDO_NUMBERS +#if TEST_COND_intel96 static const struct test_f_i_data_u issignaling_test_data_u[] = { TEST_f_b (issignaling, pseudo_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), @@ -54,7 +54,7 @@ static void issignaling_test (void) { ALL_RM_TEST (issignaling, 1, issignaling_test_data, RUN_TEST_LOOP_f_b_tg, END); -#if HANDLE_PSEUDO_NUMBERS +#if TEST_COND_intel96 ALL_RM_TEST (issignaling, 1, issignaling_test_data_u, RUN_TEST_LOOP_f_b_tg_u, END); #endif } diff --git a/sysdeps/ieee754/ldbl-96/nan-pseudo-number.h b/sysdeps/ieee754/ldbl-96/nan-pseudo-number.h index 771515a546..4df3b2e4de 100644 --- a/sysdeps/ieee754/ldbl-96/nan-pseudo-number.h +++ b/sysdeps/ieee754/ldbl-96/nan-pseudo-number.h @@ -19,9 +19,7 @@ #ifndef NAN_PSEUDO_NUMBER_H #define NAN_PSEUDO_NUMBER_H 1 -/* Set this macro and override the definition of IS_PSEUDO_SIGNALING if pseudo - numbers need special handling. */ -#define HANDLE_PSEUDO_NUMBERS 0 +/* Default is to assume that pseudo numbers are not signaling. */ static inline int is_pseudo_signaling (uint32_t exi, uint32_t hxi) { diff --git a/sysdeps/x86/fpu/nan-pseudo-number.h b/sysdeps/x86/fpu/nan-pseudo-number.h index e4e015b09f..84a05ea040 100644 --- a/sysdeps/x86/fpu/nan-pseudo-number.h +++ b/sysdeps/x86/fpu/nan-pseudo-number.h @@ -19,7 +19,6 @@ #ifndef NAN_PSEUDO_NUMBER_H #define NAN_PSEUDO_NUMBER_H 1 -#define HANDLE_PSEUDO_NUMBERS 1 /* Pseudo numbers on x86 are always signaling. */ static inline int is_pseudo_signaling (uint32_t exi, uint32_t hxi) From patchwork Mon Jan 4 14:24:43 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Siddhesh Poyarekar X-Patchwork-Id: 41627 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 0DB26383F85D; Mon, 4 Jan 2021 14:25:35 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0DB26383F85D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1609770335; bh=1t1bWkTwcETjgRvw48OYU0Cc8G9tNku6FKgYU9hqp5o=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=kxT2kmxsjhXbJh17YCLgvFxrbOAFnJF6hzoMg4igae2iIrK+tyjBjLTvCtnHlDg20 QVRY8As4P2YfZ6G99KQ/hbBsCdfMskQL7IK8wmTWhABqAApRwyW2D9QpMONakpByJc +bDM0yO2kj1uzmQ2pLMZ3FAICi0nB3cz36H4qiXY= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from fossa.ash.relay.mailchannels.net (fossa.ash.relay.mailchannels.net [23.83.222.62]) by sourceware.org (Postfix) with ESMTPS id CD958383F85D for ; Mon, 4 Jan 2021 14:25:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org CD958383F85D X-Sender-Id: dreamhost|x-authsender|siddhesh@gotplt.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 73A801223C0; Mon, 4 Jan 2021 14:25:27 +0000 (UTC) Received: from pdx1-sub0-mail-a68.g.dreamhost.com (100-96-87-21.trex.outbound.svc.cluster.local [100.96.87.21]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id BF9E4120DB1; Mon, 4 Jan 2021 14:25:26 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|siddhesh@gotplt.org Received: from pdx1-sub0-mail-a68.g.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.18.11); Mon, 04 Jan 2021 14:25:27 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|siddhesh@gotplt.org X-MailChannels-Auth-Id: dreamhost X-Shoe-Plucky: 66e89fc911751e21_1609770327040_2042170192 X-MC-Loop-Signature: 1609770327040:3453733565 X-MC-Ingress-Time: 1609770327040 Received: from pdx1-sub0-mail-a68.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a68.g.dreamhost.com (Postfix) with ESMTP id 75A337E494; Mon, 4 Jan 2021 06:25:26 -0800 (PST) Received: from rhbox.lan (unknown [103.199.172.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: siddhesh@gotplt.org) by pdx1-sub0-mail-a68.g.dreamhost.com (Postfix) with ESMTPSA id 2CBEF7E492; Mon, 4 Jan 2021 06:25:23 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a68 To: libc-alpha@sourceware.org Subject: [PATCH 2/2] Limit unnormal tests to supported long double formats Date: Mon, 4 Jan 2021 19:54:43 +0530 Message-Id: <20210104142443.3034204-3-siddhesh@sourceware.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210104142443.3034204-1-siddhesh@sourceware.org> References: <20210104142443.3034204-1-siddhesh@sourceware.org> MIME-Version: 1.0 X-Spam-Status: No, score=-1168.3 required=5.0 tests=BAYES_00, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_DMARC_NONE, KAM_DMARC_STATUS, RCVD_IN_ABUSEAT, RCVD_IN_BARRACUDACENTRAL, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NEUTRAL, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Siddhesh Poyarekar via Libc-alpha From: Siddhesh Poyarekar Reply-To: Siddhesh Poyarekar Cc: fweimer@redhat.com, joseph@codesourcery.com Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" Use the right argument code (j) in the unnormal tests and prevent compilation of the tests in anything other than long double and Float64x. Additionally, cast inputs from the ieee_long_double_shape_type struct to Float64x to properly test it. --- math/libm-test-driver.c | 16 +++++++++------- math/libm-test-fpclassify.inc | 18 +++++++++--------- math/libm-test-isinf.inc | 18 +++++++++--------- math/libm-test-isnan.inc | 18 +++++++++--------- math/libm-test-issignaling.inc | 18 +++++++++--------- math/libm-test-support.h | 2 ++ math/test-float64x.h | 1 + math/test-ldouble.h | 1 + 8 files changed, 49 insertions(+), 43 deletions(-) diff --git a/math/libm-test-driver.c b/math/libm-test-driver.c index f7c0861c39..6826ffac20 100644 --- a/math/libm-test-driver.c +++ b/math/libm-test-driver.c @@ -123,7 +123,7 @@ const char qtype_str[] = TYPE_STR; #define snan_value_ld __builtin_nansl ("") /* For pseudo-normal number tests. */ -#if TEST_COND_intel96 +#if TEST_COND_unnormal # include #define pseudo_inf { .parts = { 0x00000000, 0x00000000, 0x7fff }} #define pseudo_zero { .parts = { 0x00000000, 0x00000000, 0x0100 }} @@ -327,8 +327,8 @@ struct test_f_i_data } rd, rn, rz, ru; }; /* Used for RUN_TEST_LOOP_f_i_tg_u and RUN_TEST_LOOP_f_b_tg_u. */ -#if TEST_COND_intel96 -struct test_f_i_data_u +#if TEST_COND_unnormal +struct test_j_i_data_u { const char *arg_str; ieee_long_double_shape_type arg; @@ -855,17 +855,19 @@ struct test_Ff_b1_data (ARRAY)[i].RM_##ROUNDING_MODE.expected, \ (ARRAY)[i].RM_##ROUNDING_MODE.exceptions); \ ROUND_RESTORE_ ## ROUNDING_MODE -#define RUN_TEST_LOOP_f_b_tg_u(FUNC_NAME, ARRAY, ROUNDING_MODE) \ +#define RUN_TEST_LOOP_j_b_tg_u(FUNC_NAME, ARRAY, ROUNDING_MODE) \ IF_ROUND_INIT_ ## ROUNDING_MODE \ for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++) \ - RUN_TEST_f_b_tg ((ARRAY)[i].arg_str, FUNC_NAME, (ARRAY)[i].arg.value, \ + RUN_TEST_f_b_tg ((ARRAY)[i].arg_str, FUNC_NAME, \ + (FLOAT)(ARRAY)[i].arg.value, \ (ARRAY)[i].RM_##ROUNDING_MODE.expected, \ (ARRAY)[i].RM_##ROUNDING_MODE.exceptions); \ ROUND_RESTORE_ ## ROUNDING_MODE -#define RUN_TEST_LOOP_f_i_tg_u(FUNC_NAME, ARRAY, ROUNDING_MODE) \ +#define RUN_TEST_LOOP_j_i_tg_u(FUNC_NAME, ARRAY, ROUNDING_MODE) \ IF_ROUND_INIT_ ## ROUNDING_MODE \ for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++) \ - RUN_TEST_f_i_tg ((ARRAY)[i].arg_str, FUNC_NAME, (ARRAY)[i].arg.value, \ + RUN_TEST_f_i_tg ((ARRAY)[i].arg_str, FUNC_NAME, \ + (FLOAT)(ARRAY)[i].arg.value, \ (ARRAY)[i].RM_##ROUNDING_MODE.expected, \ (ARRAY)[i].RM_##ROUNDING_MODE.exceptions); \ ROUND_RESTORE_ ## ROUNDING_MODE diff --git a/math/libm-test-fpclassify.inc b/math/libm-test-fpclassify.inc index c1c7e1ead1..2243146f40 100644 --- a/math/libm-test-fpclassify.inc +++ b/math/libm-test-fpclassify.inc @@ -37,14 +37,14 @@ static const struct test_f_i_data fpclassify_test_data[] = TEST_f_i (fpclassify, -min_subnorm_value, FP_SUBNORMAL, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), }; -#if TEST_COND_intel96 -static const struct test_f_i_data_u fpclassify_test_data_u[] = +#if TEST_COND_unnormal +static const struct test_j_i_data_u fpclassify_test_data_u[] = { - TEST_f_i (fpclassify, pseudo_zero, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_f_i (fpclassify, pseudo_inf, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_f_i (fpclassify, pseudo_qnan, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_f_i (fpclassify, pseudo_snan, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_f_i (fpclassify, pseudo_unnormal, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_j_i (fpclassify, pseudo_zero, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_j_i (fpclassify, pseudo_inf, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_j_i (fpclassify, pseudo_qnan, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_j_i (fpclassify, pseudo_snan, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_j_i (fpclassify, pseudo_unnormal, FP_NAN, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), }; #endif @@ -52,8 +52,8 @@ static void fpclassify_test (void) { ALL_RM_TEST (fpclassify, 1, fpclassify_test_data, RUN_TEST_LOOP_f_i_tg, END); -#if TEST_COND_intel96 - ALL_RM_TEST (fpclassify, 1, fpclassify_test_data_u, RUN_TEST_LOOP_f_i_tg_u, END); +#if TEST_COND_unnormal + ALL_RM_TEST (fpclassify, 1, fpclassify_test_data_u, RUN_TEST_LOOP_j_i_tg_u, END); #endif } diff --git a/math/libm-test-isinf.inc b/math/libm-test-isinf.inc index 7d4b27a45c..23b536ff17 100644 --- a/math/libm-test-isinf.inc +++ b/math/libm-test-isinf.inc @@ -37,14 +37,14 @@ static const struct test_f_i_data isinf_test_data[] = TEST_f_b (isinf, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), }; -#if TEST_COND_intel96 -static const struct test_f_i_data_u isinf_test_data_u[] = +#if TEST_COND_unnormal +static const struct test_j_i_data_u isinf_test_data_u[] = { - TEST_f_b (isinf, pseudo_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_f_b (isinf, pseudo_inf, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_f_b (isinf, pseudo_qnan, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_f_b (isinf, pseudo_snan, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_f_b (isinf, pseudo_unnormal, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_j_b (isinf, pseudo_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_j_b (isinf, pseudo_inf, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_j_b (isinf, pseudo_qnan, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_j_b (isinf, pseudo_snan, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_j_b (isinf, pseudo_unnormal, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), }; #endif @@ -52,8 +52,8 @@ static void isinf_test (void) { ALL_RM_TEST (isinf, 1, isinf_test_data, RUN_TEST_LOOP_f_b_tg, END); -#if TEST_COND_intel96 - ALL_RM_TEST (isinf, 1, isinf_test_data_u, RUN_TEST_LOOP_f_b_tg_u, END); +#if TEST_COND_unnormal + ALL_RM_TEST (isinf, 1, isinf_test_data_u, RUN_TEST_LOOP_j_b_tg_u, END); #endif } diff --git a/math/libm-test-isnan.inc b/math/libm-test-isnan.inc index 501bb1856f..489b9c666e 100644 --- a/math/libm-test-isnan.inc +++ b/math/libm-test-isnan.inc @@ -37,14 +37,14 @@ static const struct test_f_i_data isnan_test_data[] = TEST_f_b (isnan, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), }; -#if TEST_COND_intel96 -static const struct test_f_i_data_u isnan_test_data_u[] = +#if TEST_COND_unnormal +static const struct test_j_i_data_u isnan_test_data_u[] = { - TEST_f_b (isnan, pseudo_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_f_b (isnan, pseudo_inf, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_f_b (isnan, pseudo_qnan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_f_b (isnan, pseudo_snan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_f_b (isnan, pseudo_unnormal, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_j_b (isnan, pseudo_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_j_b (isnan, pseudo_inf, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_j_b (isnan, pseudo_qnan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_j_b (isnan, pseudo_snan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_j_b (isnan, pseudo_unnormal, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), }; #endif @@ -52,8 +52,8 @@ static void isnan_test (void) { ALL_RM_TEST (isnan, 1, isnan_test_data, RUN_TEST_LOOP_f_b_tg, END); -#if TEST_COND_intel96 - ALL_RM_TEST (isnan, 1, isnan_test_data_u, RUN_TEST_LOOP_f_b_tg_u, END); +#if TEST_COND_unnormal + ALL_RM_TEST (isnan, 1, isnan_test_data_u, RUN_TEST_LOOP_j_b_tg_u, END); #endif } diff --git a/math/libm-test-issignaling.inc b/math/libm-test-issignaling.inc index bea61a3664..31012f08e6 100644 --- a/math/libm-test-issignaling.inc +++ b/math/libm-test-issignaling.inc @@ -39,14 +39,14 @@ static const struct test_f_i_data issignaling_test_data[] = TEST_f_b (issignaling, -snan_value_MACRO, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), }; -#if TEST_COND_intel96 -static const struct test_f_i_data_u issignaling_test_data_u[] = +#if TEST_COND_unnormal +static const struct test_j_i_data_u issignaling_test_data_u[] = { - TEST_f_b (issignaling, pseudo_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_f_b (issignaling, pseudo_inf, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_f_b (issignaling, pseudo_qnan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_f_b (issignaling, pseudo_snan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_f_b (issignaling, pseudo_unnormal, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_j_b (issignaling, pseudo_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_j_b (issignaling, pseudo_inf, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_j_b (issignaling, pseudo_qnan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_j_b (issignaling, pseudo_snan, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_j_b (issignaling, pseudo_unnormal, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), }; #endif @@ -54,8 +54,8 @@ static void issignaling_test (void) { ALL_RM_TEST (issignaling, 1, issignaling_test_data, RUN_TEST_LOOP_f_b_tg, END); -#if TEST_COND_intel96 - ALL_RM_TEST (issignaling, 1, issignaling_test_data_u, RUN_TEST_LOOP_f_b_tg_u, END); +#if TEST_COND_unnormal + ALL_RM_TEST (issignaling, 1, issignaling_test_data_u, RUN_TEST_LOOP_j_b_tg_u, END); #endif } diff --git a/math/libm-test-support.h b/math/libm-test-support.h index ba67001454..c218e2611a 100644 --- a/math/libm-test-support.h +++ b/math/libm-test-support.h @@ -168,6 +168,8 @@ extern const char doc[]; #define TEST_COND_before_rounding (!TININESS_AFTER_ROUNDING) #define TEST_COND_after_rounding TININESS_AFTER_ROUNDING +#define TEST_COND_unnormal (TEST_COND_intel96 && defined TEST_UNNORMAL) + int enable_test (int); void init_max_error (const char *, int, int); void print_max_error (const char *); diff --git a/math/test-float64x.h b/math/test-float64x.h index 578323b809..59bda920ac 100644 --- a/math/test-float64x.h +++ b/math/test-float64x.h @@ -40,3 +40,4 @@ #define FTOSTR strfromf64x #define snan_value_MACRO SNANF64X #define FUNC_NARROW_PREFIX f64x +#define TEST_UNNORMAL 1 diff --git a/math/test-ldouble.h b/math/test-ldouble.h index 6037782292..e0b7c94ca6 100644 --- a/math/test-ldouble.h +++ b/math/test-ldouble.h @@ -41,3 +41,4 @@ #define FTOSTR strfroml #define snan_value_MACRO SNANL #define TEST_FLOATN 0 +#define TEST_UNNORMAL 1