{"id":2175301,"url":"http://patchwork.ozlabs.org/api/1.0/patches/2175301/?format=json","project":{"id":41,"url":"http://patchwork.ozlabs.org/api/1.0/projects/41/?format=json","name":"GNU C Library","link_name":"glibc","list_id":"libc-alpha.sourceware.org","list_email":"libc-alpha@sourceware.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20251217175554.1157780-6-adhemerval.zanella@linaro.org>","date":"2025-12-17T17:51:51","name":"[5/8] math: Fix potential underflow on ldbl-128 erfl","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"dca749a4785b26ee87e1c12e6bb25c56a4c2a1bb","submitter":{"id":66065,"url":"http://patchwork.ozlabs.org/api/1.0/people/66065/?format=json","name":"Adhemerval Zanella Netto","email":"adhemerval.zanella@linaro.org"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/glibc/patch/20251217175554.1157780-6-adhemerval.zanella@linaro.org/mbox/","series":[{"id":485739,"url":"http://patchwork.ozlabs.org/api/1.0/series/485739/?format=json","date":"2025-12-17T17:51:48","name":"Improve test when building with clang","version":1,"mbox":"http://patchwork.ozlabs.org/series/485739/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2175301/checks/","tags":{},"headers":{"Return-Path":"<libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org>","X-Original-To":["incoming@patchwork.ozlabs.org","libc-alpha@sourceware.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","libc-alpha@sourceware.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=DDT6Y2oZ;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org\n (client-ip=38.145.34.32; helo=vm01.sourceware.org;\n envelope-from=libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org;\n receiver=patchwork.ozlabs.org)","sourceware.org;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=DDT6Y2oZ","sourceware.org;\n dmarc=pass (p=none dis=none) header.from=linaro.org","sourceware.org; spf=pass smtp.mailfrom=linaro.org","server2.sourceware.org;\n arc=none smtp.remote-ip=209.85.210.170"],"Received":["from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4dWhQL0qBCz1y0P\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 18 Dec 2025 04:59:38 +1100 (AEDT)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 2E10B4BA2E25\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 17 Dec 2025 17:59:36 +0000 (GMT)","from mail-pf1-f170.google.com (mail-pf1-f170.google.com\n [209.85.210.170])\n by sourceware.org (Postfix) with ESMTPS id C70894BA2E06\n for <libc-alpha@sourceware.org>; Wed, 17 Dec 2025 17:56:10 +0000 (GMT)","by mail-pf1-f170.google.com with SMTP id\n d2e1a72fcca58-7bab7c997eeso6792796b3a.0\n for <libc-alpha@sourceware.org>; Wed, 17 Dec 2025 09:56:10 -0800 (PST)","from ubuntu-vm.. ([179.99.163.49]) by smtp.gmail.com with ESMTPSA id\n a92af1059eb24-12061a888a8sm433214c88.9.2025.12.17.09.56.07\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 17 Dec 2025 09:56:08 -0800 (PST)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 2E10B4BA2E25","OpenDKIM Filter v2.11.0 sourceware.org C70894BA2E06"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org C70894BA2E06","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org C70894BA2E06","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1765994176; cv=none;\n b=tNCtALbcLfXVWBXj5jG40AHwgUUDv8S33dnZoGBryfnsjWW07SBAEb+XJTb8NavtoHzI87vbZrK2+lZC+9RpQIJs0y3U++l4HYTxJQy4ruz74KE1skolg5I+WScWjkUPElUli5eF4VeYkUp2LpLwKRTySx2U0cwAgVlgBku+etQ=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1765994176; c=relaxed/simple;\n bh=bp6cPw4RhMTh3J4A5CvxhjKLIUOl5+Op1WjiGvuFTvE=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=sl7EtLo+Hp821Gdr4expzKal/feuuRJ9ivO9eRJoaOv0IiaRiKaT0E53mBIjgs7jBnWkKlS98SBTmWPUtmX+C+o0NwC56xu07qUmJM/uzNifFfD5bC+daBWJEkllLiW4sQzqTqnAqAobyY7OHVhuoDtEH6iWAZQzOGtkQncDmLA=","ARC-Authentication-Results":"i=1; server2.sourceware.org","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1765994169; x=1766598969; darn=sourceware.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=G6s8bhaRgs3WVCIT/RizW90qBkjfG7L3YpW+KUm3ylg=;\n b=DDT6Y2oZrylTMb3IQS4/EGG79jQMPVWrgQKjEpyGvfcOJ3uraJD4LBvN8ddSDEYQF3\n nwlX0/mjbvvPurXBEe/+o3Gtqai6GZcCHZWfgaf1iaJe1faMVwvYuT19fPsuowfnPr4k\n Gg1BNN1s5t1o6PqjYpyAgfFFbE3pj5jMmlPtamCYvtzIXoC1uWuS41v0yKQi8MpWOlWL\n FmO4m/4HvNDkyPz7cgnRK6NG1zMCmJAsL9MTwqAQQq11hQ/WM3057WgjOuP3qglmRVoZ\n WQNYMwjndKXuusTZJzbD4Z9yrhHn88Nc2620k+W3EVcVO/b8O/7JMnoE64noVFyJnZwK\n iwEw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1765994169; x=1766598969;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=G6s8bhaRgs3WVCIT/RizW90qBkjfG7L3YpW+KUm3ylg=;\n b=fleyYPuIS6CHCzfwRHCOL9IkmKZSIjQQuI7Ea3t46YbYhGSDQuNfnzq2keOCeP3fRW\n wCrpgQ36ufTY+attTEj50CNIVdUuH2bagEZeo3RD99v219JIjyjW0/JUhHRFt8gFO2mf\n 9KyrS76oVTW2IAhjLA2coP+c3kqtk0CyogsLDd5nUIymXwzwgGC+93EEjOoVgW2EaHBX\n sxpXPStqHqeXKRCs1S6SHxL14W42VKD/euh4HQbjE+10TZOZ7JaAwMupYREKkbWMKjzO\n gRJCUq8T0pDXIyplUGQzZnWZOJuCGjVwS0GX3wBaweNx4as+ICXacuAUiXykPLmni0u+\n 32JA==","X-Gm-Message-State":"AOJu0YzYjJRX3VktKzvTVoypU7c4aUzx7NfOEgQpdgU/wcMP77562hcC\n XMDnWfgCwHXrXOBGajoYwPmuH0cP6bDY5oBoWLfK6fcgsCS+ohG/yfmXno/ZhQKP8ZQHbcL7Toh\n 3iCNE","X-Gm-Gg":"AY/fxX7Ufkn4CQssdDtYJRg+4uu/qCB3YClMtiy40E1nchq5bqDxgW0SVgtw7iVyjj9\n H3MENTMnNAB5T4ZYmkJKBylLg4clVAQ5awRw72MP6cJ0KXPVvSlfr5K4IvHLemou7M+o/WptkxQ\n ThjGNzt++kAQslOuL8mY8JwyGkiohrlLwMKOVdkGgO7jTuWx1WI7T9Uoz03H2Z4gbCn4jCUOXDv\n T7dTU7CIMGOjkiz8kQWvwi/9CejTB5COuFS8ovSJ1pVJBll8xww/2MO/fkYrmRPTUmb8cipC+Ar\n N/PkdJkYsSOh/KFNGITL7M1hjDa2jdSUB2Bssqtg/7t4Mn/c5OXWxcJkajU2bhLj8EkmuBHDcUD\n Vq7U+gBYvNzc3on251uo3gt7sdOdHiwPWXnmVzmCEGj2Q8tK9gb3awUOA4wx/uxXv7Zf7DP3ZOl\n 4PV592i0XPOPWMkIjJpG/NXxA=","X-Google-Smtp-Source":"\n AGHT+IG/eDdJ/SXaIDpwXV0zSaZBotyXK+rlFIng7gPD8hpMN+EMETm0aA72vSG6emQZ2+wwdDUCgw==","X-Received":"by 2002:a05:7022:248a:b0:11b:ceee:b760 with SMTP id\n a92af1059eb24-11f34c032b1mr15811273c88.23.1765994169230;\n Wed, 17 Dec 2025 09:56:09 -0800 (PST)","From":"Adhemerval Zanella <adhemerval.zanella@linaro.org>","To":"libc-alpha@sourceware.org","Cc":"\"H . J . Lu\" <hjl.tools@gmail.com>, Collin Funk <collin.funk1@gmail.com>,\n Sam James <sam@gentoo.org>","Subject":"[PATCH 5/8] math: Fix potential underflow on ldbl-128 erfl","Date":"Wed, 17 Dec 2025 14:51:51 -0300","Message-ID":"<20251217175554.1157780-6-adhemerval.zanella@linaro.org>","X-Mailer":"git-send-email 2.43.0","In-Reply-To":"<20251217175554.1157780-1-adhemerval.zanella@linaro.org>","References":"<20251217175554.1157780-1-adhemerval.zanella@linaro.org>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-BeenThere":"libc-alpha@sourceware.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Libc-alpha mailing list <libc-alpha.sourceware.org>","List-Unsubscribe":"<https://sourceware.org/mailman/options/libc-alpha>,\n <mailto:libc-alpha-request@sourceware.org?subject=unsubscribe>","List-Archive":"<https://sourceware.org/pipermail/libc-alpha/>","List-Post":"<mailto:libc-alpha@sourceware.org>","List-Help":"<mailto:libc-alpha-request@sourceware.org?subject=help>","List-Subscribe":"<https://sourceware.org/mailman/listinfo/libc-alpha>,\n <mailto:libc-alpha-request@sourceware.org?subject=subscribe>","Errors-To":"libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org"},"content":"The multiplication operation is required only if the branch is taken,\nand the compiler might not optimize it away.\n\nIt fixes the following issues when the testcase is built with clang:\n\nFAIL: math/test-ldouble-erf\nFailure: erf (-0x4p-16384): Exception \"Underflow\" set\nFailure: erf (0x1p-10000): Exception \"Underflow\" set\nFailure: erf (0x3.8b7f12369ded54f38760a41abb84p-16384): Exception \"Underflow\" set\nFailure: erf (0x3.8b7f12369ded54f38760a41abb88p-16384): Exception \"Underflow\" set\nFailure: erf (0x3.8b7f12369ded54f4p-16384): Exception \"Underflow\" set\nFailure: erf (0x3.8b7f12369ded54f8p-16384): Exception \"Underflow\" set\nFailure: erf (0x3.8b7f12369ded5518p-16384): Exception \"Underflow\" set\nFailure: erf (0x3.8b7f12369ded551cp-16384): Exception \"Underflow\" set\nFailure: erf (0x3.8b7f12369ded552p-16384): Exception \"Underflow\" set\nFailure: erf (0x4p-16384): Exception \"Underflow\" set\nFailure: erf_downward (-0x4p-16384): Exception \"Underflow\" set\nFailure: erf_downward (0x1p-10000): Exception \"Underflow\" set\nFailure: erf_downward (0x3.8b7f12369ded54f38760a41abb84p-16384): Exception \"Underflow\" set\nFailure: erf_downward (0x3.8b7f12369ded54f38760a41abb88p-16384): Exception \"Underflow\" set\nFailure: erf_downward (0x3.8b7f12369ded54f4p-16384): Exception \"Underflow\" set\nFailure: erf_downward (0x3.8b7f12369ded54f8p-16384): Exception \"Underflow\" set\nFailure: erf_downward (0x3.8b7f12369ded5518p-16384): Exception \"Underflow\" set\nFailure: erf_downward (0x3.8b7f12369ded551cp-16384): Exception \"Underflow\" set\nFailure: erf_downward (0x3.8b7f12369ded552p-16384): Exception \"Underflow\" set\nFailure: erf_downward (0x4p-16384): Exception \"Underflow\" set\nFailure: erf_towardzero (-0x4p-16384): Exception \"Underflow\" set\nFailure: erf_towardzero (0x1p-10000): Exception \"Underflow\" set\nFailure: erf_towardzero (0x3.8b7f12369ded54f38760a41abb84p-16384): Exception \"Underflow\" set\nFailure: erf_towardzero (0x3.8b7f12369ded54f38760a41abb88p-16384): Exception \"Underflow\" set\nFailure: erf_towardzero (0x3.8b7f12369ded54f4p-16384): Exception \"Underflow\" set\nFailure: erf_towardzero (0x3.8b7f12369ded54f8p-16384): Exception \"Underflow\" set\nFailure: erf_towardzero (0x3.8b7f12369ded5518p-16384): Exception \"Underflow\" set\nFailure: erf_towardzero (0x3.8b7f12369ded551cp-16384): Exception \"Underflow\" set\nFailure: erf_towardzero (0x3.8b7f12369ded552p-16384): Exception \"Underflow\" set\nFailure: erf_towardzero (0x4p-16384): Exception \"Underflow\" set\nFailure: erf_upward (-0x4p-16384): Exception \"Underflow\" set\nFailure: erf_upward (0x1p-10000): Exception \"Underflow\" set\nFailure: erf_upward (0x3.8b7f12369ded54f38760a41abb84p-16384): Exception \"Underflow\" set\nFailure: erf_upward (0x3.8b7f12369ded54f38760a41abb88p-16384): Exception \"Underflow\" set\nFailure: erf_upward (0x3.8b7f12369ded54f4p-16384): Exception \"Underflow\" set\nFailure: erf_upward (0x3.8b7f12369ded54f8p-16384): Exception \"Underflow\" set\nFailure: erf_upward (0x3.8b7f12369ded5518p-16384): Exception \"Underflow\" set\nFailure: erf_upward (0x3.8b7f12369ded551cp-16384): Exception \"Underflow\" set\nFailure: erf_upward (0x3.8b7f12369ded552p-16384): Exception \"Underflow\" set\nFailure: erf_upward (0x4p-16384): Exception \"Underflow\" set\n\nChecked on x86_64-linux-gnu and aarch64-linux-gnu with gcc-15 and\nclang-18.\n---\n sysdeps/ieee754/ldbl-128/s_erfl.c | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)","diff":"diff --git a/sysdeps/ieee754/ldbl-128/s_erfl.c b/sysdeps/ieee754/ldbl-128/s_erfl.c\nindex 1cbedc249d..e52d88bde3 100644\n--- a/sysdeps/ieee754/ldbl-128/s_erfl.c\n+++ b/sysdeps/ieee754/ldbl-128/s_erfl.c\n@@ -778,7 +778,6 @@ __erfl (_Float128 x)\n     }\n   u.parts32.w0 = ix;\n   a = u.value;\n-  z = x * x;\n   if (ix < 0x3ffec000)  /* a < 0.875 */\n     {\n       if (ix < 0x3fc60000) /* |x|<2**-57 */\n@@ -792,6 +791,7 @@ __erfl (_Float128 x)\n \t    }\n \t  return x + efx * x;\n \t}\n+      z = x * x;\n       y = a + a * neval (z, TN1, NTN1) / deval (z, TD1, NTD1);\n     }\n   else\n","prefixes":["5/8"]}