From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501662; cv=none; d=zohomail.com; s=zohoarc; b=L2sX9nKZ9Zs2nmrJZOfhCEjOrTDz6EkbTRYSxbhdpk5K/zXZVrmgVJ1IvBJR1jv3BWGqxNdrqaIVrGd4FSr7ZBKMZ3qFQ8Y0nx7Iq8Mstha/hImZd1NutcG30jpvcKbaD/Ap5SJajX3GFfTfWz1ZIWdBVKYJ8hWAN18slV1G4AI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501662; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=A5lDpgAOXBUzFANq2kmivMojdKGuG0rbZpEhWheoTfY=; b=CreXUdWD5Anr2yfBDV2qcAAcZMe6ki+jbASZuQDIedxtdnoplBd5rDTdR3AyFaTIqlFtsX0usnSICa6FRyyJadkM0ldlbIKsOaLwK9AbAOIVOy9awzaavR8Z/m/fk9HWx78mCtTsPRgkQL3TdT4UsvGs2jcSQW/Vyc1YB5fTgVw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501662491164.5623235812336; Wed, 29 Apr 2026 15:27:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDL1-0008MV-Gy; Wed, 29 Apr 2026 18:24:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDKz-0008MG-Kv for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:24:57 -0400 Received: from mail-pj1-x1034.google.com ([2607:f8b0:4864:20::1034]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDKx-0004Ua-M9 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:24:57 -0400 Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-35da2d35eccso152386a91.0 for ; Wed, 29 Apr 2026 15:24:55 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.24.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:24:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501494; x=1778106294; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=A5lDpgAOXBUzFANq2kmivMojdKGuG0rbZpEhWheoTfY=; b=ftfiIri22rZAoq5GgQhlfqltI1hL9rnASoB+1QPaIg59CCVJqeGb8w7BmGie9SLz4v BWSRDm6S70xQUobwFN4Wdq+9qKlMTjK+BE58R1Q2/9AMXNkApdXqhKusHF/zZYYhQkR5 9AKNZX0BZzbavVzdPXhwJF6apUQ82fLAokAHw5tAKa72DjK8y+Q61iSZsizlbQzVd2ZB 3HaFmHcmCZPQf5i5eCrrKGCNt2sE0cxV/hRKDTVe16hk/1TtMdkbmFrb9y8jRXZPhi0V 5WVpvhaNxk6A2FZaNRo1hf2XOiWpgOlbQhBQLjZNaaIEYF2svYmUy5m1e9RLuuexbF+F hP2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501494; x=1778106294; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=A5lDpgAOXBUzFANq2kmivMojdKGuG0rbZpEhWheoTfY=; b=MIIKgSyH6eROaqdmoxa/8Sml++/bJgAR5FrrIt6tadij4CyEuLfF/tYnaWe/6G7f40 jokGePeouawZPyr/rho8RVvPF+/cNDo00LER5BMPFf2L9WcAge8C3V2H8T6AwljDbrIN 7Qd6RuRt8/TldXKV6AH1pKlhzCpsARmHgqR0idv1qK7qaVS1NFWUrW6gTVb1RxOEHMIW fgUqBQiGKakXfzG9zV7PYHXxUPnKSWCY5gwM1+LsAEQu81q4EXzrD8HmhXUe1vGi/PTO JJTW7KGLFUqrnZzwX+vz0p+gsvgepeTqEMyFsur3mKWBdBYtppP1aUYe3ittIF+wOiJB 5OQw== X-Gm-Message-State: AOJu0YyfBh0yk8dfT+rgjArcVnjKlOUl35GK4QjJR80IPQAMy8J9+7HK YyuJfa/dX10fR5SAfztI70YB8OKbQHNHNmrleMYtptE8i5rLYIoUU8I2UMPBJl2FJcApkFPEY4G C/J1ygZk= X-Gm-Gg: AeBDietUd16F0wAG5SCpJ1k5Klz5m/K4ulnt+BB+X/UurLG+lwn6rII/WVMXDHsSEup BOrh85akgTjUbOTaRPemgAw5U62pPJ8hZW3MxCFA6Z0dT+tYQ8tM81HmBXqUHxAIDt8MfaOGdsq m0FKLAJi6EtOrldVauMa2WfFaUYlnYC/UTEIgO2xGDAp6WCELWWuytwkSOMmuyVuc9GAN+cOuqW awQ1Du9gjoPXCliwsJJnejsq3rNSnBuRIYh3udcebMzL7va8jcYgcM5jNl0xTzpkQ6OENvMHbxW tl2kGns8wW6iKNfovxMuxVNR8MAcPnBUvo1lIsUoKOU+70SQJN2lXmfy9kukPevpTfvtt4YmEPy DDVcD0LCTCAZlvcJXfrUN1eMQ5OziQy3pu6xRx0ktv3IDSI14qIHWaHO1t94zIvjbgMH08M2JVk 61CXuTGT6ltPIP+B2SVdtxRClvV6Xw04XhEpSaLvP2 X-Received: by 2002:a17:90b:56ce:b0:364:a497:dc45 with SMTP id 98e67ed59e1d1-364c2daaccemr211358a91.0.1777501494017; Wed, 29 Apr 2026 15:24:54 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 01/48] fpu: Drop parts_canonicalize Date: Thu, 30 Apr 2026 08:23:58 +1000 Message-ID: <20260429222445.26301-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1034; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1034.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501663774158500 Use the specific parts{64,12}_canonicalize at each site. Drop the forward declarations. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 91c34307c8..f9997f5236 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -806,14 +806,6 @@ static FloatParts128 *parts128_pick_nan_muladd(FloatPa= rts128 *a, #define parts_pick_nan_muladd(A, B, C, S, ABM, ABCM) \ PARTS_GENERIC_64_128(pick_nan_muladd, A)(A, B, C, S, ABM, ABCM) =20 -static void parts64_canonicalize(FloatParts64 *p, float_status *status, - const FloatFmt *fmt); -static void parts128_canonicalize(FloatParts128 *p, float_status *status, - const FloatFmt *fmt); - -#define parts_canonicalize(A, S, F) \ - PARTS_GENERIC_64_128(canonicalize, A)(A, S, F) - static void parts64_uncanon_normal(FloatParts64 *p, float_status *status, const FloatFmt *fmt, bool saturate); static void parts128_uncanon_normal(FloatParts128 *p, float_status *status, @@ -1723,28 +1715,28 @@ static void float4_e2m1_unpack_canonical(FloatParts= 64 *p, float4_e2m1 f, float_status *s) { float4_e2m1_unpack_raw(p, f); - parts_canonicalize(p, s, &float4_e2m1_params); + parts64_canonicalize(p, s, &float4_e2m1_params); } =20 static void float8_e4m3_unpack_canonical(FloatParts64 *p, float8_e4m3 f, float_status *s) { float8_e4m3_unpack_raw(p, f); - parts_canonicalize(p, s, &float8_e4m3_params); + parts64_canonicalize(p, s, &float8_e4m3_params); } =20 static void float8_e5m2_unpack_canonical(FloatParts64 *p, float8_e5m2 f, float_status *s) { float8_e5m2_unpack_raw(p, f); - parts_canonicalize(p, s, &float8_e5m2_params); + parts64_canonicalize(p, s, &float8_e5m2_params); } =20 static void float16a_unpack_canonical(FloatParts64 *p, float16 f, float_status *s, const FloatFmt *par= ams) { float16_unpack_raw(p, f); - parts_canonicalize(p, s, params); + parts64_canonicalize(p, s, params); } =20 static void float16_unpack_canonical(FloatParts64 *p, float16 f, @@ -1757,7 +1749,7 @@ static void bfloat16_unpack_canonical(FloatParts64 *p= , bfloat16 f, float_status *s) { bfloat16_unpack_raw(p, f); - parts_canonicalize(p, s, &bfloat16_params); + parts64_canonicalize(p, s, &bfloat16_params); } =20 static float8_e4m3 float8_e4m3_round_pack_canonical(FloatParts64 *p, @@ -1801,7 +1793,7 @@ static void float32_unpack_canonical(FloatParts64 *p,= float32 f, float_status *s) { float32_unpack_raw(p, f); - parts_canonicalize(p, s, &float32_params); + parts64_canonicalize(p, s, &float32_params); } =20 static float32 float32_round_pack_canonical(FloatParts64 *p, @@ -1815,7 +1807,7 @@ static void float64_unpack_canonical(FloatParts64 *p,= float64 f, float_status *s) { float64_unpack_raw(p, f); - parts_canonicalize(p, s, &float64_params); + parts64_canonicalize(p, s, &float64_params); } =20 static float64 float64_round_pack_canonical(FloatParts64 *p, @@ -1878,7 +1870,7 @@ static void float128_unpack_canonical(FloatParts128 *= p, float128 f, float_status *s) { float128_unpack_raw(p, f); - parts_canonicalize(p, s, &float128_params); + parts128_canonicalize(p, s, &float128_params); } =20 static float128 float128_round_pack_canonical(FloatParts128 *p, @@ -1910,7 +1902,7 @@ static bool floatx80_unpack_canonical(FloatParts128 *= p, floatx80 f, floatx80_unpack_raw(p, f); =20 if (likely(p->exp !=3D floatx80_params[floatx80_precision_x].exp_max))= { - parts_canonicalize(p, s, &floatx80_params[floatx80_precision_x]); + parts128_canonicalize(p, s, &floatx80_params[floatx80_precision_x]= ); } else { /* The explicit integer bit is ignored, after invalid checks. */ p->frac_hi &=3D MAKE_64BIT_MASK(0, 63); @@ -5611,7 +5603,7 @@ static void parts_s390_divide_to_integer(FloatParts64= *a, FloatParts64 *b, parts_uncanon(r, status, fmt, false); r_flags =3D status->float_exception_flags; r->frac &=3D (1ULL << fmt->frac_size) - 1; - parts_canonicalize(r, status, fmt); + parts64_canonicalize(r, status, fmt); =20 /* POp table "Results: DIVIDE TO INTEGER (Part 2 of 2)" */ if (is_q_smallish) { --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501567; cv=none; d=zohomail.com; s=zohoarc; b=Wu3dnLYUNaBAOwpZdpvu3OUedYxIL03iXSMeWv/2gtfHjAFdFQMeSEUDWy2vGxSpqCcbjd85s0Hr4pWgDcah1Qsf/4XIV4B/V5p4Q94OEdh4yr7HHozTO/vGWBReFiuCRSuPXtFlO8NDaU4Xe/e1O7OL8r7XvtEzN+Dw9C0afrg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501567; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=OWTirkzwzjfMjCJY4v6LGxNAeG2bsrVrjNCZwRmk+Ns=; b=Vvbl7s9Y63zPei4KIuVPJFhY5vpME0dsRUqkvaOqBYfPXqC/Pd5W50dimk/CMYjQZttk4X2I2avIdd7eDOJbgHhxyMvia9/whN4OJubGOp1ssoA16Ar+JTwibr/bWrvJVkTCdJW89OPoTM0qVvKebDsHv6WPbZyhFvVwDc7CT0w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501567210314.50328584026204; Wed, 29 Apr 2026 15:26:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDL4-0008NF-EP; Wed, 29 Apr 2026 18:25:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDL2-0008Mk-5W for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:00 -0400 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDL0-0004V9-20 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:24:59 -0400 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-356337f058aso124201a91.2 for ; Wed, 29 Apr 2026 15:24:57 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.24.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:24:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501497; x=1778106297; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=OWTirkzwzjfMjCJY4v6LGxNAeG2bsrVrjNCZwRmk+Ns=; b=Gnu5x5KhVSVMjcCAtNOeHf/SKTIJ5FXDbSs3S/GZnEreMeZroKXAFtc1uGglngzRV0 ooInzfNKhgG6zwli5IR1dv3kXfF0fJS+cfwQoh/7XNGMf/G9qGDE306CYlWfmO9Nb5kU DTUweuoJopxsPoxT2QvqBrYOsYbDiLeybKASaWzVy8Kq5EO+uUCuJwDUskLHZvgwBLTe IftMcbm3ISyB/4smwjnKqJOg3kr4ekgLAXBMiH9EyqZguKb7S4Fj8Y6+TdUp75IMElGM 2sAX9MrMMNObCKz9czA11cmeHC1nZjZ2x1oCGPjaFtsTxdbyWoLXtk+ymeMWiaCyFHev DWUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501497; x=1778106297; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=OWTirkzwzjfMjCJY4v6LGxNAeG2bsrVrjNCZwRmk+Ns=; b=Jz3CMeac5niqc64GeQmGuj5PzT9+nIll8329h8M/qY41aqHKlKzBMBrkHxPWexpEqi Ysz3hzDhhifmldxvLSvV6VbSH7mg7NX292cllml22b1anbSqXprPz4vbAMLxzM0UMpFd IDlzdO4qG39xyIrGOpI8IAhCrazJLa9VRnQRpvIrhAMMdwM/UJtjvQLkaf5SchzjiZ/U BUREbFdExU4AEH1oTjj7dvwOhs4qAJUAtGaSUnTll14Rga95ewvgSeFhisHor+9nynjQ FPiNi7f2AvaT7us4+K8TMeEYz3RGXWVVBL0NEnTVsmihZCAJ2OjtUOUTR9Fk1SEkGjwA l7gQ== X-Gm-Message-State: AOJu0YwZR7xHK1zFtyE5yH9xp2uMI165LM+6a1SuvU0WuXhbUO0eY+tc qyoJm/wPPzpwqsgPNu9bolQfAKRX1SRIiD9q8VN1hq2+KQLsn7f1aRzU9dxdEI7K0RcuxvzdoR3 xEMR4ilw= X-Gm-Gg: AeBDievOF5pNanIPAk7cVywVqXmHCZUJwimomS92NH8KOLlOJLxzUNy8UeMhBI/c9Ja Cu4zrjq5/U9xYwr7Ec9ERMXW4qyckd8ccDY5HkJnkKh3T+ygHsm7E2WdBcuJqDZg6ZaAaAx3Hwe asMw/RNbRtnhv9Y3MbkpSvc1U+b4m5EXNQAa4cif0OrvQD0+Sfzcm625/mmOMrrSBe7YRcCzrNN /aE6NyX3EkepAgYbn1WO9CF/+wWpPXREixBdUjbvWdeh+myYmnIUGAKICqKZwKKg15fkVYq+0ZU ydfoGHVLwcdWpLp5g5i1/SWykHmtzxotaI2OvO1ntf7ORWPhWj89nZzfqNg9C6jmhIim30shkgp aM9yPqHMFNNzz0xzGek+1fhFznQkrluo41AZaemtmTMa8Wfdbh42+dKzLbV4ct96PpLyh5sgJI/ /Knif2xYFjTkgSqIaXqiR1kc+JWC8V6Xmltf4R0i0l X-Received: by 2002:a17:90a:fc4f:b0:364:aa5d:7d64 with SMTP id 98e67ed59e1d1-364c308db3amr151227a91.14.1777501496562; Wed, 29 Apr 2026 15:24:56 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 02/48] fpu: Drop parts_uncanon Date: Thu, 30 Apr 2026 08:23:59 +1000 Message-ID: <20260429222445.26301-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501567502158500 Use parts{64,128}_uncanon at each call site. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 44 ++++++++++++++++++-------------------------- 1 file changed, 18 insertions(+), 26 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index f9997f5236..7c13a7848e 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -814,14 +814,6 @@ static void parts128_uncanon_normal(FloatParts128 *p, = float_status *status, #define parts_uncanon_normal(A, S, F, X) \ PARTS_GENERIC_64_128(uncanon_normal, A)(A, S, F, X) =20 -static void parts64_uncanon(FloatParts64 *p, float_status *status, - const FloatFmt *fmt, bool saturate); -static void parts128_uncanon(FloatParts128 *p, float_status *status, - const FloatFmt *fmt, bool saturate); - -#define parts_uncanon(A, S, F, X) \ - PARTS_GENERIC_64_128(uncanon, A)(A, S, F, X) - static void parts64_add_normal(FloatParts64 *a, FloatParts64 *b); static void parts128_add_normal(FloatParts128 *a, FloatParts128 *b); static void parts256_add_normal(FloatParts256 *a, FloatParts256 *b); @@ -1756,7 +1748,7 @@ static float8_e4m3 float8_e4m3_round_pack_canonical(F= loatParts64 *p, float_status *s, bool saturate) { - parts_uncanon(p, s, &float8_e4m3_params, saturate); + parts64_uncanon(p, s, &float8_e4m3_params, saturate); return float8_e4m3_pack_raw(p); } =20 @@ -1764,7 +1756,7 @@ static float8_e5m2 float8_e5m2_round_pack_canonical(F= loatParts64 *p, float_status *s, bool saturate) { - parts_uncanon(p, s, &float8_e5m2_params, saturate); + parts64_uncanon(p, s, &float8_e5m2_params, saturate); return float8_e5m2_pack_raw(p); } =20 @@ -1772,7 +1764,7 @@ static float16 float16a_round_pack_canonical(FloatPar= ts64 *p, float_status *s, const FloatFmt *params) { - parts_uncanon(p, s, params, false); + parts64_uncanon(p, s, params, false); return float16_pack_raw(p); } =20 @@ -1785,7 +1777,7 @@ static float16 float16_round_pack_canonical(FloatPart= s64 *p, static bfloat16 bfloat16_round_pack_canonical(FloatParts64 *p, float_status *s) { - parts_uncanon(p, s, &bfloat16_params, false); + parts64_uncanon(p, s, &bfloat16_params, false); return bfloat16_pack_raw(p); } =20 @@ -1799,7 +1791,7 @@ static void float32_unpack_canonical(FloatParts64 *p,= float32 f, static float32 float32_round_pack_canonical(FloatParts64 *p, float_status *s) { - parts_uncanon(p, s, &float32_params, false); + parts64_uncanon(p, s, &float32_params, false); return float32_pack_raw(p); } =20 @@ -1813,14 +1805,14 @@ static void float64_unpack_canonical(FloatParts64 *= p, float64 f, static float64 float64_round_pack_canonical(FloatParts64 *p, float_status *s) { - parts_uncanon(p, s, &float64_params, false); + parts64_uncanon(p, s, &float64_params, false); return float64_pack_raw(p); } =20 static float64 float64r32_pack_raw(FloatParts64 *p) { /* - * In parts_uncanon, we placed the fraction for float32 at the lsb. + * In parts64_uncanon, we placed the fraction for float32 at the lsb. * We need to adjust the fraction higher so that the least N bits are * zero, and the fraction is adjacent to the float64 implicit bit. */ @@ -1862,7 +1854,7 @@ static float64 float64r32_pack_raw(FloatParts64 *p) static float64 float64r32_round_pack_canonical(FloatParts64 *p, float_status *s) { - parts_uncanon(p, s, &float32_params, false); + parts64_uncanon(p, s, &float32_params, false); return float64r32_pack_raw(p); } =20 @@ -1876,7 +1868,7 @@ static void float128_unpack_canonical(FloatParts128 *= p, float128 f, static float128 float128_round_pack_canonical(FloatParts128 *p, float_status *s) { - parts_uncanon(p, s, &float128_params, false); + parts128_uncanon(p, s, &float128_params, false); return float128_pack_raw(p); } =20 @@ -1924,7 +1916,7 @@ static floatx80 floatx80_round_pack_canonical(FloatPa= rts128 *p, case float_class_normal: case float_class_denormal: if (s->floatx80_rounding_precision =3D=3D floatx80_precision_x) { - parts_uncanon_normal(p, s, fmt, false); + parts128_uncanon_normal(p, s, fmt, false); frac =3D p->frac_hi; exp =3D p->exp; } else { @@ -1933,7 +1925,7 @@ static floatx80 floatx80_round_pack_canonical(FloatPa= rts128 *p, p64.sign =3D p->sign; p64.exp =3D p->exp; frac_truncjam(&p64, p); - parts_uncanon_normal(&p64, s, fmt, false); + parts64_uncanon_normal(&p64, s, fmt, false); frac =3D p64.frac; exp =3D p64.exp; } @@ -2331,7 +2323,7 @@ float16_muladd_scalbn(float16 a, float16 b, float16 c, pr =3D parts_muladd_scalbn(&pa, &pb, &pc, scale, flags, status); =20 /* Round before applying negate result. */ - parts_uncanon(pr, status, &float16_params, false); + parts64_uncanon(pr, status, &float16_params, false); if ((flags & float_muladd_negate_result) && !is_nan(pr->cls)) { pr->sign ^=3D 1; } @@ -2356,7 +2348,7 @@ float32_muladd_scalbn(float32 a, float32 b, float32 c, pr =3D parts_muladd_scalbn(&pa, &pb, &pc, scale, flags, status); =20 /* Round before applying negate result. */ - parts_uncanon(pr, status, &float32_params, false); + parts64_uncanon(pr, status, &float32_params, false); if ((flags & float_muladd_negate_result) && !is_nan(pr->cls)) { pr->sign ^=3D 1; } @@ -2375,7 +2367,7 @@ float64_muladd_scalbn(float64 a, float64 b, float64 c, pr =3D parts_muladd_scalbn(&pa, &pb, &pc, scale, flags, status); =20 /* Round before applying negate result. */ - parts_uncanon(pr, status, &float64_params, false); + parts64_uncanon(pr, status, &float64_params, false); if ((flags & float_muladd_negate_result) && !is_nan(pr->cls)) { pr->sign ^=3D 1; } @@ -2534,7 +2526,7 @@ float64 float64r32_muladd(float64 a, float64 b, float= 64 c, pr =3D parts_muladd_scalbn(&pa, &pb, &pc, 0, flags, status); =20 /* Round before applying negate result. */ - parts_uncanon(pr, status, &float32_params, false); + parts64_uncanon(pr, status, &float32_params, false); if ((flags & float_muladd_negate_result) && !is_nan(pr->cls)) { pr->sign ^=3D 1; } @@ -2552,7 +2544,7 @@ bfloat16 QEMU_FLATTEN bfloat16_muladd(bfloat16 a, bfl= oat16 b, bfloat16 c, pr =3D parts_muladd_scalbn(&pa, &pb, &pc, 0, flags, status); =20 /* Round before applying negate result. */ - parts_uncanon(pr, status, &bfloat16_params, false); + parts64_uncanon(pr, status, &bfloat16_params, false); if ((flags & float_muladd_negate_result) && !is_nan(pr->cls)) { pr->sign ^=3D 1; } @@ -2570,7 +2562,7 @@ float128 QEMU_FLATTEN float128_muladd(float128 a, flo= at128 b, float128 c, pr =3D parts_muladd_scalbn(&pa, &pb, &pc, 0, flags, status); =20 /* Round before applying negate result. */ - parts_uncanon(pr, status, &float128_params, false); + parts128_uncanon(pr, status, &float128_params, false); if ((flags & float_muladd_negate_result) && !is_nan(pr->cls)) { pr->sign ^=3D 1; } @@ -5600,7 +5592,7 @@ static void parts_s390_divide_to_integer(FloatParts64= *a, FloatParts64 *b, /* Round remainder to the target format */ *r =3D *r_precise; status->float_exception_flags =3D 0; - parts_uncanon(r, status, fmt, false); + parts64_uncanon(r, status, fmt, false); r_flags =3D status->float_exception_flags; r->frac &=3D (1ULL << fmt->frac_size) - 1; parts64_canonicalize(r, status, fmt); --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501714; cv=none; d=zohomail.com; s=zohoarc; b=iX1IC/sKmuxS+eF2/TJ3o0wHMP78BhhpmAK1g8Ue3ucWbpxGXd38b29HvjG/A0iPx6FTsp7qpwkpcbCBDVgHSRd5ssp1xnkX6eBZf/R+4tI7PgmIjStGrmNb/VWw6ykEIXlKF+y3828dHsiG8Yris1maDVVZJ7Y2tg9FjYJh+0M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501714; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=3JD52jOp5bj6jLEZLLXiumubTs9BogKD12LDRdezT9k=; b=QGsIeB2qrtn2pbxsLCDDhvpD4jeAlmjB4nNSkr1cKXpGLLoGOPpr5KpG665i0d/ixteFk4aJOwd7Ed1hrPMGG9wqiJEFrzzY5SUYVXz9mOOk+WZ9ppLUrWCO8XG/b6XbvHEFGBuFRrUcsHD0dmYlxBgfW7DS8GMRSEo83/sBnAI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501714549412.29903360859055; Wed, 29 Apr 2026 15:28:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDL6-0008Na-4P; Wed, 29 Apr 2026 18:25:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDL4-0008NG-OM for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:02 -0400 Received: from mail-pg1-x52c.google.com ([2607:f8b0:4864:20::52c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDL2-0004VW-Ny for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:02 -0400 Received: by mail-pg1-x52c.google.com with SMTP id 41be03b00d2f7-c797d5ad36bso79736a12.2 for ; Wed, 29 Apr 2026 15:25:00 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.24.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:24:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501499; x=1778106299; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=3JD52jOp5bj6jLEZLLXiumubTs9BogKD12LDRdezT9k=; b=n++NIwSgVh2wETazxQeTqBpnKH/eNpzFubSVSXA71w6XgwVK4QsWSTk7HG9wBpJDkH 6H1rFGEMRbtFggyX8TcDqkl2bK8SHVkY1N9eEuO9U2gsTFaSLkyrs2DC62bvHNlJSj8f IA8rH13s5Vdfz3YXIG4n2bORLua4TucvZI/0iHUvavESqN2Fth5Aqj7PKNCbujgCigJO bxg6tnLq9VSl6e6qVXTKhy+b/r+rExIv8o8iq6nwhdXwBhwuXJWauLuxPM4yxB+70Rn6 t+sfVYYR0y929SYXS1aIrx/UAJitEpN2g0vNWU+MXT01A69fY7IBqnbg0VIGWXUz9ugP jqTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501499; x=1778106299; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=3JD52jOp5bj6jLEZLLXiumubTs9BogKD12LDRdezT9k=; b=bmfxyJquCAP7pqcCuJbPeJjmEuht4DN8jCww9A4JxLcPlZh57EqUjWXyOiYitYugTd CVtgfT2OoO+DQStDsWScsMuog1nXcpAp0S9Kfk2eSu7MZmFjaZL2ASjGK+H3zEU3r3ir DCTc0nGkTIhfr4ZXvqqwYH4Q3SRNeFG8JmZLzO1TZMVzqauWvk8rt58aYoZlsfY1BZQt 6wxAfkWZWQPWRzGzDNgP6pyWHoD8rd5S9wMbkEpM+84MfLGpUaHG3G8QKWOaGEYNOwdU m97SZ5fnrsSI4CBz98EqmoVCX1RTJBlwQD8MChGbQYN17oGVqz5z33pBNhhT2kNm2/Jq GcIA== X-Gm-Message-State: AOJu0Ywi7//s4+QJ3gsc+TysIhpU1WfTEmY0lQSlokZ0ioDE49sr/uJt PWAsHLUoU44iAODVldyPCNLjxE4ho4aVyUc9OslF6jRj50DjhLNCRwdWR+/pvm6hbn6p57ggN/d w2BmP/nI= X-Gm-Gg: AeBDiesVvfCNBNTUuK/n4X0S9/413OHUbox08UKeS5+ysYRhtbngCygrLTggAc8rR3j wqM+PwCuDIJIn9tn/uS+gGZ4n1qx3bXgHbMJqd4KACgseRKf6qQBzGhKpXh5XBJZ69ZcrSCFod+ QWciUp7mF/kWMtyA/beK357Yk7ONvzpw34HIaEthkjUJl1fGQsRZeDvqavoCPKIFqh6A6kqRjz7 5clYTSdSHSaI9jVp4h/AsfRB2rddDnOTCvmma/1enMuSU9hUq4ZtpieW6sAlIEZWzQkSe72ge3w X40N4QhG8eFSGtt1IZLAjmRnGBeeQbn+BcW8J+cXBllG/HXJmJubuk6wcYa+Kwklu4WqqzvFZCk C3VQyCMwVfM7Tl97kZTtfRuacZufVw2rARNcjIEq1aC27rAaL9CKJQz0btx33GIkOYQchFSlnjb BX05dLDF7q8hblSvFy6QYLe4vCsprQzBuXbQzwMOoV X-Received: by 2002:a17:90b:2e42:b0:35f:b9ea:8fa5 with SMTP id 98e67ed59e1d1-364c30e2dc9mr158307a91.20.1777501499027; Wed, 29 Apr 2026 15:24:59 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 03/48] fpu: Drop parts_uncanon_normal Date: Thu, 30 Apr 2026 08:24:00 +1000 Message-ID: <20260429222445.26301-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::52c; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x52c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501715980158500 Use partsN(uncanon_normal) at the single call site. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 8 -------- fpu/softfloat-parts.c.inc | 2 +- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 7c13a7848e..4876a8bb27 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -806,14 +806,6 @@ static FloatParts128 *parts128_pick_nan_muladd(FloatPa= rts128 *a, #define parts_pick_nan_muladd(A, B, C, S, ABM, ABCM) \ PARTS_GENERIC_64_128(pick_nan_muladd, A)(A, B, C, S, ABM, ABCM) =20 -static void parts64_uncanon_normal(FloatParts64 *p, float_status *status, - const FloatFmt *fmt, bool saturate); -static void parts128_uncanon_normal(FloatParts128 *p, float_status *status, - const FloatFmt *fmt, bool saturate); - -#define parts_uncanon_normal(A, S, F, X) \ - PARTS_GENERIC_64_128(uncanon_normal, A)(A, S, F, X) - static void parts64_add_normal(FloatParts64 *a, FloatParts64 *b); static void parts128_add_normal(FloatParts128 *a, FloatParts128 *b); static void parts256_add_normal(FloatParts256 *a, FloatParts256 *b); diff --git a/fpu/softfloat-parts.c.inc b/fpu/softfloat-parts.c.inc index 3c323c0cec..948eb7bd6a 100644 --- a/fpu/softfloat-parts.c.inc +++ b/fpu/softfloat-parts.c.inc @@ -482,7 +482,7 @@ static void partsN(uncanon)(FloatPartsN *p, float_statu= s *s, const FloatFmt *fmt, bool saturate) { if (likely(is_anynorm(p->cls))) { - parts_uncanon_normal(p, s, fmt, saturate); + partsN(uncanon_normal)(p, s, fmt, saturate); } else { switch (p->cls) { case float_class_zero: --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501557; cv=none; d=zohomail.com; s=zohoarc; b=gAnHAFpikOSgpkt53sA4NXDSx0YK5jpL1wz5tCQ4sMjQy8t8ukq0xedEZsOftrBSGZg8hee+22ns9J6VHEBJAVEu6+jC0uC3Yle1xuO3/MRrQFTYA3/1nwF/lOZlCzWDRdbQQjH+JB7yhiyiF5a8jVtQ/KgR/YOyN4MT3HBIqpU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501557; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=wOWl6dlDmgt5ra+q6IWGJDwLcPjORpV6em0GCLoKPF4=; b=kpHbJVy56HCyrJHxsCcxPUcGMhzl/1E0G49wD/Pv8w+pqfebX02l7QsEPrYjfruKvbFOSewminlcYyny4PQ3C042iuZNsab2UwcheDEAHHlDQWYkTkTlbeRxwOTTSqXHiFd6ofBh6fcbinPy+KljA+Oef6Ko6IU99oEd0O97ZLM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501557775543.4592360935236; Wed, 29 Apr 2026 15:25:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDL8-0008Qd-F0; Wed, 29 Apr 2026 18:25:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDL7-0008Pa-AY for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:05 -0400 Received: from mail-pj1-x102f.google.com ([2607:f8b0:4864:20::102f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDL5-0004WE-2i for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:05 -0400 Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-35f9ab079bdso151024a91.2 for ; Wed, 29 Apr 2026 15:25:02 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.24.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:25:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501501; x=1778106301; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=wOWl6dlDmgt5ra+q6IWGJDwLcPjORpV6em0GCLoKPF4=; b=v65gqvvr8RdXVZ7bV9nxk6gijiKk/2VxyOm9oPughKNCCaYDJYXnfElrro38FZ2XsA htKgYU8pt0HBZNzjMu8pEmumIMTKx1SoobgRO9NGWAzST/mCIPdfwQtQQ34fh2te6DQQ mZhOq0gXEg4nUWoiwFE1fWcurxcF23M8I7CVX5X3NkULnV/M0WgCwS5U0JAsDAdhjK5u nW4LIBGbwlztqFcDff6FEPzw1HtDki3EIuHPOfUo8rN5XbL9oca3acv/8QBiGAP5N6gu BbCzuUhexvgugmFnfFosATbDW//kUXY0MdUzzEa/244jfjNC/4nfHIme1Sa5zcLXqT7S wu+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501501; x=1778106301; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=wOWl6dlDmgt5ra+q6IWGJDwLcPjORpV6em0GCLoKPF4=; b=BNKMVzDi1a8b3VJTKnu+qJQRF0ypzxtf6Hu/InWN4TUP5cQufrBfNkBthi1SHiY1qO kY0RnLGnx9UTdjcRGZE3xeNiP9trFUvxCVbk/7tTnzVOU7bYvS9xYvExDcrQxu6wt9Tw 2gPAXB7VUrz8+/wZw5/xAG/nfPqS+4PGRGc+yapGrR3yQZWXEsYYUzUUCU+LXU/X9lRe alqnLcp83GgJ7BjAuPU2N6/w7UDK8gR/OEw4TGRczLs9s/WZIJKAJ+Z+nq4wMXs8xzpW m32kqxXX1RBqFvHUKbLsHBiO/JTgXTrdMF5lONn+YuiKxKhU2BHR1undSjvWWchbaqNb 5/Hg== X-Gm-Message-State: AOJu0Yzd8xTqeMB7+o0100TpAxABLCI8H2RDVmIGfYRYjsJVjsiWW0kT F63x8xkGj/5r8yPITrskywuZkLhSVPnsj/nQ0z/VOz/iUSqZ7oawa5s9r2fhXwgnZui97Z6ev8v mNt2lHC8= X-Gm-Gg: AeBDietgKsgfPPhHSQwah5UODlrKUAJby4S7bfezTJGA0gA3fSLtRFmhXop0Qm+hxRI jvyD0dIXJKFDzEQTkljblydRESeKHalBZqE8hPHqq8GMWRvBtf3343/RZX5KnV/Pmws4K4CC3m+ gV3DI3ez7xBRiptESpYBeg06+P1Dupa5KJY0TAniEmxily0vsHygwagJbnoqwyFcxmV+9gYB7w6 h+vzTfycK1PE57TTJDMdoWFPTMJKGmq+bW8AGzxrGyCS5732l804/PXQkr+isDhhWQUunSi1You eRwZ4LBmU7SmCr5UoPSiy3NhYTksNjaEEsI9n8aQXYAjseLhyHCrK1nUZWeKRDqPIvcAKdXn8Q8 Tp11x6oOueR4AzdUS8ORkZ0x+n94JrOdZD1/RhekBeWyRstQzCTv6S6yIO+Jpo5YRd8FkSOIqe7 WFfJ4vKMPJQfC2oHmVUxUIteUSILbKL+Dte0W6biuZ X-Received: by 2002:a17:90b:4cc4:b0:35f:b6a1:8d23 with SMTP id 98e67ed59e1d1-364c2f8c804mr193055a91.11.1777501501515; Wed, 29 Apr 2026 15:25:01 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 04/48] fpu: Drop parts_default_nan Date: Thu, 30 Apr 2026 08:24:01 +1000 Message-ID: <20260429222445.26301-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102f; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501559406158500 Use parts{64,128}_default_nan at each call site. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 23 +++++++++++------------ fpu/softfloat-parts.c.inc | 24 ++++++++++++------------ 2 files changed, 23 insertions(+), 24 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 4876a8bb27..76c1d4e38a 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -779,7 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const Fl= oatParts128 *p) FloatParts128 *: parts128_##NAME, \ FloatParts256 *: parts256_##NAME) =20 -#define parts_default_nan(P, S) PARTS_GENERIC_64_128(default_nan, P)(P,= S) #define parts_silence_nan(P, S) PARTS_GENERIC_64_128(silence_nan, P)(P,= S) =20 static void parts64_return_nan(FloatParts64 *a, float_status *s); @@ -3156,7 +3155,7 @@ float32 floatx80_to_float32(floatx80 a, float_status = *s) if (floatx80_unpack_canonical(&p128, a, s)) { parts_float_to_float_narrow(&p64, &p128, s); } else { - parts_default_nan(&p64, s); + parts64_default_nan(&p64, s); } return float32_round_pack_canonical(&p64, s); } @@ -3169,7 +3168,7 @@ float64 floatx80_to_float64(floatx80 a, float_status = *s) if (floatx80_unpack_canonical(&p128, a, s)) { parts_float_to_float_narrow(&p64, &p128, s); } else { - parts_default_nan(&p64, s); + parts64_default_nan(&p64, s); } return float64_round_pack_canonical(&p64, s); } @@ -3181,7 +3180,7 @@ float128 floatx80_to_float128(floatx80 a, float_statu= s *s) if (floatx80_unpack_canonical(&p, a, s)) { parts_float_to_float(&p, s); } else { - parts_default_nan(&p, s); + parts128_default_nan(&p, s); } return float128_round_pack_canonical(&p, s); } @@ -3486,7 +3485,7 @@ static int32_t floatx80_to_int32_scalbn(floatx80 a, F= loatRoundMode rmode, FloatParts128 p; =20 if (!floatx80_unpack_canonical(&p, a, s)) { - parts_default_nan(&p, s); + parts128_default_nan(&p, s); } return parts_float_to_sint(&p, rmode, scale, INT32_MIN, INT32_MAX, s); } @@ -3497,7 +3496,7 @@ static int64_t floatx80_to_int64_scalbn(floatx80 a, F= loatRoundMode rmode, FloatParts128 p; =20 if (!floatx80_unpack_canonical(&p, a, s)) { - parts_default_nan(&p, s); + parts128_default_nan(&p, s); } return parts_float_to_sint(&p, rmode, scale, INT64_MIN, INT64_MAX, s); } @@ -4984,7 +4983,7 @@ float16 float16_default_nan(float_status *status) { FloatParts64 p; =20 - parts_default_nan(&p, status); + parts64_default_nan(&p, status); p.frac >>=3D float16_params.frac_shift; return float16_pack_raw(&p); } @@ -4993,7 +4992,7 @@ float32 float32_default_nan(float_status *status) { FloatParts64 p; =20 - parts_default_nan(&p, status); + parts64_default_nan(&p, status); p.frac >>=3D float32_params.frac_shift; return float32_pack_raw(&p); } @@ -5002,7 +5001,7 @@ float64 float64_default_nan(float_status *status) { FloatParts64 p; =20 - parts_default_nan(&p, status); + parts64_default_nan(&p, status); p.frac >>=3D float64_params.frac_shift; return float64_pack_raw(&p); } @@ -5011,7 +5010,7 @@ float128 float128_default_nan(float_status *status) { FloatParts128 p; =20 - parts_default_nan(&p, status); + parts128_default_nan(&p, status); frac_shr(&p, float128_params.frac_shift); return float128_pack_raw(&p); } @@ -5020,7 +5019,7 @@ bfloat16 bfloat16_default_nan(float_status *status) { FloatParts64 p; =20 - parts_default_nan(&p, status); + parts64_default_nan(&p, status); p.frac >>=3D bfloat16_params.frac_shift; return bfloat16_pack_raw(&p); } @@ -5537,7 +5536,7 @@ static void parts_s390_divide_to_integer(FloatParts64= *a, FloatParts64 *b, *n =3D *r; *cc =3D 1; } else if (a->cls =3D=3D float_class_inf || b->cls =3D=3D float_class_= zero) { - parts_default_nan(r, status); + parts64_default_nan(r, status); *n =3D *r; *cc =3D 1; status->float_exception_flags |=3D float_flag_invalid; diff --git a/fpu/softfloat-parts.c.inc b/fpu/softfloat-parts.c.inc index 948eb7bd6a..37ce731101 100644 --- a/fpu/softfloat-parts.c.inc +++ b/fpu/softfloat-parts.c.inc @@ -21,14 +21,14 @@ static void partsN(return_nan)(FloatPartsN *a, float_st= atus *s) case float_class_snan: float_raise(float_flag_invalid | float_flag_invalid_snan, s); if (s->default_nan_mode) { - parts_default_nan(a, s); + partsN(default_nan)(a, s); } else { parts_silence_nan(a, s); } break; case float_class_qnan: if (s->default_nan_mode) { - parts_default_nan(a, s); + partsN(default_nan)(a, s); } break; default: @@ -49,7 +49,7 @@ static FloatPartsN *partsN(pick_nan)(FloatPartsN *a, Floa= tPartsN *b, } =20 if (s->default_nan_mode) { - parts_default_nan(a, s); + partsN(default_nan)(a, s); return a; } =20 @@ -184,7 +184,7 @@ static FloatPartsN *partsN(pick_nan_muladd)(FloatPartsN= *a, FloatPartsN *b, return ret; =20 default_nan: - parts_default_nan(a, s); + partsN(default_nan)(a, s); return a; } =20 @@ -281,7 +281,7 @@ static void partsN(uncanon_e4m3_overflow)(FloatPartsN *= p, float_status *s, p->exp =3D fmt->exp_max; p->frac_hi =3D E4M3_NORMAL_FRAC_MAX; } else { - parts_default_nan(p, s); + partsN(default_nan)(p, s); } } =20 @@ -568,7 +568,7 @@ static FloatPartsN *partsN(addsub)(FloatPartsN *a, Floa= tPartsN *b, } /* Inf - Inf */ float_raise(float_flag_invalid | float_flag_invalid_isi, s); - parts_default_nan(a, s); + partsN(default_nan)(a, s); return a; } } else { @@ -641,7 +641,7 @@ static FloatPartsN *partsN(mul)(FloatPartsN *a, FloatPa= rtsN *b, /* Inf * Zero =3D=3D NaN */ if (unlikely(ab_mask =3D=3D float_cmask_infzero)) { float_raise(float_flag_invalid | float_flag_invalid_imz, s); - parts_default_nan(a, s); + partsN(default_nan)(a, s); return a; } =20 @@ -796,7 +796,7 @@ static FloatPartsN *partsN(muladd_scalbn)(FloatPartsN *= a, FloatPartsN *b, goto finish_sign; =20 d_nan: - parts_default_nan(a, s); + partsN(default_nan)(a, s); return a; } =20 @@ -864,7 +864,7 @@ static FloatPartsN *partsN(div)(FloatPartsN *a, FloatPa= rtsN *b, return a; =20 d_nan: - parts_default_nan(a, s); + partsN(default_nan)(a, s); return a; } =20 @@ -896,7 +896,7 @@ static FloatPartsN *partsN(modrem)(FloatPartsN *a, Floa= tPartsN *b, /* Inf % N; N % 0 */ if (a->cls =3D=3D float_class_inf || b->cls =3D=3D float_class_zero) { float_raise(float_flag_invalid, s); - parts_default_nan(a, s); + partsN(default_nan)(a, s); return a; } =20 @@ -1118,7 +1118,7 @@ static void partsN(sqrt)(FloatPartsN *a, float_status= *status, =20 d_nan: float_raise(float_flag_invalid | float_flag_invalid_sqrt, status); - parts_default_nan(a, status); + partsN(default_nan)(a, status); } =20 /* @@ -1879,5 +1879,5 @@ static void partsN(log2)(FloatPartsN *a, float_status= *s, const FloatFmt *fmt) =20 d_nan: float_raise(float_flag_invalid, s); - parts_default_nan(a, s); + partsN(default_nan)(a, s); } --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501534; cv=none; d=zohomail.com; s=zohoarc; b=Rc1cmwwmjFd2J3+0d0FxANViAPQ4IMyOyI+jM65lWNUm8lfD6uu4FsIGXCekpDV1vMsp1z5Pp4JQNEUntd8ba7LfE20GD7vq/p63fdVhnTEUmDsGocITrDsyTdq47VbZNnyl/opJlsOpwDmj8+hiz/C4YIO50HdYZFwnKUCiUlQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501534; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=0acHNdlazZi1YgqZAKptjl7ZLjGgHX6fO28DrX2hh38=; b=I6KkJViCluFeLcDMWF+AQ04+lJWY1EQ8HoGK0NvcGZaG1u0quqaInhEhwH/DJr+E58fvqvvpjjerHtzHtpwlLzrr0M1O/L6eYngC70Mez9Alu8RvUpKrXkbrCad6+Gc3fD9VqbDNazmGZxq+RkvILk13bM1+BOLXIaCC5RRqQMI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501534706720.2144722251226; Wed, 29 Apr 2026 15:25:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDLF-00005c-Cb; Wed, 29 Apr 2026 18:25:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDL9-0008UE-Vl for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:09 -0400 Received: from mail-pg1-x536.google.com ([2607:f8b0:4864:20::536]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDL7-0004Wh-O5 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:07 -0400 Received: by mail-pg1-x536.google.com with SMTP id 41be03b00d2f7-c70e27e2b74so72401a12.0 for ; Wed, 29 Apr 2026 15:25:05 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.25.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:25:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501504; x=1778106304; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0acHNdlazZi1YgqZAKptjl7ZLjGgHX6fO28DrX2hh38=; b=fe610JocJGvKzzEgazYLZSKCNiVrkqAOID7+uRUWZQ9L+U4xOppUBPWH4aI8x5O+P2 LWJyKLkvZ7q7amra9do0y4elKthMIL51Bgp8sI2Tm4IEOevhGKeOaMxHYLAr1gVsjTIt FWOpffZBAE2uu8DAjRiaR7YMcNb494sIjJypxaxecKgqddwUdLWEXWIiPbj8rqfTtKyd ULudYQ/+IOqwnO3pBNWIbMi0ekVp4CMGtnkFq4yGCE3vvIpabRHJFdxHWj6Dlp5K2c2h 9T7Mo6Bl4OiCUlNaDrYkngluuM/FJkZDCmUBIWsjc9mbqmMvq/sOiO2nU3cpxW4G7UyS T9Qg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501504; x=1778106304; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=0acHNdlazZi1YgqZAKptjl7ZLjGgHX6fO28DrX2hh38=; b=WXESGcvZ9K8sCFLpwPpzDUbVQH/ESWFxbb/PObWtHqILHYV/k9hAf+KiAznys0MhtH LhVantUBwcnetIrN/BeICwNurzQ5ghn+4e0+wBqLsLF7KGdUl3WgpdY+r9mYpQyVcS9r QU/eA2V54JtW2qbRf3JM1Q/ZRqx4ZQoXitY1/b/e9PqzkqH9i/tZICVCMBFziZOAkppm ++AqW7RwsAiRfUUo+WdQ/SzQG8tdnQt9peRK8tRa//+AiI2C3i0rob5uO+rdxfbhrAGM TcgzQ4BazKiwWoNSBfObKljNpJ7DFbbDfKVdEbXneZpKE/ULc2AQwltI1RhIFfAf7Ebs JlBA== X-Gm-Message-State: AOJu0YxlKmQH/AMWqp7OCpmK+Qrr/KpL1p8iKkTbOS1RzUyyX/sIt1DW YPdFlnZL9Xcgl6KN3XyrzvpuaRlRE4CKBUAjlvqt9t0en3rYe3jVspugT2kDFGd8/+6EhXSngUn nlqjadu0= X-Gm-Gg: AeBDiesobCNSJtdkGypp0LpY49K6MvyEs+fROa0zcm9XwONnCeacNJI8JY7G3gv5KYM z4HbAimvmZK7ZpBQ678HoF0pC9s+0xT7+0dsuE+jv5M5MjyHfbXA2YACR4aCBoQa9q6ZXi3qCvB SoDCP2AJ9e5FPOZ1fxB7CNclIt0D+1VjZmAz3Eh4wKoVbcriBFiV82HXqcdV6Fr/z0rnvrNPK2M 6cUV3VSqF/bCEZaB/o9R9hf/TEO0TVhXyDdm6BUoB2xR7h21FVkAiZW/KACw6OlAsKVNuso6kLN cqYtR/HNHWRtah88AkJH02wK+LtYPKRkM00ykWl4XVoymZiTGVhuWU9q594RNbnqjeBlPFarhic QD9pzn/9i9FLlA3vzRwheuuMzDK8XlOBhk4yRKkoRGZFSAGwp7vNTUAtpk4cDPO3p/VY3DeZPhK yNVZuttYofu4pKwsKE4ob9vF8O5nODBg9VStmpSz00 X-Received: by 2002:a17:90b:264b:b0:35f:bbc0:e570 with SMTP id 98e67ed59e1d1-364c2de2c5bmr228083a91.0.1777501503961; Wed, 29 Apr 2026 15:25:03 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 05/48] fpu: Drop parts_silence_nan Date: Thu, 30 Apr 2026 08:24:02 +1000 Message-ID: <20260429222445.26301-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::536; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x536.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501535368158500 Use parts{64,128}_silence_nan at each call site. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 12 +++++------- fpu/softfloat-parts.c.inc | 6 +++--- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 76c1d4e38a..571b5f09f3 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -779,8 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const Fl= oatParts128 *p) FloatParts128 *: parts128_##NAME, \ FloatParts256 *: parts256_##NAME) =20 -#define parts_silence_nan(P, S) PARTS_GENERIC_64_128(silence_nan, P)(P,= S) - static void parts64_return_nan(FloatParts64 *a, float_status *s); static void parts128_return_nan(FloatParts128 *a, float_status *s); =20 @@ -5034,7 +5032,7 @@ float16 float16_silence_nan(float16 a, float_status *= status) =20 float16_unpack_raw(&p, a); p.frac <<=3D float16_params.frac_shift; - parts_silence_nan(&p, status); + parts64_silence_nan(&p, status); p.frac >>=3D float16_params.frac_shift; return float16_pack_raw(&p); } @@ -5045,7 +5043,7 @@ float32 float32_silence_nan(float32 a, float_status *= status) =20 float32_unpack_raw(&p, a); p.frac <<=3D float32_params.frac_shift; - parts_silence_nan(&p, status); + parts64_silence_nan(&p, status); p.frac >>=3D float32_params.frac_shift; return float32_pack_raw(&p); } @@ -5056,7 +5054,7 @@ float64 float64_silence_nan(float64 a, float_status *= status) =20 float64_unpack_raw(&p, a); p.frac <<=3D float64_params.frac_shift; - parts_silence_nan(&p, status); + parts64_silence_nan(&p, status); p.frac >>=3D float64_params.frac_shift; return float64_pack_raw(&p); } @@ -5067,7 +5065,7 @@ bfloat16 bfloat16_silence_nan(bfloat16 a, float_statu= s *status) =20 bfloat16_unpack_raw(&p, a); p.frac <<=3D bfloat16_params.frac_shift; - parts_silence_nan(&p, status); + parts64_silence_nan(&p, status); p.frac >>=3D bfloat16_params.frac_shift; return bfloat16_pack_raw(&p); } @@ -5078,7 +5076,7 @@ float128 float128_silence_nan(float128 a, float_statu= s *status) =20 float128_unpack_raw(&p, a); frac_shl(&p, float128_params.frac_shift); - parts_silence_nan(&p, status); + parts128_silence_nan(&p, status); frac_shr(&p, float128_params.frac_shift); return float128_pack_raw(&p); } diff --git a/fpu/softfloat-parts.c.inc b/fpu/softfloat-parts.c.inc index 37ce731101..0d4a63fbff 100644 --- a/fpu/softfloat-parts.c.inc +++ b/fpu/softfloat-parts.c.inc @@ -23,7 +23,7 @@ static void partsN(return_nan)(FloatPartsN *a, float_stat= us *s) if (s->default_nan_mode) { partsN(default_nan)(a, s); } else { - parts_silence_nan(a, s); + partsN(silence_nan)(a, s); } break; case float_class_qnan: @@ -109,7 +109,7 @@ static FloatPartsN *partsN(pick_nan)(FloatPartsN *a, Fl= oatPartsN *b, } =20 if (is_snan(ret->cls)) { - parts_silence_nan(ret, s); + partsN(silence_nan)(ret, s); } return ret; } @@ -179,7 +179,7 @@ static FloatPartsN *partsN(pick_nan_muladd)(FloatPartsN= *a, FloatPartsN *b, } =20 if (is_snan(ret->cls)) { - parts_silence_nan(ret, s); + partsN(silence_nan)(ret, s); } return ret; =20 --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501731; cv=none; d=zohomail.com; s=zohoarc; b=n+2uaOj2w4bkFTGiewCe3jnaaDWJUlMNsXrxkY+uyf9ex/hRaOkZhdDT6Zn/JlYlDCCpbnY/ttKt4gpAKfgTS/GEMmw02OSEf85WcGIn40QRZqHiOJuCrmaX+ZzPov1eVyOL+0piQhRJIxJsGYBGNb2sabwfpvO46H9jNHpqvUE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501731; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=OuF50DyS/2sUvgsZRavLu0Xyfa3XUA6eWQvmnwMMmBM=; b=WOctpKov/Dzfg+p4HJ+8i9lDvAdFQy3scSq/cm0J17+yEuwIdp3eXg9+cR8C5M8H2PiHzhmWeGvAGk3t0ytlzUKyN5dKPXM+lUfnxq12sfEzqnzfpoX15JvboocwPSGfiCSb4rO40h04ygwdkT11AB2Il409Xjz0FEN58I0I3x8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501731220952.9320355367583; Wed, 29 Apr 2026 15:28:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDLH-00006N-7m; Wed, 29 Apr 2026 18:25:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDLC-0008W9-Jr for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:10 -0400 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDLA-0004ec-18 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:10 -0400 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-35da2d35eccso152447a91.0 for ; Wed, 29 Apr 2026 15:25:07 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.25.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:25:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501506; x=1778106306; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=OuF50DyS/2sUvgsZRavLu0Xyfa3XUA6eWQvmnwMMmBM=; b=JMqGh4ybfs/gdruAel6Slw+B5GpuBjz0+8r5kJ6orkExpi0Tq8oOGp2U9C65lAJyO/ ITAaj9ju1N+NZMAeHBVr5Z3cIjmzt+1K2ub5siUlDMbP+gEOK8D2OYGFxkDGqDfhuwG+ HDuP5IV7NTwcBb8nrtH3KR7tJo3MONM99CPGlTi9Hl6bhoS6ifBn3LdWRhZou/gM8Mom rdgwQL9zMLRd/RfIINyvahnMZYxe1YAGcQHU2THEPakmPwWOap1gYkmGuPainr8+zxoX WgJzVMCl7IqnMIiOyxZiBHmH84WN4KcY4ry7y1ZaBvEEEa1CFGC70dLpkSgB59EnqnNz a1uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501506; x=1778106306; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=OuF50DyS/2sUvgsZRavLu0Xyfa3XUA6eWQvmnwMMmBM=; b=TjrNofQqUn/y0ktcJlGbk7m8KhX8kvqn/FS/vC+GXlnoDjRnNxUQoaezt8asIK3k7O 0Y2xvfJtSlepYhhcQc1RnsnPVp1WgdWSSh77H8pg8zx6agOISIV3ywR3Q9ZpdV9g9eqU b/KtlJqIXzszbLZWpQEcLuNlayqm76AASKJM/YRmaPdd7nySsPBe7g3DIC9oIqkRAFSK 732yPn0WEWJu9RV6SlxowzwADDiL2v8vkDUbs26El2w4p7S+vk4ZHkXLMpPZAkLFFXmE SNO8QT02eUKi/0YuMzPKiVP++ulJe6Y/plfCpKKaGejZIp9NO3lmyzuOiGz3+eL7F0Im /gqw== X-Gm-Message-State: AOJu0YyMY9ZYwGX48V8uEh2x9GPv966yoON2BDCtl6voWgTriI9L0V8b v7bQqkuoYWblTtai+zFL3toJ10y749cNKJdRv1Aow7vHB3kOkkNqhj8R/wzGMWtwYIIc+EytY8C Kvi08gCQ= X-Gm-Gg: AeBDieuj00XQRHpkFscTuoWc3w0DtnGj0KydaYCBufDM75yY9a85mwb0lK1fJX2t6Bj HJjGCTtKm7SenqyG50idLAUbTf52wXlOtevDtTS8nIS+E2FrVrv0IR8tzuMMUIp1YJiy4GnXCCu qmWQmBrhHskpmUL2siaY5qWIO/h6nKNGioavnD+Vrmvx3EHYQ4o5uYCvtIUYI6DEkQYdmnJvGiy fGzNkNMuOLvPlrU/J1XFKdlYUaRcaShh6ewRTZE/I63mT1WQGxFV0GUnweOqJ+3mbejEZbvfrjp /OJ/PB0bKjIGpQJEZd3Axvrv7oNfhwjvmHY4NX6nSlu5o4DPudwguyXC0FYGnJH2bFaoXkISSMq Yzq3F6N4fnb/UJ2cYIoHJmIB6DyFwcutxq/jousSqP+qbAwhusyu2Ix9MDg4oVbqn+D5jPOnn3i p7U1SFVx0xY+R31aYkw5RZF+Bzp0aOeWHe6j+g0+Rl X-Received: by 2002:a17:90b:3505:b0:35b:e690:c5ad with SMTP id 98e67ed59e1d1-364c310b735mr154365a91.25.1777501506505; Wed, 29 Apr 2026 15:25:06 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 06/48] fpu: Drop parts_return_nan Date: Thu, 30 Apr 2026 08:24:03 +1000 Message-ID: <20260429222445.26301-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1032; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1032.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501732213154100 Use parts{64,128}_return_nan at each call site. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 17 ++++++----------- fpu/softfloat-parts.c.inc | 8 ++++---- 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 571b5f09f3..50a625fd0a 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -779,11 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const F= loatParts128 *p) FloatParts128 *: parts128_##NAME, \ FloatParts256 *: parts256_##NAME) =20 -static void parts64_return_nan(FloatParts64 *a, float_status *s); -static void parts128_return_nan(FloatParts128 *a, float_status *s); - -#define parts_return_nan(P, S) PARTS_GENERIC_64_128(return_nan, P)(P, = S) - static FloatParts64 *parts64_pick_nan(FloatParts64 *a, FloatParts64 *b, float_status *s); static FloatParts128 *parts128_pick_nan(FloatParts128 *a, FloatParts128 *b, @@ -2831,7 +2826,7 @@ static void parts_float_to_e5m2(FloatParts64 *a, floa= t_status *s, bool saturate) switch (a->cls) { case float_class_snan: case float_class_qnan: - parts_return_nan(a, s); + parts64_return_nan(a, s); break; =20 case float_class_inf: @@ -2858,7 +2853,7 @@ static void parts_float_to_e5m2(FloatParts64 *a, floa= t_status *s, bool saturate) static void parts64_float_to_float(FloatParts64 *a, float_status *s) { if (is_nan(a->cls)) { - parts_return_nan(a, s); + parts64_return_nan(a, s); } if (a->cls =3D=3D float_class_denormal) { float_raise(float_flag_input_denormal_used, s); @@ -2868,7 +2863,7 @@ static void parts64_float_to_float(FloatParts64 *a, f= loat_status *s) static void parts128_float_to_float(FloatParts128 *a, float_status *s) { if (is_nan(a->cls)) { - parts_return_nan(a, s); + parts128_return_nan(a, s); } if (a->cls =3D=3D float_class_denormal) { float_raise(float_flag_input_denormal_used, s); @@ -2896,7 +2891,7 @@ static void parts_float_to_float_narrow(FloatParts64 = *a, FloatParts128 *b, case float_class_qnan: /* Discard the low bits of the NaN. */ a->frac =3D b->frac_hi; - parts_return_nan(a, s); + parts64_return_nan(a, s); break; default: break; @@ -2912,7 +2907,7 @@ static void parts_float_to_float_widen(FloatParts128 = *a, FloatParts64 *b, frac_widen(a, b); =20 if (is_nan(a->cls)) { - parts_return_nan(a, s); + parts128_return_nan(a, s); } if (a->cls =3D=3D float_class_denormal) { float_raise(float_flag_input_denormal_used, s); @@ -5474,7 +5469,7 @@ float32 float32_exp2(float32 a, float_status *status) break; case float_class_snan: case float_class_qnan: - parts_return_nan(&xp, status); + parts64_return_nan(&xp, status); return float32_round_pack_canonical(&xp, status); case float_class_inf: return xp.sign ? float32_zero : a; diff --git a/fpu/softfloat-parts.c.inc b/fpu/softfloat-parts.c.inc index 0d4a63fbff..3bde254bfe 100644 --- a/fpu/softfloat-parts.c.inc +++ b/fpu/softfloat-parts.c.inc @@ -941,7 +941,7 @@ static void partsN(sqrt)(FloatPartsN *a, float_status *= status, break; case float_class_snan: case float_class_qnan: - parts_return_nan(a, status); + partsN(return_nan)(a, status); return; case float_class_zero: return; @@ -1263,7 +1263,7 @@ static void partsN(round_to_int)(FloatPartsN *a, Floa= tRoundMode rmode, switch (a->cls) { case float_class_qnan: case float_class_snan: - parts_return_nan(a, s); + partsN(return_nan)(a, s); break; case float_class_zero: case float_class_inf: @@ -1735,7 +1735,7 @@ static void partsN(scalbn)(FloatPartsN *a, int n, flo= at_status *s) switch (a->cls) { case float_class_snan: case float_class_qnan: - parts_return_nan(a, s); + partsN(return_nan)(a, s); break; case float_class_zero: case float_class_inf: @@ -1770,7 +1770,7 @@ static void partsN(log2)(FloatPartsN *a, float_status= *s, const FloatFmt *fmt) break; case float_class_snan: case float_class_qnan: - parts_return_nan(a, s); + partsN(return_nan)(a, s); return; case float_class_zero: float_raise(float_flag_divbyzero, s); --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501754; cv=none; d=zohomail.com; s=zohoarc; b=JaQqZnY5MbyGZi6V084gIvNk+NrNkU879sV9mIuER3BV0gLGS+ia0mnLhgBGwl1SXO2MrgDRScsM3s2c3q6c/R4J3zguy0qV/AFGNDCy97ZTdSyoNbr9FlVGwzg9kAKkk3cENz4wkduvreOUsKAnMYwBmwb9r6L+8vfUL6SlSm4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501754; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=zWM87T66PJDj61eh/+kk68S5TIssJMc4SE+XJlzZd4M=; b=QvQ+31y2iRYWPk4Yti3yOEJnEE0jIqn+/h0aAmF3Uj7rDRv+DBG2z/s716HXGx1CdPgzSeFxc4mKQlOF7MuW7YiDEp1yfENnyMZ7e90gI5Ua7TI9gYuiv3ZkA7lZ130bNORtZFpI6BHTwjx39l8xMdxuug3+p6EYpdvpGTyHtss= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501754642441.01744690761404; Wed, 29 Apr 2026 15:29:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDLK-000073-7H; Wed, 29 Apr 2026 18:25:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDLE-00005b-9O for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:13 -0400 Received: from mail-pj1-x1034.google.com ([2607:f8b0:4864:20::1034]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDLC-0004mD-Ks for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:12 -0400 Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-35fc0d7c310so125435a91.1 for ; Wed, 29 Apr 2026 15:25:10 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.25.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:25:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501509; x=1778106309; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=zWM87T66PJDj61eh/+kk68S5TIssJMc4SE+XJlzZd4M=; b=B44MVBO/bMUsgfc1S6QWobYZoghh53GopC2RlEPBgF5GM4Cw+6h+kJ3eg4K9GwhuLM pH+nw1fC8fz5UzMw/XTBJ8/UqyNVTC8Yjnh04o7xWfJ1snCXcci2TiKldcWtTJC6IWoQ V8eev8QwWZ7CDTDFR4HX7wWs8lPHdZGKAoa04jiG6DO69EY/ZcJaQeviNpKbhi1lkzIR WhxGCK6BVBL0lK1/RWZpxMzbTSmosMsXZnbIEm3FJGNf+tpoa3Pe4nWLPT3yatwhTEZO n8JN1e0wZC5MsKQPUgnaqO9KDTB2FEhueVWI661cN675KE33ieoisvPeWwSRx/z9o1Hw lkSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501509; x=1778106309; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=zWM87T66PJDj61eh/+kk68S5TIssJMc4SE+XJlzZd4M=; b=EI0Jvpq1jB6bcfOisfvx1EZ2BJWQol7CAc1kIiTw5vOBX9NpkWQkzn4Qd/hKlrb+4L h4lHW2nlAfaqGJ2hVR3CDFuhoLBjoFVCkbyN05IpXRWJet/Nl5fi+72R+eBfmAbMB4DC VE8xX5r3KjasUANzuEPzM3tHNlue4qtLpaYXxzteB2WVFqJ921EtMxbO8rUaZ7RwprLN 9k4Pn0Cxrf/loxXL4L4PEP+9JL9VLE8WhRtk1TPA6UYsgyTNCpeXRzvwUpQA8prr7yx2 DLNN7pOr9N8U/YDrDe7p8pwOzBGaun+zFstIkcOvF64l1Mhdlp3dBoFdoUDofPswGSdt Lz+w== X-Gm-Message-State: AOJu0Yw7yhhE3LUURhBB0ghpWkfvgK0XbCV/X3UKsQRslbmiVKQ8XwDb ZUHYJuEpHsyMO4TCsMn1Qytt9xlJTPwSbzz2Vaf9idTYJp2loCCOaPHeh1rsiykvWdVF7lIFWt+ l1kJIu6U= X-Gm-Gg: AeBDietixOgd//OlWy0b4xhttY9sSkFtsjME6dXIULVgWFiSIge0A98z5E1ZjyWQzx2 rKsCs/Pf1CoJ0Bykm/h5Y9MvEySz/WMnSbuM9tD7WLD/0iIinUKIkbuuRj4XJnnK5ke8FzZ+tPH yrdFsHKx3AnK+th/vKwrm+rfnTMZRB5EJZccvWmP7AembcEpqrziAeFvmme1hyBfFv49ce+mNs3 DM984EKHOeV/eQHnUCk418pLYc5GxD1M9EeFeLbko1XplDuJKgb0kMne0QfNBiEamIF0cQt0ded nWDK8Hltf3W8qnnj1380iTayrFrOvvCQ9yUHU1mDPldeBiikSzN7l67E5YH+beHd8t0zcJJ09vN 24i6egzZiRasTxGImNM6HDdUblR1ViqwuQSnxSmt5pz91eKY2Kh2urfkhzXXqoH4UKVKU1Pw6Gw 7y4mnvwdul3FKr+yNSkLxNFXSv4wpBP6u3kBaJeWku X-Received: by 2002:a17:90b:2f0f:b0:361:45df:102 with SMTP id 98e67ed59e1d1-364c308d224mr157511a91.17.1777501509043; Wed, 29 Apr 2026 15:25:09 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 07/48] fpu: Drop parts_pick_nan Date: Thu, 30 Apr 2026 08:24:04 +1000 Message-ID: <20260429222445.26301-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1034; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1034.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501756499154100 Use parts{64,128}_pick_nan at each call site. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 11 ++--------- fpu/softfloat-parts.c.inc | 10 +++++----- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 50a625fd0a..98ddc00936 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -779,13 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const F= loatParts128 *p) FloatParts128 *: parts128_##NAME, \ FloatParts256 *: parts256_##NAME) =20 -static FloatParts64 *parts64_pick_nan(FloatParts64 *a, FloatParts64 *b, - float_status *s); -static FloatParts128 *parts128_pick_nan(FloatParts128 *a, FloatParts128 *b, - float_status *s); - -#define parts_pick_nan(A, B, S) PARTS_GENERIC_64_128(pick_nan, A)(A, B,= S) - static FloatParts64 *parts64_pick_nan_muladd(FloatParts64 *a, FloatParts64= *b, FloatParts64 *c, float_status= *s, int ab_mask, int abc_mask); @@ -5175,7 +5168,7 @@ floatx80 propagateFloatx80NaN(floatx80 a, floatx80 b,= float_status *status) return floatx80_default_nan(status); } =20 - pr =3D parts_pick_nan(&pa, &pb, status); + pr =3D parts128_pick_nan(&pa, &pb, status); return floatx80_round_pack_canonical(pr, status); } =20 @@ -5525,7 +5518,7 @@ static void parts_s390_divide_to_integer(FloatParts64= *a, FloatParts64 *b, { /* POp table "Results: DIVIDE TO INTEGER (Part 1 of 2)" */ if ((float_cmask(a->cls) | float_cmask(b->cls)) & float_cmask_anynan) { - *r =3D *parts_pick_nan(a, b, status); + *r =3D *parts64_pick_nan(a, b, status); *n =3D *r; *cc =3D 1; } else if (a->cls =3D=3D float_class_inf || b->cls =3D=3D float_class_= zero) { diff --git a/fpu/softfloat-parts.c.inc b/fpu/softfloat-parts.c.inc index 3bde254bfe..1a2eb7852d 100644 --- a/fpu/softfloat-parts.c.inc +++ b/fpu/softfloat-parts.c.inc @@ -604,7 +604,7 @@ static FloatPartsN *partsN(addsub)(FloatPartsN *a, Floa= tPartsN *b, return b; =20 p_nan: - return parts_pick_nan(a, b, s); + return partsN(pick_nan)(a, b, s); } =20 /* @@ -646,7 +646,7 @@ static FloatPartsN *partsN(mul)(FloatPartsN *a, FloatPa= rtsN *b, } =20 if (unlikely(ab_mask & float_cmask_anynan)) { - return parts_pick_nan(a, b, s); + return partsN(pick_nan)(a, b, s); } =20 /* Multiply by 0 or Inf */ @@ -832,7 +832,7 @@ static FloatPartsN *partsN(div)(FloatPartsN *a, FloatPa= rtsN *b, =20 /* All the NaN cases */ if (unlikely(ab_mask & float_cmask_anynan)) { - return parts_pick_nan(a, b, s); + return partsN(pick_nan)(a, b, s); } =20 if ((ab_mask & float_cmask_denormal) && b->cls !=3D float_class_zero) { @@ -890,7 +890,7 @@ static FloatPartsN *partsN(modrem)(FloatPartsN *a, Floa= tPartsN *b, =20 /* All the NaN cases */ if (unlikely(ab_mask & float_cmask_anynan)) { - return parts_pick_nan(a, b, s); + return partsN(pick_nan)(a, b, s); } =20 /* Inf % N; N % 0 */ @@ -1592,7 +1592,7 @@ static FloatPartsN *partsN(minmax)(FloatPartsN *a, Fl= oatPartsN *b, return is_nan(a->cls) ? b : a; } =20 - return parts_pick_nan(a, b, s); + return partsN(pick_nan)(a, b, s); } =20 if (ab_mask & float_cmask_denormal) { --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501679; cv=none; d=zohomail.com; s=zohoarc; b=Dgtd7i2kIOlTmf4G5ffhtCfW+QIsZRvCWdN0NF48mFhADnjNEOgWKNpziyDHdw+MiL496wOPVqatV4dHJxCQYYyqjaQeHWOM3P+H5tucfE/D2qiC0AwN7cffxveCVKCvdctXsivbX9VAf22VQYZ8/WK/uWq/bOhRWoIFdcExS1o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501679; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=NZD0khzkwD8RJeG8Qc7wc3fw+bqT32NvxbKgOISP26Y=; b=PTRGjCBGd0jsLEBg4xY4bnNXaRBvQHokrRDz/XU52Ow5rrdmxIYf0U7ql1dg7nWIIjE3v8PXVLYi+uXQSOgosT5XKpe7NMqJ71YX9yY1R9iUJ+PzwFwy8RDES6sj46jIxrghzR/NRfwngU077LX2gzVUuYHIezmriDO6QISiwXQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501679607296.02977651496985; Wed, 29 Apr 2026 15:27:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDLN-00007f-HM; Wed, 29 Apr 2026 18:25:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDLH-00006U-9C for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:15 -0400 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDLF-0004mo-9E for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:14 -0400 Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-35d99031e4eso159367a91.1 for ; Wed, 29 Apr 2026 15:25:12 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.25.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:25:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501512; x=1778106312; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=NZD0khzkwD8RJeG8Qc7wc3fw+bqT32NvxbKgOISP26Y=; b=D3/3LOCth4SuM+L+fihAU1ryjAusBzgi6c1vhTS2EOmfDnnDOzDHPGp78+Zg8LaoFP jH8OhJ8eC9lEl2av/PqvFuSFblU/6jQNrD61ZaswvYPsO5gHBpgEPJJ+U8Llbe1q7Pfn qpyQ0f9MeljIzm/SPYGdXqvxxynZrw6e2zlpu9GTBVn55tobZZMX9sZhOrCz2z87rNgj IL3ZIS6qae4YGErVejPGoZPLZ3YzeiDiIDzt+ysOpK3OuC30wglyJm+yeN7kVHmOcvll uQrJILNYGEbEkMV6ErUnadIec9UQNo1dm7kYv8tbZm7D0tJUSXWd6vR2zmIdFVw4g/co EbHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501512; x=1778106312; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=NZD0khzkwD8RJeG8Qc7wc3fw+bqT32NvxbKgOISP26Y=; b=UNe86r40E+per+2+rBYEwpkAn5DSPd763X17BQDRczb/zlnhLSaMQnnKB9fmBVwzfv tA+isctqf7IY4biij/DHHl1alvZMLQlhQd5feQZdUlRYbzhUvpTIL4dfv/1U66E+T5yQ +Y6RfoMm74Iq8WZaBOP0weIpzwIDzNn8WOID5mk/dEHIx+TdFmwDNPGrk1jBOjzjQRsV 02uR7ZcgAk+NVn9ouMjkcDl+uVUfevPnssegRNbipMLTC6J6t4P20KCHwOWOQsjEMr1b dNbeWhQ3mPUE8NzCOpIHtvq7q/FhS4E4WNOmSL9Ak23/oUnvvPfzsijjpIKgMG2fuxH6 LyKw== X-Gm-Message-State: AOJu0Yykug8mr1Q8lRU/7lEpsjZepS05r9uyghOR0+19kR1CCylpXfVr gZbT6mdSOOwO+R11tBnXmNUA8sGddNum9WD+ytu/1KRYTwbD+lbW17rGl9ObOd2RqikivUMvyRM BHHR/i8I= X-Gm-Gg: AeBDiescAtVFEGfViGK7loTzjpWNJC79Jp4aPCNarxM8XZ0fmgaB51RzbLba31F842N VS6HVYD4O6nzNGw5G3BnQGXHxMLnmbeLzFEESV7hyVw0bFJBGGoMB5oBD2CmbYkCAzYYuk+Lrrm r4goFR42BKsB3zegq6FeEbr7ybA2GHiONhqbShNyXXjC9wGjHX3FYa4b4LCw/9TprjzMT++MpGG Yor0DgyaW4tNz9Y43Nxm5/1W22WWDDwV47KfEBNu5C5ZyhiLiOxpjEC+MB28z/Ja0hy47Dz6N3o RMdFzUrvEZPtdWmSj66farhTBH/tPGW+jRK8Q5lCUSYEtHC1zL22pdtVSiv8OFI9ScC4cpxB/Kw QUASNUqR9+XvPdlUkSk6o4uNhzAJqFog4I9k/7y5y1cZ+RjID1n/pUdDsWVLHZrzIBbT1UQA6Ea Dy1tgiE4WpNxLYB+eetSoSpg/bW/eQnQ0qULlHmD9F X-Received: by 2002:a17:90a:c10f:b0:35f:b7c1:faad with SMTP id 98e67ed59e1d1-364c317d9c6mr149994a91.25.1777501511732; Wed, 29 Apr 2026 15:25:11 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 08/48] fpu: Drop parts_pick_nan_muladd Date: Thu, 30 Apr 2026 08:24:05 +1000 Message-ID: <20260429222445.26301-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102b; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501679854158500 Use partsN() at the only call site. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 12 ------------ fpu/softfloat-parts.c.inc | 2 +- 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 98ddc00936..e5d8b9573a 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -779,18 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const F= loatParts128 *p) FloatParts128 *: parts128_##NAME, \ FloatParts256 *: parts256_##NAME) =20 -static FloatParts64 *parts64_pick_nan_muladd(FloatParts64 *a, FloatParts64= *b, - FloatParts64 *c, float_status= *s, - int ab_mask, int abc_mask); -static FloatParts128 *parts128_pick_nan_muladd(FloatParts128 *a, - FloatParts128 *b, - FloatParts128 *c, - float_status *s, - int ab_mask, int abc_mask); - -#define parts_pick_nan_muladd(A, B, C, S, ABM, ABCM) \ - PARTS_GENERIC_64_128(pick_nan_muladd, A)(A, B, C, S, ABM, ABCM) - static void parts64_add_normal(FloatParts64 *a, FloatParts64 *b); static void parts128_add_normal(FloatParts128 *a, FloatParts128 *b); static void parts256_add_normal(FloatParts256 *a, FloatParts256 *b); diff --git a/fpu/softfloat-parts.c.inc b/fpu/softfloat-parts.c.inc index 1a2eb7852d..e1ce2be924 100644 --- a/fpu/softfloat-parts.c.inc +++ b/fpu/softfloat-parts.c.inc @@ -696,7 +696,7 @@ static FloatPartsN *partsN(muladd_scalbn)(FloatPartsN *= a, FloatPartsN *b, * off to the target-specific pick-a-NaN routine. */ if (unlikely(abc_mask & float_cmask_anynan)) { - return parts_pick_nan_muladd(a, b, c, s, ab_mask, abc_mask); + return partsN(pick_nan_muladd)(a, b, c, s, ab_mask, abc_mask); } =20 if (flags & float_muladd_negate_c) { --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501625; cv=none; d=zohomail.com; s=zohoarc; b=eS2hAqBfeYq1TklOyA/nXXO0rGP7fqgGWBRlmb1zM3s9eoHrb/hPGPu5/kkHvWCqbny3qyqwpL+WRcuzESuqTu6r43aY5t0DtnxlMFdrbPZ8H/neglXXlwx2imIbBcYVQ3RF6Lv1PSIsAcXdbIjKTQKKfvpvwjOSfxQkakJ7EE8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501625; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=5FtnIdI9pw6cJ7qbwPdimy6vNdGRmRCr1/CjHQQ42OQ=; b=kVTeBNdoyEvDQzJu38Vb1i6hbdxbpkt5sx3F5Xuro9pbF6i+2L5ciLko2Ui16ueuDrj4bQHvWFRsHMD/wgRI2+wiiVb8AIjGcu55Zrhrlv36I43t4ZwAUMsKULgWi1oItDaqYZB9FmSq6bHD3ur0jDVDv5PeWZbsLx73eOriIPY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501625928622.1465116994849; Wed, 29 Apr 2026 15:27:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDLO-00007g-7W; Wed, 29 Apr 2026 18:25:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDLJ-00006l-JE for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:17 -0400 Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDLI-0004nC-41 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:17 -0400 Received: by mail-pj1-x1031.google.com with SMTP id 98e67ed59e1d1-362e50b4641so142740a91.0 for ; Wed, 29 Apr 2026 15:25:15 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.25.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:25:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501515; x=1778106315; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5FtnIdI9pw6cJ7qbwPdimy6vNdGRmRCr1/CjHQQ42OQ=; b=JzUGKwiJWwaW0WriRvv9kjDx7iYfEF1DCkPNqc9vCDsenskPFsl0G6DFYYfULy+AFv d+uGbBjAvpKzS9Sy45vUi2H2yRRxGTWFcvAIhasUJwx1GlpCczm6HC1HTS+s0nIF06HT 4r8wpFioxOxD5YNBG0MPmLioYGEwyH5LpCl7nWFdPYDrby9ptZi3995OHreJSJiM4QRc T2mCk/8bEStjT97GqMOMVYqtfv7OySig+07AF7eiNFRIwN3o0tud34RGUp5RGaD2rvb1 Mgdo/5oV+RLJRG9MGZvDmi2E8sGc7bzv9ZrPXYr46vHzb8qo7N0XE3wwSVmipN7DVBOl 6Ldg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501515; x=1778106315; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=5FtnIdI9pw6cJ7qbwPdimy6vNdGRmRCr1/CjHQQ42OQ=; b=EETRPegBJddCJx7kJ9rCs0OMlfrv2FovNVBG1dLevti/81W0lexh/DiyFlE9M7NYdk RXPDlSmxexLDYZI3NpUMoqg//cdd5twxYJ6kgp03t7d8IzPEQYBKlXPs7D1880XVHQcQ JNwu+0bF77sQWaI4riwjJFgckxlAreo/QFFzNr1UFcSNgCei7kv70YFJQvUhT+lJ0M3B Lgk73PQLR09HFkKfbrO4Ws55ORpFb95iQcZQ3N1vt6SZLNmpDDTHKscBzbAUfZVD0/aE Lp0TZkADd/TgLKrHU+gZdVbvjRXA8NRaOORsEkoUzAb9p4rJ14Z5qK/V3X38bfd0Iqsx uxKA== X-Gm-Message-State: AOJu0Yw0j9r+uuakqVmKLFnmxqObnY6r1DJnGK0R8jdpiRikGWFp9B91 C7a9EDXKfZHvK7Wn/QkDMBHFcorTPIYjP++n/KYXOkunDIbcFLd4QoqDuj74BHzcGmMn00tNxH1 m2CiAtFg= X-Gm-Gg: AeBDievZfle99FjClOGL8Ry9DOrB8dBYrQ6/T+GpJZREZ1647xSqZOS1kf8fyDUqMZ1 nr8Mwu8HD5D3CZWJ8h6ZFYYEegfgA0p8OISmMbpBZTbVcDS88SpB2L6L0Q1IwAo+jGH7uvqF7JV lHv8ipETC/3YbcXbv2EhcyIIogh0n0K76VUPSzacg0QexoHJGOLdYjqXS7ZEk6Hnv2w5f1JJPvl VGVBFO12nD84mU611YBLK6slzpaq5TIl3D3Hk+Z0Pbj/3R2nyY/AvM+KGl4pt1TMz3Hw69Op2RP WOMWX54rbXgGIPX2gs+BB5VkIdZUMLSafsSLlDayax2+zAOqLG58nfuSFNlZw51EFyl9FopI0mS 4KAfjefL5QSGfJP+v7GgIw8e+gSglmKxVMZD31yEKhbPpULQhM6VaApSMwiud3YyaAd92o6NXxT SO0flXZ7PudnYahMRbu0AleH/+fshcRG8SKqHZf5Ko X-Received: by 2002:a17:90b:5890:b0:35f:b5df:449 with SMTP id 98e67ed59e1d1-364c30e18f0mr183144a91.21.1777501514530; Wed, 29 Apr 2026 15:25:14 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 09/48] fpu: Reverse the order of softfloat-parts* inclusions Date: Thu, 30 Apr 2026 08:24:06 +1000 Message-ID: <20260429222445.26301-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1031; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1031.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501626621154100 Define the widest addition primitives first, so that they're already defined before being used by the narrower muladd primitive. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index e5d8b9573a..aa96ac530d 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -1638,14 +1638,11 @@ static const uint16_t rsqrt_tab[128] =3D { #define FloatPartsN glue(FloatParts,N) #define FloatPartsW glue(FloatParts,W) =20 -#define N 64 -#define W 128 +#define N 256 =20 #include "softfloat-parts-addsub.c.inc" -#include "softfloat-parts.c.inc" =20 #undef N -#undef W #define N 128 #define W 256 =20 @@ -1654,9 +1651,11 @@ static const uint16_t rsqrt_tab[128] =3D { =20 #undef N #undef W -#define N 256 +#define N 64 +#define W 128 =20 #include "softfloat-parts-addsub.c.inc" +#include "softfloat-parts.c.inc" =20 #undef N #undef W --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501728; cv=none; d=zohomail.com; s=zohoarc; b=IvP0L/LJqEaiY/EA/wDlFDLJNkRfw1CXqXa5D33hVcNL7e13b1+flquOK4vuHfbFo0UousnSbzce1EOZZlT7cH65QkSClWiEHXddbvFwqZ1LoLAJcDs5P8Q07y3PHCG1IKwqtOBRxQDs0VaLRLp6G8JeYFLPBk1fVDv8hUiqWno= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501728; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Gs1If9ZJokfA4hSDIZvghA/pVNIqspXTSw4VViLR5Xw=; b=V/04m2a9pSJYCIFTLtDV3AeD19zQ1vcXpqSRLIjkWO3tIZ48/JCN1WAP5mJdZWKr2v64so7JrbcHlKM2gddAyFd5Fe0+xf2fKTRTD+5tK5gec8jEUEdwDV3ENd7rvrlGxzFbE2I7XO0HQ9Z4yWwJbem3QdPFL9z1CFI/vJWcA9w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501728022835.2857106271745; Wed, 29 Apr 2026 15:28:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDLQ-00008j-Gj; Wed, 29 Apr 2026 18:25:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDLM-00007M-Ln for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:20 -0400 Received: from mail-pj1-x102e.google.com ([2607:f8b0:4864:20::102e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDLK-0004nm-Vt for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:20 -0400 Received: by mail-pj1-x102e.google.com with SMTP id 98e67ed59e1d1-35d94f4ee36so127147a91.3 for ; Wed, 29 Apr 2026 15:25:18 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.25.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:25:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501517; x=1778106317; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Gs1If9ZJokfA4hSDIZvghA/pVNIqspXTSw4VViLR5Xw=; b=VJhzmCz5/3Zs5NrCukAr8F5vz5IcDVZAUmJyVgoKyfAgFYH0LSfIQ1oRhszHPf0Xhy i0EQBg9l6OYVb7DnoL8a2w/voo+JdLHHTzEaE8+7p5e9s5t+Am5dqOCmiUWqZroMiaE8 XvwfuH81FmdXQ1xrOrJkVOdZ7rwrYvlW3jqplsorH7vpjkk26WeCpEOxsmsv3TzU3dlS t1+AQJsOFris/5ienuQP7rzPNeXSpkIg+29TktrqvxXBv9s9uiLp9fZsYry+7FViZy4h 7PTMtfaDddeiEBBWje6JXBs6K5On4A36yEET/FLRWHvmiOGUL5HXJRcodAols8qGLyD1 xs2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501517; x=1778106317; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Gs1If9ZJokfA4hSDIZvghA/pVNIqspXTSw4VViLR5Xw=; b=stPWpet4Xeo3h9wDIhizajefL5DD2ZXOpc5tcOCP8elc7H+yk8cMphB+6hR51CSf8u MchUcT22TvQy2D/OKCSG0vkzpz+kB1dRiSJhdJBVg1LgXqJ43d+893zhzGBb8dR5/Fay LuSjC4qHfKkfwXcerqXH53He08qDMD9+JStUq8ov0rSDDL825Z6AzZ84DKNa8xfXaNR3 sR+dihiM7LtKilNRvC1vjjaM+EvK94Ox8ar7A3GLl64zBdOKNyTuXknLN8BYPxqUMkBK 9DcGxWzWJk1RkcV0M6eg8QhoArzZAc1NSYDJXA0cCxy8UY1qJiZyYOZlsMQKUcdacA0Y UsvA== X-Gm-Message-State: AOJu0YwLdr3UKqFXoI/ySsnQUK+PBKz71ip05TdSNXjBYGhMv3v2BAo1 3bMhehuH7RK7UoKPgqIw7zbFZRyiYmFmf3zt2/13gCKVjQaHPHv4xbHAMBxwWm5kgok1EHTv77E 6IoCWfqU= X-Gm-Gg: AeBDieuDb5WWjGqjddept2I2YgWHjoTyHVz7gUiGLUebMAiNJ4BUAiYHSrodR1j5heM pEBkyS13mqKiZg31UWkWHaPb1wctKzvRpfmDSiKzwn0k/ZehFb+Rxemd3ag8g3SI8Z77gb5EP6i 7UmhhJQlsYLKW2Ps4G0yAID7wRGP+dM/jJAQCxpeUfSgk+8exNwtLSkYT8+XZ9YQ4DanoJH6CaU XxvhZ4CqYGFO0S/E9CdLoqaU3tdtZU7yHKp95iAPNEYp0WNKab6UU5BP1s6ChiaIA1s4Fj14645 z2EWYxR7tqdL9w+ePwrF5SVhFSqhiwcWGUCSHRDsMFcZyi2f9i43KsPN6FVUoYR5Nf2PWsEvFZs pI5CWSBTp0epUDIGsQ4ZZzQTAHt+dVijhZgwpd+Y7kfLVo8Yaal/8TIYF8R7ANiaejahddCT29M 2iywI67UUV9vtl/kuttWgyUOwYnXsfY89qmmRrM7kC X-Received: by 2002:a17:90b:2742:b0:35e:5ae3:2993 with SMTP id 98e67ed59e1d1-364c30e2c5dmr164663a91.15.1777501517295; Wed, 29 Apr 2026 15:25:17 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 10/48] fpu: Drop parts_{add,sub}_normal Date: Thu, 30 Apr 2026 08:24:07 +1000 Message-ID: <20260429222445.26301-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102e; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501730016158500 Drop the forward declarations and the _Generic macros. Add partsW() for use by muladd_scalbn. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 16 ++-------------- fpu/softfloat-parts.c.inc | 12 ++++++------ 2 files changed, 8 insertions(+), 20 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index aa96ac530d..117c335d66 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -779,20 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const F= loatParts128 *p) FloatParts128 *: parts128_##NAME, \ FloatParts256 *: parts256_##NAME) =20 -static void parts64_add_normal(FloatParts64 *a, FloatParts64 *b); -static void parts128_add_normal(FloatParts128 *a, FloatParts128 *b); -static void parts256_add_normal(FloatParts256 *a, FloatParts256 *b); - -#define parts_add_normal(A, B) \ - PARTS_GENERIC_64_128_256(add_normal, A)(A, B) - -static bool parts64_sub_normal(FloatParts64 *a, FloatParts64 *b); -static bool parts128_sub_normal(FloatParts128 *a, FloatParts128 *b); -static bool parts256_sub_normal(FloatParts256 *a, FloatParts256 *b); - -#define parts_sub_normal(A, B) \ - PARTS_GENERIC_64_128_256(sub_normal, A)(A, B) - static FloatParts64 *parts64_addsub(FloatParts64 *a, FloatParts64 *b, float_status *s, bool subtract); static FloatParts128 *parts128_addsub(FloatParts128 *a, FloatParts128 *b, @@ -1635,6 +1621,7 @@ static const uint16_t rsqrt_tab[128] =3D { }; =20 #define partsN(NAME) glue(glue(glue(parts,N),_),NAME) +#define partsW(NAME) glue(glue(glue(parts,W),_),NAME) #define FloatPartsN glue(FloatParts,N) #define FloatPartsW glue(FloatParts,W) =20 @@ -1660,6 +1647,7 @@ static const uint16_t rsqrt_tab[128] =3D { #undef N #undef W #undef partsN +#undef partsW #undef FloatPartsN #undef FloatPartsW =20 diff --git a/fpu/softfloat-parts.c.inc b/fpu/softfloat-parts.c.inc index e1ce2be924..6e1800b117 100644 --- a/fpu/softfloat-parts.c.inc +++ b/fpu/softfloat-parts.c.inc @@ -541,7 +541,7 @@ static FloatPartsN *partsN(addsub)(FloatPartsN *a, Floa= tPartsN *b, if (a->sign !=3D b_sign) { /* Subtraction */ if (likely(cmask_is_only_normals(ab_mask))) { - if (parts_sub_normal(a, b)) { + if (partsN(sub_normal)(a, b)) { return a; } /* Subtract was exact, fall through to set sign. */ @@ -574,7 +574,7 @@ static FloatPartsN *partsN(addsub)(FloatPartsN *a, Floa= tPartsN *b, } else { /* Addition */ if (likely(cmask_is_only_normals(ab_mask))) { - parts_add_normal(a, b); + partsN(add_normal)(a, b); return a; } =20 @@ -760,8 +760,8 @@ static FloatPartsN *partsN(muladd_scalbn)(FloatPartsN *= a, FloatPartsN *b, c_widen.exp =3D c->exp; =20 if (a->sign =3D=3D c->sign) { - parts_add_normal(&p_widen, &c_widen); - } else if (!parts_sub_normal(&p_widen, &c_widen)) { + partsW(add_normal)(&p_widen, &c_widen); + } else if (!partsW(sub_normal)(&p_widen, &c_widen)) { goto return_sub_zero; } } @@ -1869,9 +1869,9 @@ static void partsN(log2)(FloatPartsN *a, float_status= *s, const FloatFmt *fmt) f.exp =3D f_exp - frac_normalize(&f); =20 if (a_exp < 0) { - parts_sub_normal(a, &f); + partsN(sub_normal)(a, &f); } else if (a_exp > 0) { - parts_add_normal(a, &f); + partsN(add_normal)(a, &f); } else { *a =3D f; } --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501670; cv=none; d=zohomail.com; s=zohoarc; b=cjuwDzw1MnsBStN5useIkg0LZuSeAF5puOcJL7rvM886Zvv8N64+GSPcefdLC/YuOhiTPtfrMKJmKnlWMYC2B9dkwLeBR8V3zhkPpK9vjNFWgDfw9YrgiUtWTiAKeQmbe9IZdWWiksoQz5Xc+mGl5NTYL2hT9iPXyyO5MqAHWiE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501670; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=fk4LVgA4H/YvbA+lA5J1oGuNn1ZmeLVjbkEn+60TJ6g=; b=gGFwpt3XpDgJna5KcOqNufasEYLj4y/2VLINGILB6/ttJurSfjhZT0QKlZ2ay1xxdiig41zaQXKxwCtSh0shKLF0JMetkFi3Dfq+HEfTFWxeLJqQoqiZjlGPpavPGctXlWvNrjmk+1YZarK9rney5NzeH4WCr2t6b7sXdXsrPg8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17775016703446.067636818327742; Wed, 29 Apr 2026 15:27:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDLR-000093-Q4; Wed, 29 Apr 2026 18:25:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDLP-00008K-U7 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:23 -0400 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDLO-0004ox-4M for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:23 -0400 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-2ad617d5b80so1706595ad.1 for ; Wed, 29 Apr 2026 15:25:21 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.25.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:25:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501520; x=1778106320; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fk4LVgA4H/YvbA+lA5J1oGuNn1ZmeLVjbkEn+60TJ6g=; b=zuIAW2XW1fAgoD533Nxz/F68EBS5lSjEIHDmUYo3IbOo0U29w/qWsKLt3c0hF7Jl6z lVxR++WJCp36rfZgnTtiugaMMK7doOT1pAzpeF0IhgnsVV63HLKfKKtyAEYV9R9KmIGd ioDSjeJU2n8SsQPQB6PgOylUawmVVx5p6i1L/lXk9I86qJdYz3z9mzD4Pl6gXeQnOrgz 1MxEavD1GA4Ou3WV37dwcCDYGo1TjRZNbzpA2jKDroKZ3YuUMRvRtPg2tUrH3+82XY9/ iHNJ1N2183rlNPCWjacfbEade0aGOXh8FCluFm4d+AarEMCx4LQwtyBPw9++tQ+2FT9a ntZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501520; x=1778106320; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=fk4LVgA4H/YvbA+lA5J1oGuNn1ZmeLVjbkEn+60TJ6g=; b=VGjR8GhkZRKgBrl1vVa3Eaq44f49uDnFO/YrQeHmem4IHQfQY9CAwUELMTevKWGc44 qqiVfaBQcby3Y6IV0Zq5aC3g3AJ2yq8QtXe0C162orbtaoejMjWIuMotB1CAux3r6JLi vPhVloXDnbPYeZSg/gKROjfa6ERQYh/Eaj2d9MiuLmCVDcGW8P4S4f/LGwO7a5BA4b0+ bV+yEBnV96g7V248ndW/npuH/wtU5KKmg3cEDyPBjLW5j3DtbZmYFs41YyLxyr+5GT3N FS5rtl0yMJq9vFAExbLmFGes3T8sEzTa9w1vbTUsH+Y7sABq+GcViI2Dua6IgvMORUvD MLzw== X-Gm-Message-State: AOJu0YxyZuC8lF6bgdHGBEtwK5A+abCsqLYBodxs4Lilqtr9UgUBAUZH mUtP8wCDDR8VeSZtfcK3tiebrgEG024Ebm6DNwhrmHmyS15mcx3OAUaN/G31GvwnSzHxXFXUeFN cNY0F4W0= X-Gm-Gg: AeBDieuIUZwsUh2AMo5CjttqbrHNMlldQVACs+BusPHtGMc+D/70uJipvlTiKv+FaJX PW9vlSKfp7BNozWhLsKbUW91wWaQml/RmfPi1THlnypexVW8d7P4Ydm5Cg26tv4PxbgTITM/oYi Qig2GClvZnSv2MzQubSQRiGlXhelwJBIiXMP3TBm9OMy/oJr5yHmphOT4hUoYIEX+3AKijZu33Y yFaFtl+1nthArvDsRuDNr3Pz9XdRaqnklYnJvxaz1vsqwHN//oP+FLblYjR37sOoP49YNQ7+kdX 8hJM1DMAThoDZhwEbemFPwMkl+Amr0pvUsRq7A7U2eNVj42wohIAMjK+u9s+Aw6Ozp9sSNMlsBp c2AWLpiaoc82Zmd4+OeABWPvxK6Yl0L64gLzMFMknlrhpfpbmejHQztE8B5ZDQ3p8y0ST6ZZlVs jmDIcM/E5hEB80gLasQr78BLBY0zck68oDCtxJR0RG X-Received: by 2002:a17:90b:2fc8:b0:364:87dd:b2c4 with SMTP id 98e67ed59e1d1-364c32aa4bdmr144060a91.25.1777501520004; Wed, 29 Apr 2026 15:25:20 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 11/48] fpu: Drop parts_addsub Date: Thu, 30 Apr 2026 08:24:08 +1000 Message-ID: <20260429222445.26301-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::634; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x634.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501671851158500 Use parts{64,128}_addsub at each call site. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 117c335d66..dc5ce53105 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -779,14 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const F= loatParts128 *p) FloatParts128 *: parts128_##NAME, \ FloatParts256 *: parts256_##NAME) =20 -static FloatParts64 *parts64_addsub(FloatParts64 *a, FloatParts64 *b, - float_status *s, bool subtract); -static FloatParts128 *parts128_addsub(FloatParts128 *a, FloatParts128 *b, - float_status *s, bool subtract); - -#define parts_addsub(A, B, S, Z) \ - PARTS_GENERIC_64_128(addsub, A)(A, B, S, Z) - static FloatParts64 *parts64_mul(FloatParts64 *a, FloatParts64 *b, float_status *s); static FloatParts128 *parts128_mul(FloatParts128 *a, FloatParts128 *b, @@ -1923,7 +1915,7 @@ float16_addsub(float16 a, float16 b, float_status *st= atus, bool subtract) =20 float16_unpack_canonical(&pa, a, status); float16_unpack_canonical(&pb, b, status); - pr =3D parts_addsub(&pa, &pb, status, subtract); + pr =3D parts64_addsub(&pa, &pb, status, subtract); =20 return float16_round_pack_canonical(pr, status); } @@ -1945,7 +1937,7 @@ soft_f32_addsub(float32 a, float32 b, float_status *s= tatus, bool subtract) =20 float32_unpack_canonical(&pa, a, status); float32_unpack_canonical(&pb, b, status); - pr =3D parts_addsub(&pa, &pb, status, subtract); + pr =3D parts64_addsub(&pa, &pb, status, subtract); =20 return float32_round_pack_canonical(pr, status); } @@ -1967,7 +1959,7 @@ soft_f64_addsub(float64 a, float64 b, float_status *s= tatus, bool subtract) =20 float64_unpack_canonical(&pa, a, status); float64_unpack_canonical(&pb, b, status); - pr =3D parts_addsub(&pa, &pb, status, subtract); + pr =3D parts64_addsub(&pa, &pb, status, subtract); =20 return float64_round_pack_canonical(pr, status); } @@ -2064,7 +2056,7 @@ static float64 float64r32_addsub(float64 a, float64 b= , float_status *status, =20 float64_unpack_canonical(&pa, a, status); float64_unpack_canonical(&pb, b, status); - pr =3D parts_addsub(&pa, &pb, status, subtract); + pr =3D parts64_addsub(&pa, &pb, status, subtract); =20 return float64r32_round_pack_canonical(pr, status); } @@ -2086,7 +2078,7 @@ bfloat16_addsub(bfloat16 a, bfloat16 b, float_status = *status, bool subtract) =20 bfloat16_unpack_canonical(&pa, a, status); bfloat16_unpack_canonical(&pb, b, status); - pr =3D parts_addsub(&pa, &pb, status, subtract); + pr =3D parts64_addsub(&pa, &pb, status, subtract); =20 return bfloat16_round_pack_canonical(pr, status); } @@ -2108,7 +2100,7 @@ float128_addsub(float128 a, float128 b, float_status = *status, bool subtract) =20 float128_unpack_canonical(&pa, a, status); float128_unpack_canonical(&pb, b, status); - pr =3D parts_addsub(&pa, &pb, status, subtract); + pr =3D parts128_addsub(&pa, &pb, status, subtract); =20 return float128_round_pack_canonical(pr, status); } @@ -2133,7 +2125,7 @@ floatx80_addsub(floatx80 a, floatx80 b, float_status = *status, bool subtract) return floatx80_default_nan(status); } =20 - pr =3D parts_addsub(&pa, &pb, status, subtract); + pr =3D parts128_addsub(&pa, &pb, status, subtract); return floatx80_round_pack_canonical(pr, status); } =20 --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501556; cv=none; d=zohomail.com; s=zohoarc; b=HAclIWB7y263W8DX41F+wm8YAva2irtNKdSeCL7rPO9hWzQoDG+VmeGkFZWTG0/8siEAy0C8M977/dzON/2MlvlGisvMzbUJKaWf4cWb82s6uD3i2wqRIW3AW6NJDvr1j325O6UmJoe+C7oFAaGc7WWaAvBj2A+k0FmE8M29PGw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501556; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=DSoFvrT/mzv0YVjtRcuYv2GRBUN8U8c5GJTtScdTrPI=; b=G+psKuKeFbOLmVB3AH2UqqBwGkNnTpEyblzkki1kTyS3obYIij//7IJdfO3qjnH7B7ipUsDzgrUIPEJyLGmG29MD7qLzxDE971RAeQMw8EOOEu4QhaKbQTX7fPA6CmGOhHNNQ3+GYQ9TkIkwIFwsUjPUuBelQ8eaNT/PA1gNpLw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177750155638147.38523758637996; Wed, 29 Apr 2026 15:25:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDLT-0000Ak-Qc; Wed, 29 Apr 2026 18:25:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDLR-00008u-JB for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:25 -0400 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDLP-0004qF-UG for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:25 -0400 Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-35dac556bb2so158791a91.1 for ; Wed, 29 Apr 2026 15:25:23 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.25.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:25:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501523; x=1778106323; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DSoFvrT/mzv0YVjtRcuYv2GRBUN8U8c5GJTtScdTrPI=; b=jopHgB5DjbUnmBFIepRHiH+E89dEHleVtEhIwgvXflV0L5eUvznnK7KnX040/UDvdF /qRBoie1AFiPrx2r/5g5j+j1bD3UdxiahU24t5X+T7Zj3W3lf0v+uMgKhwRsORmbUCZC 9yIj5hZwwjp1kFwV3FretEgE5KAvmdJ7wU3qWn6KX/1OPGjGzpiRD1PgkU3HAWxoTnN+ bfjeeGNLgrH7Bm9DUMoB675cL9W1auJTQoOcXVtjwUdKKL3TUCwtzUGnq5VrQ7XQY69t zRKswKDpWo7TEC7jNF8S6xG4lIBqkT3wlTeH7YjS7HQsugrDFQg6CzjV5DF4azwmyj9i w9tg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501523; x=1778106323; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=DSoFvrT/mzv0YVjtRcuYv2GRBUN8U8c5GJTtScdTrPI=; b=VfHMJzgal4noubC0ravDLYk3ptT6MWpoEI4148hkFq6cai6jpDW4/xJaxzN6M+YOtC Ps1DMegnK2FJJHz5gWZoKqndhNLY8//PXcXwdAEjtL874YFFN45/OAmqJ8l/xxziHc5Y 3/AnQY9Yw6E4TQ3UCjN78C9rpyNvXYGmxIOKZJ2k0efo6J1v1cKE7jDv9y8k3IBBKCBT chr8oO19nA7hsY/pvokvipsDrvzrVbK4YOJnh8U4BrsPuiwWn6KytUUXnelVcw3XpvRS bzrHky6IL+xqxXQGVU2IfzMNmWBSQbbsrC00f37Eh4XmH917vjtlXSU3kut+SicC41/E JgwQ== X-Gm-Message-State: AOJu0YwaBmlzRdAk9zzYxafsMEnVHBPGllugSHc/2D9ZNXTjQvbHK9M6 p1J79MoQ6KutW76uldmNdo3PKU5k5AQDMPKJ+waMZJ+UCsm2577QKLhl5gq4ludC1UTQFBHwAl8 YESa+vjg= X-Gm-Gg: AeBDiete8n37AK0S+PN5DnsaZa/RUM3Tr+bEZ1i6i5UQ//6Qo9f0AbjUSyXows/Rbe/ r56Q3E68+N2v3CwtNy+LPFZa05sS/0KahRVMe69VhwZ4tyIKtpo9sA/s/wHvdvhUP8JFB0QxvWL gv5xp9X4pxNlRF6qwFaeyDOlG2AmkJ8Ke2v3Hk7BRkSTP0i7Z3r4zjRAldwUdWs7GFHAxrxKm5d 0VwqiEKLIEgepKweheVPsxzqddHArgUkBwHv3OM3k8MlQx6NxbZwpZGG1/6KVaxhnFsch193Vtb XmWPTs39fSbnUE5vTqj5bEvz+eNkYiPG0Jf1Z5/8F0H7xKQa31eVI/39pfbVKnBukZpAkdces0X Fvl9iT5fez9K2g/zgEVVbOabGZ5nVON68n8R1wGsf7Os4WlHGfstshdFo+uWSw34FVb5cYxaAE5 61NSpuQY3L6eJFXriMGeVmfRUBRpGjyAjYMLI22M+i X-Received: by 2002:a17:90b:57e5:b0:35d:a5cb:95c1 with SMTP id 98e67ed59e1d1-364c3149065mr155825a91.23.1777501522622; Wed, 29 Apr 2026 15:25:22 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 12/48] fpu: Drop parts_mul Date: Thu, 30 Apr 2026 08:24:09 +1000 Message-ID: <20260429222445.26301-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102b; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501557389158500 Use parts{64,128}_mul at each call site. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index dc5ce53105..8adc73c863 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -779,14 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const F= loatParts128 *p) FloatParts128 *: parts128_##NAME, \ FloatParts256 *: parts256_##NAME) =20 -static FloatParts64 *parts64_mul(FloatParts64 *a, FloatParts64 *b, - float_status *s); -static FloatParts128 *parts128_mul(FloatParts128 *a, FloatParts128 *b, - float_status *s); - -#define parts_mul(A, B, S) \ - PARTS_GENERIC_64_128(mul, A)(A, B, S) - static FloatParts64 *parts64_muladd_scalbn(FloatParts64 *a, FloatParts64 *= b, FloatParts64 *c, int scale, int flags, float_status *s); @@ -2149,7 +2141,7 @@ float16 QEMU_FLATTEN float16_mul(float16 a, float16 b= , float_status *status) =20 float16_unpack_canonical(&pa, a, status); float16_unpack_canonical(&pb, b, status); - pr =3D parts_mul(&pa, &pb, status); + pr =3D parts64_mul(&pa, &pb, status); =20 return float16_round_pack_canonical(pr, status); } @@ -2161,7 +2153,7 @@ soft_f32_mul(float32 a, float32 b, float_status *stat= us) =20 float32_unpack_canonical(&pa, a, status); float32_unpack_canonical(&pb, b, status); - pr =3D parts_mul(&pa, &pb, status); + pr =3D parts64_mul(&pa, &pb, status); =20 return float32_round_pack_canonical(pr, status); } @@ -2173,7 +2165,7 @@ soft_f64_mul(float64 a, float64 b, float_status *stat= us) =20 float64_unpack_canonical(&pa, a, status); float64_unpack_canonical(&pb, b, status); - pr =3D parts_mul(&pa, &pb, status); + pr =3D parts64_mul(&pa, &pb, status); =20 return float64_round_pack_canonical(pr, status); } @@ -2208,7 +2200,7 @@ float64 float64r32_mul(float64 a, float64 b, float_st= atus *status) =20 float64_unpack_canonical(&pa, a, status); float64_unpack_canonical(&pb, b, status); - pr =3D parts_mul(&pa, &pb, status); + pr =3D parts64_mul(&pa, &pb, status); =20 return float64r32_round_pack_canonical(pr, status); } @@ -2220,7 +2212,7 @@ bfloat16_mul(bfloat16 a, bfloat16 b, float_status *st= atus) =20 bfloat16_unpack_canonical(&pa, a, status); bfloat16_unpack_canonical(&pb, b, status); - pr =3D parts_mul(&pa, &pb, status); + pr =3D parts64_mul(&pa, &pb, status); =20 return bfloat16_round_pack_canonical(pr, status); } @@ -2232,7 +2224,7 @@ float128_mul(float128 a, float128 b, float_status *st= atus) =20 float128_unpack_canonical(&pa, a, status); float128_unpack_canonical(&pb, b, status); - pr =3D parts_mul(&pa, &pb, status); + pr =3D parts128_mul(&pa, &pb, status); =20 return float128_round_pack_canonical(pr, status); } @@ -2247,7 +2239,7 @@ floatx80_mul(floatx80 a, floatx80 b, float_status *st= atus) return floatx80_default_nan(status); } =20 - pr =3D parts_mul(&pa, &pb, status); + pr =3D parts128_mul(&pa, &pb, status); return floatx80_round_pack_canonical(pr, status); } =20 @@ -5443,7 +5435,7 @@ float32 float32_exp2(float32 a, float_status *status) float_raise(float_flag_inexact, status); =20 float64_unpack_canonical(&tp, float64_ln2, status); - xp =3D *parts_mul(&xp, &tp, status); + xp =3D *parts64_mul(&xp, &tp, status); xnp =3D xp; =20 float64_unpack_canonical(&rp, float64_one, status); @@ -5451,7 +5443,7 @@ float32 float32_exp2(float32 a, float_status *status) =20 float64_unpack_canonical(&tp, float32_exp2_coefficients[i], status= ); rp =3D *parts_muladd_scalbn(&tp, &xnp, &rp, 0, 0, status); - xnp =3D *parts_mul(&xnp, &xp, status); + xnp =3D *parts64_mul(&xnp, &xp, status); } =20 return float32_round_pack_canonical(&rp, status); --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501679; cv=none; d=zohomail.com; s=zohoarc; b=YG9jPePrEBRVtt0UmqpFx/2Le+5g8oDkQDVOi1KJhebeqsh+xbiJnWgTYzai/1XpjHjc7X0IZsryJzHGIUdrF6ltL+8lfGLf1NV5mlnwbW2cGcxs/h1tZd077nJaD3rAx8i69z3uHpgwiQq9bP4b9xJfUGeBvugjckE/fMQKehI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501679; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=BNhUQubv0Ujs2Q4sfxENZ0/GvrdtYcMc/gJ6VN/sHJ4=; b=aV3hxpMPfW1lZl/lr9DTgUPPGO605spZKSfG/IffLpHGmK5xYTYSNNlKp6Buy8Cv7Vr4iTcVG626r5Wu+0KucKuLFoGTh0z3hikqXVUGV71KqYA5RJ3Dtir+u6yPxF3OxcF9lzk0yVZ3O21vJibHwkX/RkHSuXS8RKntS5NVMYw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501679665387.1005844831493; Wed, 29 Apr 2026 15:27:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDLh-0000Hk-OX; Wed, 29 Apr 2026 18:25:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDLU-0000BL-Ql for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:33 -0400 Received: from mail-pj1-x102f.google.com ([2607:f8b0:4864:20::102f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDLS-0004qc-OB for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:28 -0400 Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-35d95017a68so153354a91.3 for ; Wed, 29 Apr 2026 15:25:26 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.25.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:25:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501525; x=1778106325; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=BNhUQubv0Ujs2Q4sfxENZ0/GvrdtYcMc/gJ6VN/sHJ4=; b=kNKiDoVTgTiCEqFWyyq3ctUlLd7yJOL88mT8PoWV7DSePx+NaIOxQ8AD41RfEOBSjk VRbEHeuq/okx+wOrb1Uf6l4VVBC4t9kq0ittWmljLszrVyOu8O8OHijAOK6umZihwpT2 cApjqf/MD4IjDt1y6TqPIqD+HYXrfXqp7kor5Lm5gxqDW8BA4wUBSTCw50oJxzwG0Npp TWtlXx5eLJ0mEYINyk/sGLn6IoypK48k60sn3efTLjXVHXEj5eoUMdxGYExeRE1hq57s rqwcwfBeKuXVC1JdPx2VuNF+jx+MSOsxtq8ZpOWBQK9/4SnQBdyvhLDtB3+OgI76WiE9 zm2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501525; x=1778106325; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=BNhUQubv0Ujs2Q4sfxENZ0/GvrdtYcMc/gJ6VN/sHJ4=; b=QtqDKEdMpoSG9Lov2XVGpgYWEaVS9OLKhgLlTDC9DxQNfE+xRr2S4bg8+U+RmhHB9q X9GiXjqID7Hld3d7KGG+dffyQBtsLx7tzLewkedU5wInlLHUhiRnys7TViBzNeFBuV1F Wi33rUWA9F5d2zKhgyPKSN7eMmrr5m8D8YNv2d+l+KAQl3mbjpA10MhaeFIqRVdVh5nn cj9CgymDdfDJ5b3Slqq+0S/rAS9iuUBYyKTLkefXHcY31miis4ncf1wFKay7iY0d8oBO g573WrSxqQey6OiJ+xrdbjjvJyizYO9l4JxgNpLsG6nmrwGz6OqTCLNs4HITtPQSdRmb hBFw== X-Gm-Message-State: AOJu0Yz73RoqbAv8vT5uQuopPvoXQuG6ZA/6f0I1cmzSrQmCuO5whGXa p/QF0YFJy0YZ8U1mAN2igde3f37++nHA6g1zpyRNk/Mx5tbKTeeGNM+ex515osIs6aWvfGgN7Kh odomq3nQ= X-Gm-Gg: AeBDieuFC/moTv9yYwJPQZDryK2LsxsqC36aAHBcgN/ncC50KUOwqrqUt7zCqt4hSJ5 a/XM9DINskb1YQ3V541n7OjLLfQGxJLn9YENGjLOfv1ShFklgGw38U8EOP1Iw5dNNwg8Rjjz0Po oS7/gnCJfx9EtTKYIKuQf+eIaABN89YsFZiIOiQpu0BoAssWJ3m8W4UPv/bWE4MHeUY8go9e8h4 UojZn638DvsWMh8Ybxi+wNEWmZ+2zO6uT/6l6qsU+YwWDvSO4WDvlSuRj8dyYneIZVTZX01pSFI dgAsMqzVmm6cL2USF2Y2xja1AgsI718niPKzk/qI8tjS95IXLGWJGMN3Vm3oV+aaSnhSPmHJpdX HdvIwIXJLGw7uU0vmkF+3EL8D7I7nTHt43L3uqrbATsMPX0gh82exOVmO/9T58/k+jWJu0WB/F6 Y96Hpzq1iKgwrsLxNCAbouHlkO3miPaRlUOcoxyiIl X-Received: by 2002:a17:90b:264b:b0:35d:a380:6d1a with SMTP id 98e67ed59e1d1-364c2f2e00bmr184565a91.2.1777501525236; Wed, 29 Apr 2026 15:25:25 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 13/48] fpu: Drop parts_muladd_scalbn Date: Thu, 30 Apr 2026 08:24:10 +1000 Message-ID: <20260429222445.26301-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102f; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501681383154100 Use parts{64,128}_muladd_scalbn at each call site. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 8adc73c863..aa62fea47d 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -779,16 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const F= loatParts128 *p) FloatParts128 *: parts128_##NAME, \ FloatParts256 *: parts256_##NAME) =20 -static FloatParts64 *parts64_muladd_scalbn(FloatParts64 *a, FloatParts64 *= b, - FloatParts64 *c, int scale, - int flags, float_status *s); -static FloatParts128 *parts128_muladd_scalbn(FloatParts128 *a, FloatParts1= 28 *b, - FloatParts128 *c, int scale, - int flags, float_status *s); - -#define parts_muladd_scalbn(A, B, C, Z, Y, S) \ - PARTS_GENERIC_64_128(muladd_scalbn, A)(A, B, C, Z, Y, S) - static FloatParts64 *parts64_div(FloatParts64 *a, FloatParts64 *b, float_status *s); static FloatParts128 *parts128_div(FloatParts128 *a, FloatParts128 *b, @@ -2256,7 +2246,7 @@ float16_muladd_scalbn(float16 a, float16 b, float16 c, float16_unpack_canonical(&pa, a, status); float16_unpack_canonical(&pb, b, status); float16_unpack_canonical(&pc, c, status); - pr =3D parts_muladd_scalbn(&pa, &pb, &pc, scale, flags, status); + pr =3D parts64_muladd_scalbn(&pa, &pb, &pc, scale, flags, status); =20 /* Round before applying negate result. */ parts64_uncanon(pr, status, &float16_params, false); @@ -2281,7 +2271,7 @@ float32_muladd_scalbn(float32 a, float32 b, float32 c, float32_unpack_canonical(&pa, a, status); float32_unpack_canonical(&pb, b, status); float32_unpack_canonical(&pc, c, status); - pr =3D parts_muladd_scalbn(&pa, &pb, &pc, scale, flags, status); + pr =3D parts64_muladd_scalbn(&pa, &pb, &pc, scale, flags, status); =20 /* Round before applying negate result. */ parts64_uncanon(pr, status, &float32_params, false); @@ -2300,7 +2290,7 @@ float64_muladd_scalbn(float64 a, float64 b, float64 c, float64_unpack_canonical(&pa, a, status); float64_unpack_canonical(&pb, b, status); float64_unpack_canonical(&pc, c, status); - pr =3D parts_muladd_scalbn(&pa, &pb, &pc, scale, flags, status); + pr =3D parts64_muladd_scalbn(&pa, &pb, &pc, scale, flags, status); =20 /* Round before applying negate result. */ parts64_uncanon(pr, status, &float64_params, false); @@ -2459,7 +2449,7 @@ float64 float64r32_muladd(float64 a, float64 b, float= 64 c, float64_unpack_canonical(&pa, a, status); float64_unpack_canonical(&pb, b, status); float64_unpack_canonical(&pc, c, status); - pr =3D parts_muladd_scalbn(&pa, &pb, &pc, 0, flags, status); + pr =3D parts64_muladd_scalbn(&pa, &pb, &pc, 0, flags, status); =20 /* Round before applying negate result. */ parts64_uncanon(pr, status, &float32_params, false); @@ -2477,7 +2467,7 @@ bfloat16 QEMU_FLATTEN bfloat16_muladd(bfloat16 a, bfl= oat16 b, bfloat16 c, bfloat16_unpack_canonical(&pa, a, status); bfloat16_unpack_canonical(&pb, b, status); bfloat16_unpack_canonical(&pc, c, status); - pr =3D parts_muladd_scalbn(&pa, &pb, &pc, 0, flags, status); + pr =3D parts64_muladd_scalbn(&pa, &pb, &pc, 0, flags, status); =20 /* Round before applying negate result. */ parts64_uncanon(pr, status, &bfloat16_params, false); @@ -2495,7 +2485,7 @@ float128 QEMU_FLATTEN float128_muladd(float128 a, flo= at128 b, float128 c, float128_unpack_canonical(&pa, a, status); float128_unpack_canonical(&pb, b, status); float128_unpack_canonical(&pc, c, status); - pr =3D parts_muladd_scalbn(&pa, &pb, &pc, 0, flags, status); + pr =3D parts128_muladd_scalbn(&pa, &pb, &pc, 0, flags, status); =20 /* Round before applying negate result. */ parts128_uncanon(pr, status, &float128_params, false); @@ -5442,7 +5432,7 @@ float32 float32_exp2(float32 a, float_status *status) for (i =3D 0 ; i < 15 ; i++) { =20 float64_unpack_canonical(&tp, float32_exp2_coefficients[i], status= ); - rp =3D *parts_muladd_scalbn(&tp, &xnp, &rp, 0, 0, status); + rp =3D *parts64_muladd_scalbn(&tp, &xnp, &rp, 0, 0, status); xnp =3D *parts64_mul(&xnp, &xp, status); } =20 @@ -5522,8 +5512,8 @@ static void parts_s390_divide_to_integer(FloatParts64= *a, FloatParts64 *b, =20 /* Compute precise remainder */ r_precise_buf =3D *b; - r_precise =3D parts_muladd_scalbn(&r_precise_buf, n, a, 0, - float_muladd_negate_product, statu= s); + r_precise =3D parts64_muladd_scalbn(&r_precise_buf, n, a, 0, + float_muladd_negate_product, sta= tus); =20 /* Round remainder to the target format */ *r =3D *r_precise; --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501573; cv=none; d=zohomail.com; s=zohoarc; b=fwNWB3lTxuc33Uw7yB6+DbWkGGn8TejuwXk4j+qjfhHgOuLg9V7+9JCzJo6gwjwkQhd76hXENGaUXd9/JEbbszCfFZJFTzaQyuWprZhJ5NLC2KMkNo2is7Ed59I5EjtXV/Rtj770xXlDIpIBxkaQL/98pVjr2Uqbv7Vlh7gduBo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501573; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=KN4/YGxHVfwaOoI/7DFEuWGTPCBqoJHvWm0vlCiWTg8=; b=LxDmIALToVIQgVfHb0G8pgVgWxsgsr69XosISHB7l2ayT6vw3egDWC70frXgBY509LzKB1AkurP5WZgIyBfniCj4nwxg/RpPs45Xjp5Lurf7jdvnWExJ/0xY6V2+QNCYAszUMYvJXopWrN5/luzRssupQ1/lCzRcGe0zgZbMMqk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501573107292.577476188668; Wed, 29 Apr 2026 15:26:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDLk-0000Nj-Lv; Wed, 29 Apr 2026 18:25:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDLX-0000BQ-3P for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:33 -0400 Received: from mail-pj1-x1029.google.com ([2607:f8b0:4864:20::1029]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDLV-0004sJ-7p for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:30 -0400 Received: by mail-pj1-x1029.google.com with SMTP id 98e67ed59e1d1-35fb7c1a455so71867a91.3 for ; Wed, 29 Apr 2026 15:25:28 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.25.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:25:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501528; x=1778106328; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KN4/YGxHVfwaOoI/7DFEuWGTPCBqoJHvWm0vlCiWTg8=; b=MriWG1a2VBX9lrwTdel/YnooHge4ClSu1Z/sRNjqRct9GZvmrr3+nOBvGxtGhoxlB2 q0YTd4DX06L3hCDQVATYD7lV4KA0oELKWVwnB0GKSiAJaSjweWkI0+K3Wp/8CifgKHbD 9W1ltcqM/b9FXpE6gqvETPZMLztkvwCc+HtUpPlMnr2gN9+rEfaHkLlNIOBFWXD5Fm8h 5A9UkVum37GSMlhx9lzmdoeNlL8bkh36Y/PSaC/LkzRCbtzFO6ByJo5YFXx1Ux54TUXq Oy4m1eRGVgoLyPLOYKSrPrSVeQBz4v7xXe5+flkV2uEDK4tKQ0Gn1ADdJ4O5IyZqtxjK pBkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501528; x=1778106328; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=KN4/YGxHVfwaOoI/7DFEuWGTPCBqoJHvWm0vlCiWTg8=; b=V+2Zo5d/jyVIMQE23xx5YbT+ixSdgsVPK9l7yJ12AKtB/I9W3TFPrE888NX93lVlXf wW8UXEnE1HF5wJ2gS3I40Z1IDH6jOJNMOLT0zTYj5pywBMjF2v23VUICfU++2In0PeUV vwwPgtg9ZaXv298gBfdbt2YGFrhknajgjhmcrmLkBIzSRsdEuMtlBNVuN8URRIa5zAId KwzhO2IP8efF61I+5RW98+71H6TW3w5msnOKjaPW6VDoezcWGfuNFpXf6TNRMOrrFAWj XmgUY77lO6Lt/USTehgEnvgwx/gS70nqKssMAzrWzELTZfUYnj60zwLL0iDURe6uAuuf DY2g== X-Gm-Message-State: AOJu0YylsEWeWjNYRS8Sf1wDy0FsLNUxiqvM/hE6y7SjaBNAEwzPOK7n bmGriLD18zyC6YydPdVOKZ7xE13v/fG+OOwOrRtPRRPTtS8dAOVxcWpu2vwDfAAIjjGFNft5ct3 Y/m3/qCM= X-Gm-Gg: AeBDiesXUod6okbgw1bXFEcH/ke88B3jmDyxTKA4unrTGByBiSQlW0GcHrtzucNx5tP SgkvhYv3m5SaMLn2pEoc76XvYfbW8c3hW4FcKBYdRyvGGDsveBIvpSf958+1BUi4lCYSeRP/ndG lonb5Fur1WFi7HAZ8RLkB0/cAueFF+ZfH+Ecpvsa/oBOUJTwoKEoCcn5u4aNvkjaaQHLkY+FEI2 Mbi+jm5YcEgtsGJrkgOI8BfavR6QiH+6h5A9w3kfCJ7YavtobX3jDoh49Ir1+5LMB7mE/M5C2yp uofj+JYGivgzBlEbOC2k/x2JzhsmWTiNSEJO8DpOWX55N2abdWAG8DpEN9bYKpVcDMEYpaVhZMS s4UmoVe+YxyQuC4/NtEYYWaUi9bO5xEqIWaGGEK7QKZdKAlw0SoW8rhIyN70qksex0eHxP5Gpsa 8pnfsLoawxQLlbfSjl/zGZemTlw6b264AnJKZ+eJYt X-Received: by 2002:a17:90b:17c2:b0:35a:cf:64a6 with SMTP id 98e67ed59e1d1-364c3174d7amr153944a91.23.1777501527656; Wed, 29 Apr 2026 15:25:27 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 14/48] fpu: Drop parts_div Date: Thu, 30 Apr 2026 08:24:11 +1000 Message-ID: <20260429222445.26301-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1029; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1029.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501573949154100 Use parts{64,128}_div at each call site. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index aa62fea47d..b885eae629 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -779,14 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const F= loatParts128 *p) FloatParts128 *: parts128_##NAME, \ FloatParts256 *: parts256_##NAME) =20 -static FloatParts64 *parts64_div(FloatParts64 *a, FloatParts64 *b, - float_status *s); -static FloatParts128 *parts128_div(FloatParts128 *a, FloatParts128 *b, - float_status *s); - -#define parts_div(A, B, S) \ - PARTS_GENERIC_64_128(div, A)(A, B, S) - static FloatParts64 *parts64_modrem(FloatParts64 *a, FloatParts64 *b, uint64_t *mod_quot, float_status *s); static FloatParts128 *parts128_modrem(FloatParts128 *a, FloatParts128 *b, @@ -2505,7 +2497,7 @@ float16 float16_div(float16 a, float16 b, float_statu= s *status) =20 float16_unpack_canonical(&pa, a, status); float16_unpack_canonical(&pb, b, status); - pr =3D parts_div(&pa, &pb, status); + pr =3D parts64_div(&pa, &pb, status); =20 return float16_round_pack_canonical(pr, status); } @@ -2517,7 +2509,7 @@ soft_f32_div(float32 a, float32 b, float_status *stat= us) =20 float32_unpack_canonical(&pa, a, status); float32_unpack_canonical(&pb, b, status); - pr =3D parts_div(&pa, &pb, status); + pr =3D parts64_div(&pa, &pb, status); =20 return float32_round_pack_canonical(pr, status); } @@ -2529,7 +2521,7 @@ soft_f64_div(float64 a, float64 b, float_status *stat= us) =20 float64_unpack_canonical(&pa, a, status); float64_unpack_canonical(&pb, b, status); - pr =3D parts_div(&pa, &pb, status); + pr =3D parts64_div(&pa, &pb, status); =20 return float64_round_pack_canonical(pr, status); } @@ -2598,7 +2590,7 @@ float64 float64r32_div(float64 a, float64 b, float_st= atus *status) =20 float64_unpack_canonical(&pa, a, status); float64_unpack_canonical(&pb, b, status); - pr =3D parts_div(&pa, &pb, status); + pr =3D parts64_div(&pa, &pb, status); =20 return float64r32_round_pack_canonical(pr, status); } @@ -2610,7 +2602,7 @@ bfloat16_div(bfloat16 a, bfloat16 b, float_status *st= atus) =20 bfloat16_unpack_canonical(&pa, a, status); bfloat16_unpack_canonical(&pb, b, status); - pr =3D parts_div(&pa, &pb, status); + pr =3D parts64_div(&pa, &pb, status); =20 return bfloat16_round_pack_canonical(pr, status); } @@ -2622,7 +2614,7 @@ float128_div(float128 a, float128 b, float_status *st= atus) =20 float128_unpack_canonical(&pa, a, status); float128_unpack_canonical(&pb, b, status); - pr =3D parts_div(&pa, &pb, status); + pr =3D parts128_div(&pa, &pb, status); =20 return float128_round_pack_canonical(pr, status); } @@ -2636,7 +2628,7 @@ floatx80 floatx80_div(floatx80 a, floatx80 b, float_s= tatus *status) return floatx80_default_nan(status); } =20 - pr =3D parts_div(&pa, &pb, status); + pr =3D parts128_div(&pa, &pb, status); return floatx80_round_pack_canonical(pr, status); } =20 @@ -5488,7 +5480,7 @@ static void parts_s390_divide_to_integer(FloatParts64= *a, FloatParts64 *b, =20 /* Compute precise quotient */ q_buf =3D *a; - q =3D parts_div(&q_buf, b, status); + q =3D parts64_div(&q_buf, b, status); =20 /* * Check whether two closest integers can be precisely represented, --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501705; cv=none; d=zohomail.com; s=zohoarc; b=aLnhj1QxRg3sAybDwP0x7rBR/W/xPypHbb8isxudftALyjG5lfqYbYJKa1hqEMmPdCoQCUq29jwAuflSperT2y4H30UZKtYGiSK/SiR/uANGfX/MEixJXSTniwo8l+xZntkYo9MDJQ4Reb1jRCSYu5UgniJD+GCQzDMnu9AuOMM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501705; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=5bEIML70BacSThny8hKO0eQqyV855mB1fb4MsnF2gNA=; b=oLeiWYQVh8q80Ur1Q1s1iBPHhpFvLWkFP7dLTNkAkKg/tomZ9sZO113x8uyEYWEtzrlrKb3Kb6mn+7N8IxQ5A5dqQe3HXVT/KbJUpbtP5cwuTGdHfL746mRR3LLH+RiW3KLc8aD3DlrvPF8ZjGEDIZ7d86Djo9yCbrElaAg/WgU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501705314395.457850568896; Wed, 29 Apr 2026 15:28:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDLi-0000Jo-Du; Wed, 29 Apr 2026 18:25:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDLa-0000FN-QY for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:35 -0400 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDLY-0004t5-VS for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:34 -0400 Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-3614826eca4so214696a91.1 for ; Wed, 29 Apr 2026 15:25:31 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.25.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:25:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501531; x=1778106331; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5bEIML70BacSThny8hKO0eQqyV855mB1fb4MsnF2gNA=; b=UM+xqS097SxcJHKNi9wR3yntki1O+hdnzo2wjoLIcSofKuck58HFAORtPehyJG8qRy TYO6L/fEWIzP6QlcPYDmQ3RNpLw6VhoTrrINIpMr9/dy1GUoBDiPKZhmXOKk3L0lq0da ndunB9RQMpo6yT/Rcp/AZR3Xp/C5jMg8bGm6KNlbmdxjMaTpqv4uV1pw+K1akMw0yUGS nfcfM4NSY7tbI+tAHJ0iH4xc51fTMfvtWBbxGzDyV7ifzvIkUcFsPligXYkbDpucwK4l 6rQE07o3XRQGTudHyVI3BjH5lIIbhPQ1EGjVKSUnTKyHwTBcxqXQFG5nydDkTxsKrapa NItw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501531; x=1778106331; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=5bEIML70BacSThny8hKO0eQqyV855mB1fb4MsnF2gNA=; b=qIdFuc6W8pwQgciw/0IqTTXRQrTIYaFKu7+IIeQtSkhOMK60IDe9Wg0CpNU0yX4O5y ErGC8OxY/yIHNVABnvkFyLQ1fPO1lfI5DwQkhF7N3k0FPod3TYxBgMbfxGLwhsdYyGE+ yGz1CNe09ZMNPUoAK/kv6rNg/weCPgoDIcnuHz41gy4d+u6RA/yWGFz+9QowebBdlaQ0 dcZ9ooUPcVxBvTTU/hBllRZV13SxRzViydBZgILk6Mq12iyp5bCDmuJ0M+aIiITEY5le JIdE5Jndt0S7k4l/oTzD9k9Ch4ZZfe19EQLR+R5jJwM++RU0NFygSRLAcS4YmvHj+amW s3ag== X-Gm-Message-State: AOJu0Yx5VVYhBLC7En9CibnLZSdsX7OUVjAeak9PDIoaF4I6/9wpa3Fm Wl2AFpJ7X9kD5Jkzp1AdedRRpaC3dyoDpbfRPxleITo0YrP1GwX6vS9mKIavZX4X4S2ZU5U+5dE pbqc3b9Y= X-Gm-Gg: AeBDievFSGlzNEs7GRGivnOSksg0K0t8wC1CmMWZUFQtAhe7YMxuy1D7Dae9y2eEI7z 3iwafBURmxmaSmI2kgUWVsGshMpWuMjJ1N6YDyVOm3nQGylu09igqK3QvxnGZtvNgBt04jF6P2O tAvJWdcnoZL4e/oMEznxd6nfvM59XqbXg4efYsTGbJKwWsftmkUC6Whd8mbT+8FgKWXyKlo/dsY /IpeRW7iefwvQzPlkr5GTfpIC1n7x1gd8FP51WeC+tot9iSsxWaJohc2NXVSFybc5SBHknH/Jpk CF1XodW+1zIJ8V2dgAoqxZjG42w0iP57Ea6WEb7B3up1WI6znJ4d3yoUatUSSyhHXPTyuxCyewZ 4qoVFKZQF2SBZeXuqMona9r6qqRe2TabeOoSDYMPpJQP6ZmWC7agVkb+yMJFAIOjdAXaOn68x8g 32B7aZ3hThjnzOoZTsa80QaUG55XV8YZ3HnkEEkjk0 X-Received: by 2002:a17:90b:3b4f:b0:361:423d:203d with SMTP id 98e67ed59e1d1-364c301f2a1mr175762a91.8.1777501530156; Wed, 29 Apr 2026 15:25:30 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 15/48] fpu: Drop parts_modrem Date: Thu, 30 Apr 2026 08:24:12 +1000 Message-ID: <20260429222445.26301-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102b; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501707786154100 Use parts{64,128}_modrem at each call site. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index b885eae629..91d8e48ce4 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -779,14 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const F= loatParts128 *p) FloatParts128 *: parts128_##NAME, \ FloatParts256 *: parts256_##NAME) =20 -static FloatParts64 *parts64_modrem(FloatParts64 *a, FloatParts64 *b, - uint64_t *mod_quot, float_status *s); -static FloatParts128 *parts128_modrem(FloatParts128 *a, FloatParts128 *b, - uint64_t *mod_quot, float_status *s); - -#define parts_modrem(A, B, Q, S) \ - PARTS_GENERIC_64_128(modrem, A)(A, B, Q, S) - static void parts64_sqrt(FloatParts64 *a, float_status *s, const FloatFmt = *f); static void parts128_sqrt(FloatParts128 *a, float_status *s, const FloatFm= t *f); =20 @@ -2642,7 +2634,7 @@ float32 float32_rem(float32 a, float32 b, float_statu= s *status) =20 float32_unpack_canonical(&pa, a, status); float32_unpack_canonical(&pb, b, status); - pr =3D parts_modrem(&pa, &pb, NULL, status); + pr =3D parts64_modrem(&pa, &pb, NULL, status); =20 return float32_round_pack_canonical(pr, status); } @@ -2653,7 +2645,7 @@ float64 float64_rem(float64 a, float64 b, float_statu= s *status) =20 float64_unpack_canonical(&pa, a, status); float64_unpack_canonical(&pb, b, status); - pr =3D parts_modrem(&pa, &pb, NULL, status); + pr =3D parts64_modrem(&pa, &pb, NULL, status); =20 return float64_round_pack_canonical(pr, status); } @@ -2664,7 +2656,7 @@ float128 float128_rem(float128 a, float128 b, float_s= tatus *status) =20 float128_unpack_canonical(&pa, a, status); float128_unpack_canonical(&pb, b, status); - pr =3D parts_modrem(&pa, &pb, NULL, status); + pr =3D parts128_modrem(&pa, &pb, NULL, status); =20 return float128_round_pack_canonical(pr, status); } @@ -2688,7 +2680,7 @@ floatx80 floatx80_modrem(floatx80 a, floatx80 b, bool= mod, !floatx80_unpack_canonical(&pb, b, status)) { return floatx80_default_nan(status); } - pr =3D parts_modrem(&pa, &pb, mod ? quotient : NULL, status); + pr =3D parts128_modrem(&pa, &pb, mod ? quotient : NULL, status); =20 return floatx80_round_pack_canonical(pr, status); } --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501675; cv=none; d=zohomail.com; s=zohoarc; b=Y7p8JFaOcrZiqAvhUbDHc9G1K3gGpG/cNih32HikCVIiOIXHOGVU8DxubIYLW8dflGEXJ6h2B+hlGiOCpXERmMfPggln3tQBS/CRLam2c33Y7o3Y50D1UhWCD7PTS/QV/sVFw4CkkXFnApdkzOx0le8PlDnoYZ1UWfBDT+uBz70= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501675; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=31hLbn8oYXSK9jtgcJgE4cjWwvKE/+HfIVZoQKVefGU=; b=aBH4I906BYF/+UZiR2o573EzvjBitdncZ9uxpKRrk3Ap1KNyOBwR4D1QPrdnz+UfJm4IcPvooMFHfZJWQOjSXAPeOdIYjiTf67iXjNk17IPiUlUqeMcob6+WfWh6RTDsMfoTeQ7ndF3dZThFmn65refM68dWwB75b8dWZbtAgxg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501675854616.1093513363115; Wed, 29 Apr 2026 15:27:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDLj-0000Mu-0l; Wed, 29 Apr 2026 18:25:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDLb-0000Fp-V6 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:37 -0400 Received: from mail-pj1-x102e.google.com ([2607:f8b0:4864:20::102e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDLa-0004tH-5i for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:35 -0400 Received: by mail-pj1-x102e.google.com with SMTP id 98e67ed59e1d1-3614826eca4so214705a91.1 for ; Wed, 29 Apr 2026 15:25:33 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.25.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:25:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501533; x=1778106333; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=31hLbn8oYXSK9jtgcJgE4cjWwvKE/+HfIVZoQKVefGU=; b=w73VUVb1qvqJfbYpl2yHW5sudG8qPRgqnVLnuHZbgAEargMpvFo1nxasJS9HGC5KmT NO7Iv0yvM70cffZH2NZsFRArP8pni468ejgt/m0CyQSCY7RbU8ak6BNpd10jCUTYKEOo xWoeRDxsPp5Gj8LdyafzUDQ2PcQP73GsZ0suCBKjcp7PFA4ZtRL5RE598C0t2ACs79xG 0rOKAiwGc22mjf499KEVkGaI7gmuSNKG4E46+qhCtCHIVA1fLY/0JJZhipNoYgRi4Q1+ AQBWLI+NIqLykgyNatL1dOWmdOp+upaXtT7RxHCwmT9uchduUrYQdEfcMLtMlBAF1ksY 2S4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501533; x=1778106333; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=31hLbn8oYXSK9jtgcJgE4cjWwvKE/+HfIVZoQKVefGU=; b=e9+nCYoww8LmwQTgTEaM4RWAFaM6xLuofjPo+wQVH35Ysl//6iFn0ZFnJfhHxX7x5k bMhbpM/m6QEk5P20u4ueAIblzEfNKFUDZXUbL1oy0iC3UVDTtYQ2Lq4Mr6kp4V29gtp5 g5W3j4iCH47rLz7EhylXWDNFCKqO03UVzCFJd3crokfWLRc17DMdCtJXRdCSd3qPGFTX zpV4JSdPY9dSPsMn+GSC55jdQwOuyBwBDCiElNo26V3hJLDIjqcobclfqU149SZuuBI1 BG1uMOl8nRJ3NV1d9Mw9U86IQQLxMUCH7DwPsPJc/zhAPumRzSS7lGrwKutFS2ZdPV+L 1Nug== X-Gm-Message-State: AOJu0YwGtwdsDu4MzgC+qXTaETuFU+4CIunDySiz+WbIksMBrakSpq2h W0xYABSBWMzTjf3TCfLncqbfLfNkLQQyVHhezHguMDaEh42IPq7mspXUT9FbmTUjB4G+phcOjMb wM2+j1gQ= X-Gm-Gg: AeBDietUPlKupjHGuoqsyb0N4ZV7fWb198/VdMq4LDNCKbb3xKguuSlR3y/Pm45bs8X zNbzn/NFKCl8bgSNQp2DHEWKXjxGGzEA9gUgeKML1EuZNONKvgZqUYfvXG4POAaIYtOWzqjzLZC irTk8pGQXVnCdov4gnjz1uFaczEgeQMllGDnxtgrap+FZIK3oWXSEHjG/0oEO4q3jp6F+oAWws6 IEar0LATIB8+aLGWGSdlygVwNC9WE4A2HAon9ly84e5Ysh6n6NDKxMp+YiMZcHb/6TlXnqB9fBX 6akqnjqqe+jd1huEd96QjGNM5xpdrEvXbYkoEYAspBcgcqeCa0jHuqse0Gm9E3i+wRjQv9SCC0O bnpnRz0lrZOikyHNuN1g9wFWMr/jm01iGV8GKFsNE3OTR/5Jvde4YCNPpHfJgw9UZd3GgqiO06Y mHvpo5Y6jcBhQxkfXjTzwwYKXxtUp8HpBb/7pA1tqb X-Received: by 2002:a17:90b:52cf:b0:35f:ccf6:69a5 with SMTP id 98e67ed59e1d1-364c31a6b14mr168341a91.20.1777501532584; Wed, 29 Apr 2026 15:25:32 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 16/48] fpu: Drop parts_sqrt Date: Thu, 30 Apr 2026 08:24:13 +1000 Message-ID: <20260429222445.26301-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102e; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501677826158500 Use parts{64,128}_sqrt at each call site. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 91d8e48ce4..0a6bc6d580 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -779,12 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const F= loatParts128 *p) FloatParts128 *: parts128_##NAME, \ FloatParts256 *: parts256_##NAME) =20 -static void parts64_sqrt(FloatParts64 *a, float_status *s, const FloatFmt = *f); -static void parts128_sqrt(FloatParts128 *a, float_status *s, const FloatFm= t *f); - -#define parts_sqrt(A, S, F) \ - PARTS_GENERIC_64_128(sqrt, A)(A, S, F) - static bool parts64_round_to_int_normal(FloatParts64 *a, FloatRoundMode rm, int scale, int frac_size); static bool parts128_round_to_int_normal(FloatParts128 *a, FloatRoundMode = r, @@ -4757,7 +4751,7 @@ float16 QEMU_FLATTEN float16_sqrt(float16 a, float_st= atus *status) FloatParts64 p; =20 float16_unpack_canonical(&p, a, status); - parts_sqrt(&p, status, &float16_params); + parts64_sqrt(&p, status, &float16_params); return float16_round_pack_canonical(&p, status); } =20 @@ -4767,7 +4761,7 @@ soft_f32_sqrt(float32 a, float_status *status) FloatParts64 p; =20 float32_unpack_canonical(&p, a, status); - parts_sqrt(&p, status, &float32_params); + parts64_sqrt(&p, status, &float32_params); return float32_round_pack_canonical(&p, status); } =20 @@ -4777,7 +4771,7 @@ soft_f64_sqrt(float64 a, float_status *status) FloatParts64 p; =20 float64_unpack_canonical(&p, a, status); - parts_sqrt(&p, status, &float64_params); + parts64_sqrt(&p, status, &float64_params); return float64_round_pack_canonical(&p, status); } =20 @@ -4840,7 +4834,7 @@ float64 float64r32_sqrt(float64 a, float_status *stat= us) FloatParts64 p; =20 float64_unpack_canonical(&p, a, status); - parts_sqrt(&p, status, &float64_params); + parts64_sqrt(&p, status, &float64_params); return float64r32_round_pack_canonical(&p, status); } =20 @@ -4849,7 +4843,7 @@ bfloat16 QEMU_FLATTEN bfloat16_sqrt(bfloat16 a, float= _status *status) FloatParts64 p; =20 bfloat16_unpack_canonical(&p, a, status); - parts_sqrt(&p, status, &bfloat16_params); + parts64_sqrt(&p, status, &bfloat16_params); return bfloat16_round_pack_canonical(&p, status); } =20 @@ -4858,7 +4852,7 @@ float128 QEMU_FLATTEN float128_sqrt(float128 a, float= _status *status) FloatParts128 p; =20 float128_unpack_canonical(&p, a, status); - parts_sqrt(&p, status, &float128_params); + parts128_sqrt(&p, status, &float128_params); return float128_round_pack_canonical(&p, status); } =20 @@ -4869,7 +4863,7 @@ floatx80 floatx80_sqrt(floatx80 a, float_status *s) if (!floatx80_unpack_canonical(&p, a, s)) { return floatx80_default_nan(s); } - parts_sqrt(&p, s, &floatx80_params[s->floatx80_rounding_precision]); + parts128_sqrt(&p, s, &floatx80_params[s->floatx80_rounding_precision]); return floatx80_round_pack_canonical(&p, s); } =20 --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501649; cv=none; d=zohomail.com; s=zohoarc; b=lUJDlul8cenKnBMq4MJKNdpZRNJtCQXbwTyR+KGKzqvPbgw+TSR2IOaeB9ZlhqJ5TMqAtACSGr4S6kJwW35/cX9KUncNxjuEA2ZGgNhEuN05I3wxmAdhgngv7ZBIHhRMNqxRVUPrvuzDNPgZoObWUYuLmBRuAoyTQHuKn3hSRMQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501649; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=SukI7zVxjc9k6VHBdSxDOg9roiR/Riy2IZzjexvh+xM=; b=DLTwl2srYkjVR+4lGFeS0MKkes7hNyc1nnjc/ebG0ng3Db86PRMqAa+lKx6VzgXFWqWRswxShz5N2e8feN+d/AAmgQZBQf22heVjvOqvbm/tYm2giHJ9qTSevZZcton4CxMNn6xwn3RV9RvPZmP4lBt4b+0vmkUGqLM9DwrNSFQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501649451203.5264600756592; Wed, 29 Apr 2026 15:27:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDLj-0000NH-MH; Wed, 29 Apr 2026 18:25:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDLe-0000H9-7y for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:39 -0400 Received: from mail-pj1-x1033.google.com ([2607:f8b0:4864:20::1033]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDLc-0004tb-Ff for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:37 -0400 Received: by mail-pj1-x1033.google.com with SMTP id 98e67ed59e1d1-3614826eca4so214730a91.1 for ; Wed, 29 Apr 2026 15:25:36 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.25.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:25:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501535; x=1778106335; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=SukI7zVxjc9k6VHBdSxDOg9roiR/Riy2IZzjexvh+xM=; b=N3mJvLoaM3LanqmDawDQuABwia8lN+wwI7oYg04z/6oneeqQ2uKsICHPwJTza+IEO0 cWO9vprzNuRJUH3vomMAqp8965y/RNpe6h8G4YAVXsvDDtYv+pZ/Z6H1AxNbnL/Ui0Ir EShMxcOF9fdzticvnXV8F0ttRr34Zz3n5JrqXUaTxD8ZfBWDnBqaNOb/mWcBHt/M8xKl AuppYaE1wcJ6dDAC26TCXuPrq8DahZkx0QoU27i6Nu7j0JGbggcYmKHmp3IYDRAyVwKT /n2S6YtP8F9FTsGOS4h/VO8DoR8w666jECH7JT/WP+hOlrDu08SZ/dBviDJFn/Dz+Q53 Lqeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501535; x=1778106335; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=SukI7zVxjc9k6VHBdSxDOg9roiR/Riy2IZzjexvh+xM=; b=A6f0tVMP2FWJSylYIaANKfon1F/DZvAF1H8eHQ/+xUWne20QeEMBqwS9f13hmUiFSj aCBF3VYaQYUoNNVl6zvu62rZQh87bg2nkQoX4XcDkDvqIBStf/vj2bFjd6kJhWcWdjSn tw3ePKZKzbXE/bcuyO6xQ+BPsDr5PhKasXqy6NZkmdlAjzH2EjV7JPfZozxtRYfAuCDB D9CTHJvXTSf4rRjXv09GVTPwFxJ4UGI4pX4eEQyo/lAbJRH/YHBbz2ddMHQYGmLtvDuT gAa6ZfP5lxcq8yUWAteIVByR6pjQvGf4TGeIyVtOc2zbw6nWkXDlRezp1WLm3VzGEfVM GYIg== X-Gm-Message-State: AOJu0YxS4SZxng4byeFhzLPyUJ8aj/IveZRGqwNm9ZSxyb3aFl1H8+1F AYLsgHxvdSCqK/cM5sW/NOkSG4Q8mRDMVjdvcunU4qifWJsFb6p19AKJOkgmUF7E5NX/9o/KkwN EIzDdpjE= X-Gm-Gg: AeBDietE1IFrme36HMs/299xyK6lJ9pv3az7zNjQ+uwG8zcL+/arkCf7LVavqIuR0sA 0UXjI/hb26i2n/Sj+NdIaZZ7ajIhVfJDNw99nY4y3sRKYgnD4azQ/rX9AVM0AdIP3/TZeU+0U/Q 70jmEbSjafE5DSwT/iuxmWKeeaQOZKqqzaonGvbmVPhnYpmH9rK9xN1r5bd8n3GnFG380XFEo50 C5mACv9XdsVTZPqCdnFeYclrOLZcjZKaEeovnQU6ePWpV3qB9JaaGkDgmw7mZLMJ1vGGYhmlalZ U91DcCCt8Eh51Bl4QmOAFJ8luX0N3fd8t40nSksuERCLOHjnjJ6+y/LbmuVdhPC9dj3bGE+GWtx g2tG6oy2rP2l4Sa8L3QCyZI0a5vv3j2ktqHV/sh3B4bPh/6IgJRaJgnPJSPpjZv9Ti83gelgMt8 tX+PC9m861R1d08cjuH6tSLTLj6o4ft+mVL8OJFdWD X-Received: by 2002:a17:90b:180a:b0:35f:bb33:d728 with SMTP id 98e67ed59e1d1-364c3065d51mr174771a91.11.1777501534963; Wed, 29 Apr 2026 15:25:34 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 17/48] fpu: Drop parts_round_to_int_normal Date: Thu, 30 Apr 2026 08:24:14 +1000 Message-ID: <20260429222445.26301-18-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1033; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1033.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501649823158500 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 22 +++++++--------------- fpu/softfloat-parts.c.inc | 10 +++++----- 2 files changed, 12 insertions(+), 20 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 0a6bc6d580..1f03fcf687 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -779,14 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const F= loatParts128 *p) FloatParts128 *: parts128_##NAME, \ FloatParts256 *: parts256_##NAME) =20 -static bool parts64_round_to_int_normal(FloatParts64 *a, FloatRoundMode rm, - int scale, int frac_size); -static bool parts128_round_to_int_normal(FloatParts128 *a, FloatRoundMode = r, - int scale, int frac_size); - -#define parts_round_to_int_normal(A, R, C, F) \ - PARTS_GENERIC_64_128(round_to_int_normal, A)(A, R, C, F) - static void parts64_round_to_int(FloatParts64 *a, FloatRoundMode rm, int scale, float_status *s, const FloatFmt *fmt); @@ -3365,7 +3357,7 @@ static Int128 float128_to_int128_scalbn(float128 a, F= loatRoundMode rmode, =20 case float_class_normal: case float_class_denormal: - if (parts_round_to_int_normal(&p, rmode, scale, 128 - 2)) { + if (parts128_round_to_int_normal(&p, rmode, scale, 128 - 2)) { flags =3D float_flag_inexact; } =20 @@ -3793,7 +3785,7 @@ static Int128 float128_to_uint128_scalbn(float128 a, = FloatRoundMode rmode, =20 case float_class_normal: case float_class_denormal: - if (parts_round_to_int_normal(&p, rmode, scale, 128 - 2)) { + if (parts128_round_to_int_normal(&p, rmode, scale, 128 - 2)) { flags =3D float_flag_inexact; if (p.cls =3D=3D float_class_zero) { r =3D int128_zero(); @@ -5482,11 +5474,11 @@ static void parts_s390_divide_to_integer(FloatParts= 64 *a, FloatParts64 *b, * of distinguishing partial quotients, so ignore the exception. */ *n =3D *q; - parts_round_to_int_normal(n, - is_q_smallish ? - final_quotient_rounding_mode : - float_round_to_zero, - 0, fmt->frac_size); + parts64_round_to_int_normal(n, + is_q_smallish + ? final_quotient_rounding_mode + : float_round_to_zero, + 0, fmt->frac_size); =20 /* Compute precise remainder */ r_precise_buf =3D *b; diff --git a/fpu/softfloat-parts.c.inc b/fpu/softfloat-parts.c.inc index 6e1800b117..9b719ac5cf 100644 --- a/fpu/softfloat-parts.c.inc +++ b/fpu/softfloat-parts.c.inc @@ -1127,7 +1127,7 @@ static void partsN(sqrt)(FloatPartsN *a, float_status= *status, * according to the IEC/IEEE Standard for Binary Floating-Point * Arithmetic. * - * parts_round_to_int_normal is an internal helper function for + * partsN(round_to_int_normal) is an internal helper function for * normal numbers only, returning true for inexact but not directly * raising float_flag_inexact. */ @@ -1270,7 +1270,7 @@ static void partsN(round_to_int)(FloatPartsN *a, Floa= tRoundMode rmode, break; case float_class_normal: case float_class_denormal: - if (parts_round_to_int_normal(a, rmode, scale, fmt->frac_size)) { + if (partsN(round_to_int_normal)(a, rmode, scale, fmt->frac_size)) { float_raise(float_flag_inexact, s); } break; @@ -1316,7 +1316,7 @@ static int64_t partsN(float_to_sint)(FloatPartsN *p, = FloatRoundMode rmode, case float_class_normal: case float_class_denormal: /* TODO: N - 2 is frac_size for rounding; could use input fmt. */ - if (parts_round_to_int_normal(p, rmode, scale, N - 2)) { + if (partsN(round_to_int_normal)(p, rmode, scale, N - 2)) { flags =3D float_flag_inexact; } =20 @@ -1384,7 +1384,7 @@ static uint64_t partsN(float_to_uint)(FloatPartsN *p,= FloatRoundMode rmode, case float_class_normal: case float_class_denormal: /* TODO: N - 2 is frac_size for rounding; could use input fmt. */ - if (parts_round_to_int_normal(p, rmode, scale, N - 2)) { + if (partsN(round_to_int_normal)(p, rmode, scale, N - 2)) { flags =3D float_flag_inexact; if (p->cls =3D=3D float_class_zero) { r =3D 0; @@ -1448,7 +1448,7 @@ static int64_t partsN(float_to_sint_modulo)(FloatPart= sN *p, case float_class_normal: case float_class_denormal: /* TODO: N - 2 is frac_size for rounding; could use input fmt. */ - if (parts_round_to_int_normal(p, rmode, 0, N - 2)) { + if (partsN(round_to_int_normal)(p, rmode, 0, N - 2)) { flags =3D float_flag_inexact; } =20 --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501583; cv=none; d=zohomail.com; s=zohoarc; b=kel0os/8AoX770LYHRQnzW6rCvzkJJPB4YREpeODy/BFCRcID8YivO6EDZKLWJ7LdW8RA+usaGnkmMuctQDU0A3qicqBJTFjkHo4ICFd8WhD0ztVEiE42uWipADdQ1ICU1cJROVC1ljxBWxqwzuTXBBWehSmI0SE70zJUpmKgzI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501583; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=GLyWu8yU2Agae63TYqLRCthKC3+/ThbReajEkqa3gwY=; b=TsCGG+qmz1HXSn/s6mAciC12tpUzD3gnB7N/5hegA82Pg1ZF4+o+oMNACfdoAhLov1wHVihMF9uQGpgiKDskiLBXZANbvtD87frGPYqSd0o0KqAmzMxsVR/2ow27Bx3uRYjHEIeaqYSmx8fqpcwhiAw4FtH3HBXiQ86ZwE8BepA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501583042621.9937138571526; Wed, 29 Apr 2026 15:26:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDLl-0000Nl-3g; Wed, 29 Apr 2026 18:25:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDLh-0000Hl-3C for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:41 -0400 Received: from mail-pj1-x1036.google.com ([2607:f8b0:4864:20::1036]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDLf-0004wx-Gt for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:40 -0400 Received: by mail-pj1-x1036.google.com with SMTP id 98e67ed59e1d1-3614826eca4so214746a91.1 for ; Wed, 29 Apr 2026 15:25:38 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.25.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:25:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501537; x=1778106337; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=GLyWu8yU2Agae63TYqLRCthKC3+/ThbReajEkqa3gwY=; b=oxxzDKz4OJJ/dSk6o2P0WMAgCesiluNWAuBQEFHuW5tX8Wb0STalDHIpXqIGXK14zG Ja9vkdCjnafVAbf8dLPQvaFXgAl36BxDS5Z5aQ7Yes/zfnubHDh+ZP5dOgd/3bnrrja5 bfvH4opNqv0P0sE5sjpAzq+zVM7gp0ycgXs4AQSYvjQ4Dtx+6ykSyviGCwZfP2oBbTEN 5/2EXSQ2sKfv/cEFMG2wifY+XrhJuvpblDxJHCYkuqJWaPaDXnmFAvpiPtUMYQ539wc5 um5DdrkW9y4KKxWhyXVWa+wC1yeZhV7Ll+YSORZoGHNXRmG4+dWydjpjQa+Jht6BoITS bMRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501537; x=1778106337; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=GLyWu8yU2Agae63TYqLRCthKC3+/ThbReajEkqa3gwY=; b=Y3JBI2pj52Jh1hM9IblUWQ2BtUKj6L+rq5BvU/6//JNIi6v213BmaW/Pt5QDMBxlov f3THzs9r52c1Z9LZB0IVyRcqU3ETWCDbKxalNvnQp7jOf/RuPB7ZVAJS+7PJrvzQU701 KuC9ZXBkgYSq0Rewl9SRxbYsitKdob/T/IsxHAYzr7yx7lC5aXwmANx/7upbCcF2uD40 qlkzmRapNbOMAwZjt98W0YlvY50mrjACsDQj+82EnZ8uMUXtTWhhUBbnkk9iHeUIez+t GN9BUQ6MYTYom37fGUrVV+WZWSJjG89kq9fajiYbq7xXaMtfgtJJwsrg4QrEvPdGcGSo EuCw== X-Gm-Message-State: AOJu0YzUgeasdNb0D/HnSEzwjhiKVQnwxdKL4MWTnpLE7aALSK8rm7+S 3FMiJKYKh658T+buSctq3khFy+SVQKtMXa7mBp8cePCLViP+Hx5hHMUwqaAHeUz9s3SqbyYeuz6 hpDfyQKY= X-Gm-Gg: AeBDieuYBuIwmIn31tKKToAxTTdESvgV5/+hCBoUa0fqigIy3jtzLAfVH6FR8cpjr+J 3Nw2sE0LEPmjHPXwugFS/ghtEvdUklSi5GQClahivpRz3lYFjPxfmL6ZPEfcJ/9q5WtHqp9Jlef uAMzf57OTJY/8mDffa0kaC6PH+5rg8grosm9UAm1xJ73f9jQQAwXGKW/zPU5w2Id/rO2MC1ZwXu QVcRXzG/aSRVqx/AUDoCUgRDN33FCmzxJVA2ibP4dcP8BiMzQ012AkRz+OKRbBX8QziY58jH4lm yCuWZ5+Y2RemI9zDqmJqWixWknpdQhoKzjgFInxiZdsUEjzbHxjKvYXKGOBZOoofxjZ/+dzEz0Y v15q7B48S5TyZFWU9vOMLlqCTq/6HKLQObMKOYx/FBusF1yPU7fEsTOqhecYAA72Iv/2VzAstbJ C8P4SprDyWaDiirrrcXvIjQA+G806FfMepUH1ZxGHBy2/siBAgKPM= X-Received: by 2002:a17:90b:1a87:b0:35f:bae8:3531 with SMTP id 98e67ed59e1d1-364c340d4d9mr149417a91.25.1777501537437; Wed, 29 Apr 2026 15:25:37 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 18/48] fpu: Drop parts_round_to_int Date: Thu, 30 Apr 2026 08:24:15 +1000 Message-ID: <20260429222445.26301-19-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1036; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1036.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501583553158500 Use parts{64,128}_round_to_int at each call site. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 1f03fcf687..e2341871bd 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -779,16 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const F= loatParts128 *p) FloatParts128 *: parts128_##NAME, \ FloatParts256 *: parts256_##NAME) =20 -static void parts64_round_to_int(FloatParts64 *a, FloatRoundMode rm, - int scale, float_status *s, - const FloatFmt *fmt); -static void parts128_round_to_int(FloatParts128 *a, FloatRoundMode r, - int scale, float_status *s, - const FloatFmt *fmt); - -#define parts_round_to_int(A, R, C, S, F) \ - PARTS_GENERIC_64_128(round_to_int, A)(A, R, C, S, F) - static int64_t parts64_float_to_sint(FloatParts64 *p, FloatRoundMode rmode, int scale, int64_t min, int64_t max, float_status *s); @@ -3128,7 +3118,7 @@ float16 float16_round_to_int(float16 a, float_status = *s) FloatParts64 p; =20 float16_unpack_canonical(&p, a, s); - parts_round_to_int(&p, s->float_rounding_mode, 0, s, &float16_params); + parts64_round_to_int(&p, s->float_rounding_mode, 0, s, &float16_params= ); return float16_round_pack_canonical(&p, s); } =20 @@ -3137,7 +3127,7 @@ float32 float32_round_to_int(float32 a, float_status = *s) FloatParts64 p; =20 float32_unpack_canonical(&p, a, s); - parts_round_to_int(&p, s->float_rounding_mode, 0, s, &float32_params); + parts64_round_to_int(&p, s->float_rounding_mode, 0, s, &float32_params= ); return float32_round_pack_canonical(&p, s); } =20 @@ -3146,7 +3136,7 @@ float64 float64_round_to_int(float64 a, float_status = *s) FloatParts64 p; =20 float64_unpack_canonical(&p, a, s); - parts_round_to_int(&p, s->float_rounding_mode, 0, s, &float64_params); + parts64_round_to_int(&p, s->float_rounding_mode, 0, s, &float64_params= ); return float64_round_pack_canonical(&p, s); } =20 @@ -3155,7 +3145,7 @@ bfloat16 bfloat16_round_to_int(bfloat16 a, float_stat= us *s) FloatParts64 p; =20 bfloat16_unpack_canonical(&p, a, s); - parts_round_to_int(&p, s->float_rounding_mode, 0, s, &bfloat16_params); + parts64_round_to_int(&p, s->float_rounding_mode, 0, s, &bfloat16_param= s); return bfloat16_round_pack_canonical(&p, s); } =20 @@ -3164,7 +3154,7 @@ float128 float128_round_to_int(float128 a, float_stat= us *s) FloatParts128 p; =20 float128_unpack_canonical(&p, a, s); - parts_round_to_int(&p, s->float_rounding_mode, 0, s, &float128_params); + parts128_round_to_int(&p, s->float_rounding_mode, 0, s, &float128_para= ms); return float128_round_pack_canonical(&p, s); } =20 @@ -3176,7 +3166,7 @@ floatx80 floatx80_round_to_int(floatx80 a, float_stat= us *status) return floatx80_default_nan(status); } =20 - parts_round_to_int(&p, status->float_rounding_mode, 0, status, + parts128_round_to_int(&p, status->float_rounding_mode, 0, status, &floatx80_params[status->floatx80_rounding_precisio= n]); return floatx80_round_pack_canonical(&p, status); } --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501551; cv=none; d=zohomail.com; s=zohoarc; b=PxbcBnRIjmmD5h76wxXN0cvXrr6DEB3BplRkljJAm9q+9CyspiA8zxUsj9cnuocgYEEQJBYSRyVLY2nms4wAop9MFZ+czM1wnk3d/he8IMEx3jnlVjzGmva6tMJZUq5AsWMXX8qEXY/cXTZKR/7VCBIcnpWI6j6cHADSj75jbEI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501551; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=TnqgFo2n96o5/hz/wNbPC/lo1mCwyjcbZvtAcdzySuY=; b=VBLfMXVnjbpjrvA754aIciYAXv0dTjel51e8cTyt/W28xe3Na7KaI0wHmK4t4tvtwpgZGcP1yUNSzEs2FgSlQmIa5XTasYQgQ4Yf+q/XxOb1gJeO71eFRZblww1Nj2q1kJKc+9FNNyt06a/jVYi32p4O3PVfV6U/E5nVRji6sCE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501551554154.31410431912934; Wed, 29 Apr 2026 15:25:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDLl-0000OT-VJ; Wed, 29 Apr 2026 18:25:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDLj-0000N1-CF for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:43 -0400 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDLh-00050W-9f for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:43 -0400 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-362bb3260f1so143922a91.2 for ; Wed, 29 Apr 2026 15:25:40 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.25.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:25:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501540; x=1778106340; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=TnqgFo2n96o5/hz/wNbPC/lo1mCwyjcbZvtAcdzySuY=; b=zpp0XG5q3nhgWa+nMh7MYqH/Ks7d0ynKXrO6uclsT1coY5AjJ5RbtXvf658O1OGR8n zUvWkksHNCbaPeZzWY/AcTRsgpTdhopinVxlvslFEJolaPeGC7Tyy7Q/CAR6EtGrUakg LJtGZS96+aVI43FtYO+xs0rtsKM0x7DhRCERgZkKbHIf9LiaW6erJ5BFhuGqQMkHlsq0 wj1sJ3W4ncV5gD2AzfyXsrnzDBZ/ul6ei0tV9kzrnCMJfjWI2Z8TSJl8155JvBuKkI2/ XZGgGAHhwHeuF7OiIYxzaz7+ns2i6b5I5NdTLoMEmFie4YOEPLoOUroDZhi6TBIUT0Nh cLQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501540; x=1778106340; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=TnqgFo2n96o5/hz/wNbPC/lo1mCwyjcbZvtAcdzySuY=; b=QvQc5FVT6rI/fxITWHw66+iT89tg2grcFjAujwjbE5jjJdtPBgeGFZtKfYh9j+47Eg qU/SPpIFO5zRYgDtP/Dyz+Q8WqwbF5DeEXUVIDLbiseMn0ZErS3z8yw1BrOheweAGc/U Oo+4nzcAJbbzKYrYUzDp2vOlZSvZI1NwN0Sol0ZH8vHIeAVct4hpKlkSUzThsfd6xZQB dsEj4K7vpsLreGX6ElKwwXMkjCUebnn7YdX+HPpVF6Pb7uioN7oWqwbJSYTqqhPLjQck VE8uIc2D7uStg5q5xofiiz/OXJAEAvYHIxNqIEP0xYUxEsJGRY7z8S/gnRWEUhNcZLVa Jjrw== X-Gm-Message-State: AOJu0YyMTceFZZ6h+m6rfzFAS9kKWKY4XtGKp/33iZqbSHXymqKmYFYI LZ7XVjZ2HEIvYVUAMX1rSpF9ZrMSPnP1I+KaSLzuvfs0ZQ6sqqH4FSRrnr9QVid+W4+98Uzm2yX 6y0c5m9I= X-Gm-Gg: AeBDieto932FmYdsMdHVtdJKRxhFYkfQiGWxY+j8rewhZw9j2wQag0ysYtro1P2H73A fVRoO+XuHQWZlzQPtUInamnw7jefKeW+KNx6BUw5VJKUAYIhxeyeQOAPV79GtCZ4p3iJJ6zzMC5 s+M/+S8/calpV8BsdhX/VmXLDzXHqdawMqEbdNydBYyaIeuZm1M5DLa3iiVFD5IWMBoMvnHxOPh Axt4uTFWdg8FSLRg7xTMmbF2Fhex1IhDYaZYGzUc6QL8XYQsemKtz5lG25w3Lm+YWYGqOcV4x1V z8bHnZfOAuM2ufKeg3v4K4jX4P1cTq/r3njnzJGeLoYycFgYPqMPGx4em8ATL4dFNJqn82ngKAD 2gm0kMXHRLZnr+7p+8s2soeOIJm9f4e2iZQAz+qtXbwCUj9FZYim0hpT8srBQK+yQ3AOFCRAEgQ dxYBkpGfaH0XUW+vjHOEdp9ovQEDA9iiqILvuYEmdR X-Received: by 2002:a17:90b:3d89:b0:35e:d012:5a39 with SMTP id 98e67ed59e1d1-364c30cb703mr178419a91.14.1777501539898; Wed, 29 Apr 2026 15:25:39 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 19/48] fpu: Drop parts_float_to_sint Date: Thu, 30 Apr 2026 08:24:16 +1000 Message-ID: <20260429222445.26301-20-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501553642154100 Use parts{64,128}_float_to_sint at each call site. Note that there was a duplicate macro redefinition. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 49 ++++++++++++++++++------------------------------- 1 file changed, 18 insertions(+), 31 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index e2341871bd..42ef537e12 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -779,16 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const F= loatParts128 *p) FloatParts128 *: parts128_##NAME, \ FloatParts256 *: parts256_##NAME) =20 -static int64_t parts64_float_to_sint(FloatParts64 *p, FloatRoundMode rmode, - int scale, int64_t min, int64_t max, - float_status *s); -static int64_t parts128_float_to_sint(FloatParts128 *p, FloatRoundMode rmo= de, - int scale, int64_t min, int64_t max, - float_status *s); - -#define parts_float_to_sint(P, R, Z, MN, MX, S) \ - PARTS_GENERIC_64_128(float_to_sint, P)(P, R, Z, MN, MX, S) - static uint64_t parts64_float_to_uint(FloatParts64 *p, FloatRoundMode rmod= e, int scale, uint64_t max, float_status *s); @@ -814,9 +804,6 @@ static void parts64_sint_to_float(FloatParts64 *p, int6= 4_t a, static void parts128_sint_to_float(FloatParts128 *p, int64_t a, int scale, float_status *s); =20 -#define parts_float_to_sint(P, R, Z, MN, MX, S) \ - PARTS_GENERIC_64_128(float_to_sint, P)(P, R, Z, MN, MX, S) - #define parts_sint_to_float(P, I, Z, S) \ PARTS_GENERIC_64_128(sint_to_float, P)(P, I, Z, S) =20 @@ -3181,7 +3168,7 @@ int8_t float16_to_int8_scalbn(float16 a, FloatRoundMo= de rmode, int scale, FloatParts64 p; =20 float16_unpack_canonical(&p, a, s); - return parts_float_to_sint(&p, rmode, scale, INT8_MIN, INT8_MAX, s); + return parts64_float_to_sint(&p, rmode, scale, INT8_MIN, INT8_MAX, s); } =20 int16_t float16_to_int16_scalbn(float16 a, FloatRoundMode rmode, int scale, @@ -3190,7 +3177,7 @@ int16_t float16_to_int16_scalbn(float16 a, FloatRound= Mode rmode, int scale, FloatParts64 p; =20 float16_unpack_canonical(&p, a, s); - return parts_float_to_sint(&p, rmode, scale, INT16_MIN, INT16_MAX, s); + return parts64_float_to_sint(&p, rmode, scale, INT16_MIN, INT16_MAX, s= ); } =20 int32_t float16_to_int32_scalbn(float16 a, FloatRoundMode rmode, int scale, @@ -3199,7 +3186,7 @@ int32_t float16_to_int32_scalbn(float16 a, FloatRound= Mode rmode, int scale, FloatParts64 p; =20 float16_unpack_canonical(&p, a, s); - return parts_float_to_sint(&p, rmode, scale, INT32_MIN, INT32_MAX, s); + return parts64_float_to_sint(&p, rmode, scale, INT32_MIN, INT32_MAX, s= ); } =20 int64_t float16_to_int64_scalbn(float16 a, FloatRoundMode rmode, int scale, @@ -3208,7 +3195,7 @@ int64_t float16_to_int64_scalbn(float16 a, FloatRound= Mode rmode, int scale, FloatParts64 p; =20 float16_unpack_canonical(&p, a, s); - return parts_float_to_sint(&p, rmode, scale, INT64_MIN, INT64_MAX, s); + return parts64_float_to_sint(&p, rmode, scale, INT64_MIN, INT64_MAX, s= ); } =20 int16_t float32_to_int16_scalbn(float32 a, FloatRoundMode rmode, int scale, @@ -3217,7 +3204,7 @@ int16_t float32_to_int16_scalbn(float32 a, FloatRound= Mode rmode, int scale, FloatParts64 p; =20 float32_unpack_canonical(&p, a, s); - return parts_float_to_sint(&p, rmode, scale, INT16_MIN, INT16_MAX, s); + return parts64_float_to_sint(&p, rmode, scale, INT16_MIN, INT16_MAX, s= ); } =20 int32_t float32_to_int32_scalbn(float32 a, FloatRoundMode rmode, int scale, @@ -3226,7 +3213,7 @@ int32_t float32_to_int32_scalbn(float32 a, FloatRound= Mode rmode, int scale, FloatParts64 p; =20 float32_unpack_canonical(&p, a, s); - return parts_float_to_sint(&p, rmode, scale, INT32_MIN, INT32_MAX, s); + return parts64_float_to_sint(&p, rmode, scale, INT32_MIN, INT32_MAX, s= ); } =20 int64_t float32_to_int64_scalbn(float32 a, FloatRoundMode rmode, int scale, @@ -3235,7 +3222,7 @@ int64_t float32_to_int64_scalbn(float32 a, FloatRound= Mode rmode, int scale, FloatParts64 p; =20 float32_unpack_canonical(&p, a, s); - return parts_float_to_sint(&p, rmode, scale, INT64_MIN, INT64_MAX, s); + return parts64_float_to_sint(&p, rmode, scale, INT64_MIN, INT64_MAX, s= ); } =20 int16_t float64_to_int16_scalbn(float64 a, FloatRoundMode rmode, int scale, @@ -3244,7 +3231,7 @@ int16_t float64_to_int16_scalbn(float64 a, FloatRound= Mode rmode, int scale, FloatParts64 p; =20 float64_unpack_canonical(&p, a, s); - return parts_float_to_sint(&p, rmode, scale, INT16_MIN, INT16_MAX, s); + return parts64_float_to_sint(&p, rmode, scale, INT16_MIN, INT16_MAX, s= ); } =20 int32_t float64_to_int32_scalbn(float64 a, FloatRoundMode rmode, int scale, @@ -3253,7 +3240,7 @@ int32_t float64_to_int32_scalbn(float64 a, FloatRound= Mode rmode, int scale, FloatParts64 p; =20 float64_unpack_canonical(&p, a, s); - return parts_float_to_sint(&p, rmode, scale, INT32_MIN, INT32_MAX, s); + return parts64_float_to_sint(&p, rmode, scale, INT32_MIN, INT32_MAX, s= ); } =20 int64_t float64_to_int64_scalbn(float64 a, FloatRoundMode rmode, int scale, @@ -3262,7 +3249,7 @@ int64_t float64_to_int64_scalbn(float64 a, FloatRound= Mode rmode, int scale, FloatParts64 p; =20 float64_unpack_canonical(&p, a, s); - return parts_float_to_sint(&p, rmode, scale, INT64_MIN, INT64_MAX, s); + return parts64_float_to_sint(&p, rmode, scale, INT64_MIN, INT64_MAX, s= ); } =20 int8_t bfloat16_to_int8_scalbn(bfloat16 a, FloatRoundMode rmode, int scale, @@ -3271,7 +3258,7 @@ int8_t bfloat16_to_int8_scalbn(bfloat16 a, FloatRound= Mode rmode, int scale, FloatParts64 p; =20 bfloat16_unpack_canonical(&p, a, s); - return parts_float_to_sint(&p, rmode, scale, INT8_MIN, INT8_MAX, s); + return parts64_float_to_sint(&p, rmode, scale, INT8_MIN, INT8_MAX, s); } =20 int16_t bfloat16_to_int16_scalbn(bfloat16 a, FloatRoundMode rmode, int sca= le, @@ -3280,7 +3267,7 @@ int16_t bfloat16_to_int16_scalbn(bfloat16 a, FloatRou= ndMode rmode, int scale, FloatParts64 p; =20 bfloat16_unpack_canonical(&p, a, s); - return parts_float_to_sint(&p, rmode, scale, INT16_MIN, INT16_MAX, s); + return parts64_float_to_sint(&p, rmode, scale, INT16_MIN, INT16_MAX, s= ); } =20 int32_t bfloat16_to_int32_scalbn(bfloat16 a, FloatRoundMode rmode, int sca= le, @@ -3289,7 +3276,7 @@ int32_t bfloat16_to_int32_scalbn(bfloat16 a, FloatRou= ndMode rmode, int scale, FloatParts64 p; =20 bfloat16_unpack_canonical(&p, a, s); - return parts_float_to_sint(&p, rmode, scale, INT32_MIN, INT32_MAX, s); + return parts64_float_to_sint(&p, rmode, scale, INT32_MIN, INT32_MAX, s= ); } =20 int64_t bfloat16_to_int64_scalbn(bfloat16 a, FloatRoundMode rmode, int sca= le, @@ -3298,7 +3285,7 @@ int64_t bfloat16_to_int64_scalbn(bfloat16 a, FloatRou= ndMode rmode, int scale, FloatParts64 p; =20 bfloat16_unpack_canonical(&p, a, s); - return parts_float_to_sint(&p, rmode, scale, INT64_MIN, INT64_MAX, s); + return parts64_float_to_sint(&p, rmode, scale, INT64_MIN, INT64_MAX, s= ); } =20 static int32_t float128_to_int32_scalbn(float128 a, FloatRoundMode rmode, @@ -3307,7 +3294,7 @@ static int32_t float128_to_int32_scalbn(float128 a, F= loatRoundMode rmode, FloatParts128 p; =20 float128_unpack_canonical(&p, a, s); - return parts_float_to_sint(&p, rmode, scale, INT32_MIN, INT32_MAX, s); + return parts128_float_to_sint(&p, rmode, scale, INT32_MIN, INT32_MAX, = s); } =20 static int64_t float128_to_int64_scalbn(float128 a, FloatRoundMode rmode, @@ -3316,7 +3303,7 @@ static int64_t float128_to_int64_scalbn(float128 a, F= loatRoundMode rmode, FloatParts128 p; =20 float128_unpack_canonical(&p, a, s); - return parts_float_to_sint(&p, rmode, scale, INT64_MIN, INT64_MAX, s); + return parts128_float_to_sint(&p, rmode, scale, INT64_MIN, INT64_MAX, = s); } =20 static Int128 float128_to_int128_scalbn(float128 a, FloatRoundMode rmode, @@ -3382,7 +3369,7 @@ static int32_t floatx80_to_int32_scalbn(floatx80 a, F= loatRoundMode rmode, if (!floatx80_unpack_canonical(&p, a, s)) { parts128_default_nan(&p, s); } - return parts_float_to_sint(&p, rmode, scale, INT32_MIN, INT32_MAX, s); + return parts128_float_to_sint(&p, rmode, scale, INT32_MIN, INT32_MAX, = s); } =20 static int64_t floatx80_to_int64_scalbn(floatx80 a, FloatRoundMode rmode, @@ -3393,7 +3380,7 @@ static int64_t floatx80_to_int64_scalbn(floatx80 a, F= loatRoundMode rmode, if (!floatx80_unpack_canonical(&p, a, s)) { parts128_default_nan(&p, s); } - return parts_float_to_sint(&p, rmode, scale, INT64_MIN, INT64_MAX, s); + return parts128_float_to_sint(&p, rmode, scale, INT64_MIN, INT64_MAX, = s); } =20 int8_t float16_to_int8(float16 a, float_status *s) --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501743; cv=none; d=zohomail.com; s=zohoarc; b=YSTt8mMOjxxY0KUR61gR0Kf+nVEatTSCzfZ+5n2oJAQtQ/nYNjNFaeX4fppuzIfeoDN/jP4jzxlk72CqJqXLC5j65Exe2CqOn/4HdyfrpGhVv18Z7eIjSEcopu6GX6twfIWS4p2udtDXKLl8B5IYR5mlPf+g20TPpNQKuyBr6pI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501743; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=wkY6y2QwlgEZaR7GYvmrCRyKHQoVrH7Yh5h4fvSE73U=; b=kb/CQj3GtrazoNLcUZaTASgcBrftX8+RfHzB1USoCVHQWGr0NzwHzdNthuezKmt4C7NTIq6PQhE4R7YlYntBcIlJJVg0G3RGX6ZMq04Hxr7OtYUPHFbY89YgeFigp+wsAFlJr3PWqDPVQMREcYp9FtRk3kQ4Ungx+Vva05MBZLc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501743845454.02791196176395; Wed, 29 Apr 2026 15:29:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDLn-0000Om-CD; Wed, 29 Apr 2026 18:25:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDLm-0000OW-7M for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:46 -0400 Received: from mail-pj1-x1029.google.com ([2607:f8b0:4864:20::1029]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDLk-00052r-3G for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:45 -0400 Received: by mail-pj1-x1029.google.com with SMTP id 98e67ed59e1d1-35da9692ec3so264703a91.1 for ; Wed, 29 Apr 2026 15:25:43 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.25.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:25:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501542; x=1778106342; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=wkY6y2QwlgEZaR7GYvmrCRyKHQoVrH7Yh5h4fvSE73U=; b=y4Zt8A6dWCGHk9RWdgaa3+lOecPR8opr/xQynKc3TDvE4498dPzWuDO7HzVSXPbXp3 T9oVObO865tAnRr56J1FYJh3GfskYzIL/dd+2cmwPYVo9wweo258iKKm7/wUq3cEB1TT 2IoWsZkD+hnycgZOmSgC5aEUiomGmD5DjCWqwKVc6fXhUhssra7KS0UHA3EDjPI1h1JA qxtDH6TAfRYcSs6j0Rkuuh4esYAe1+vIO7SyPz8jkFv/npDYCtMgPVKi3b7lAXA9P+qI PPDWE3oFj1NY4K+kIdqpAUXSHZOQ7yH2iNzyTb7GC6YAarDYpLRC0/SmN7CWtsiCPvQL jCHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501542; x=1778106342; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=wkY6y2QwlgEZaR7GYvmrCRyKHQoVrH7Yh5h4fvSE73U=; b=rlcvQ5w2ufoTAHKvtRCl6SAcKZdFrQ77ndN/oTNvyFCvG4H0vCB7Q7dB1hWlpKgqLq nOkIr/kSTFC5Y9xpaJE0uqYEi/u5geL+Vkjn4h+epXGyK7IvaAlgi8gKhZbe9cgiIZjA cu3002Xwgz9b0CxBAfauoa55uB1Oy3roq7dhdJ87vb6jDHNxrB48grwztOOxttKIBiCw QiiOLZVcRavrOgkBSftEfa35TKbFhX9+d0q3lhkEFDW+bdGfhBVAQBUZIqD0lmh1nV6X hUGHkInpe5TZvThg2Ibfy4twHPgAnHRj+YW8pO2qXb5/MkNtTLAZ4lPvCK39kw1ZiItq G7RQ== X-Gm-Message-State: AOJu0YydJGVJR7zjGzcCKKxv9FJWRZliUQIKYrXp2P0CTZhkcjdH+c36 88NORxqE0G6t9nV+PGi1SGNmi6fjiso514YWkbJZ2q/M+MfZM6ihn6IqGDjWomegA49H3WN4Ujn LNkK7wxo= X-Gm-Gg: AeBDiet99IDH09poifIjLMYxhbWOGh/9uY4x5QjDXY0B0k+UPrne7wMoQd5RxdIGrVr hG3QWqVG/aKkCVZ7EwKsM1xR/7rx0yI27tQyXDjs9pYP6aSt1M+LVXfNCDe70g8n75EN967X2Oc nQXDP630feVNbQScw2AUO95M4EoZz5r9MClgCVUDH9iQRW7eV80fXJsbha9IKNotGi6XY6bUUmB dr0j5FukX5/wRShZNM+3yaJW+RGS8gX4hqfC8PZw5yOzsNnxRDAvoohMxYILqejswIKv/Apcpc4 Ei08mXjhX44ieBp3IRe/B2MDd1QygtO1Vum2deUIQjtaj+MSKfG58GlRAUiBg/348whITQxNtrn dt0O8QxpENVXUmI+VIceFmRaNS1RtpGBL8/KTljyy/KsE+f2iMj5fjmXOiKSKz3PtZuXH79FJ5y s4C5jznpoP0YXP5W0SZPFk4nyFA3dE91RpW2q+uW3b X-Received: by 2002:a17:90b:37c6:b0:364:8f64:49ea with SMTP id 98e67ed59e1d1-364c310e563mr170408a91.27.1777501542459; Wed, 29 Apr 2026 15:25:42 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 20/48] fpu: Drop parts_float_to_uint Date: Thu, 30 Apr 2026 08:24:17 +1000 Message-ID: <20260429222445.26301-21-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1029; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1029.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501744119158500 Use parts{64,128}_float_to_uint at each call site. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 42 ++++++++++++++++-------------------------- 1 file changed, 16 insertions(+), 26 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 42ef537e12..869b592cd0 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -779,16 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const F= loatParts128 *p) FloatParts128 *: parts128_##NAME, \ FloatParts256 *: parts256_##NAME) =20 -static uint64_t parts64_float_to_uint(FloatParts64 *p, FloatRoundMode rmod= e, - int scale, uint64_t max, - float_status *s); -static uint64_t parts128_float_to_uint(FloatParts128 *p, FloatRoundMode rm= ode, - int scale, uint64_t max, - float_status *s); - -#define parts_float_to_uint(P, R, Z, M, S) \ - PARTS_GENERIC_64_128(float_to_uint, P)(P, R, Z, M, S) - static int64_t parts64_float_to_sint_modulo(FloatParts64 *p, FloatRoundMode rmode, int bitsm1, float_status *s); @@ -3596,7 +3586,7 @@ uint8_t float16_to_uint8_scalbn(float16 a, FloatRound= Mode rmode, int scale, FloatParts64 p; =20 float16_unpack_canonical(&p, a, s); - return parts_float_to_uint(&p, rmode, scale, UINT8_MAX, s); + return parts64_float_to_uint(&p, rmode, scale, UINT8_MAX, s); } =20 uint16_t float16_to_uint16_scalbn(float16 a, FloatRoundMode rmode, int sca= le, @@ -3605,7 +3595,7 @@ uint16_t float16_to_uint16_scalbn(float16 a, FloatRou= ndMode rmode, int scale, FloatParts64 p; =20 float16_unpack_canonical(&p, a, s); - return parts_float_to_uint(&p, rmode, scale, UINT16_MAX, s); + return parts64_float_to_uint(&p, rmode, scale, UINT16_MAX, s); } =20 uint32_t float16_to_uint32_scalbn(float16 a, FloatRoundMode rmode, int sca= le, @@ -3614,7 +3604,7 @@ uint32_t float16_to_uint32_scalbn(float16 a, FloatRou= ndMode rmode, int scale, FloatParts64 p; =20 float16_unpack_canonical(&p, a, s); - return parts_float_to_uint(&p, rmode, scale, UINT32_MAX, s); + return parts64_float_to_uint(&p, rmode, scale, UINT32_MAX, s); } =20 uint64_t float16_to_uint64_scalbn(float16 a, FloatRoundMode rmode, int sca= le, @@ -3623,7 +3613,7 @@ uint64_t float16_to_uint64_scalbn(float16 a, FloatRou= ndMode rmode, int scale, FloatParts64 p; =20 float16_unpack_canonical(&p, a, s); - return parts_float_to_uint(&p, rmode, scale, UINT64_MAX, s); + return parts64_float_to_uint(&p, rmode, scale, UINT64_MAX, s); } =20 uint16_t float32_to_uint16_scalbn(float32 a, FloatRoundMode rmode, int sca= le, @@ -3632,7 +3622,7 @@ uint16_t float32_to_uint16_scalbn(float32 a, FloatRou= ndMode rmode, int scale, FloatParts64 p; =20 float32_unpack_canonical(&p, a, s); - return parts_float_to_uint(&p, rmode, scale, UINT16_MAX, s); + return parts64_float_to_uint(&p, rmode, scale, UINT16_MAX, s); } =20 uint32_t float32_to_uint32_scalbn(float32 a, FloatRoundMode rmode, int sca= le, @@ -3641,7 +3631,7 @@ uint32_t float32_to_uint32_scalbn(float32 a, FloatRou= ndMode rmode, int scale, FloatParts64 p; =20 float32_unpack_canonical(&p, a, s); - return parts_float_to_uint(&p, rmode, scale, UINT32_MAX, s); + return parts64_float_to_uint(&p, rmode, scale, UINT32_MAX, s); } =20 uint64_t float32_to_uint64_scalbn(float32 a, FloatRoundMode rmode, int sca= le, @@ -3650,7 +3640,7 @@ uint64_t float32_to_uint64_scalbn(float32 a, FloatRou= ndMode rmode, int scale, FloatParts64 p; =20 float32_unpack_canonical(&p, a, s); - return parts_float_to_uint(&p, rmode, scale, UINT64_MAX, s); + return parts64_float_to_uint(&p, rmode, scale, UINT64_MAX, s); } =20 uint16_t float64_to_uint16_scalbn(float64 a, FloatRoundMode rmode, int sca= le, @@ -3659,7 +3649,7 @@ uint16_t float64_to_uint16_scalbn(float64 a, FloatRou= ndMode rmode, int scale, FloatParts64 p; =20 float64_unpack_canonical(&p, a, s); - return parts_float_to_uint(&p, rmode, scale, UINT16_MAX, s); + return parts64_float_to_uint(&p, rmode, scale, UINT16_MAX, s); } =20 uint32_t float64_to_uint32_scalbn(float64 a, FloatRoundMode rmode, int sca= le, @@ -3668,7 +3658,7 @@ uint32_t float64_to_uint32_scalbn(float64 a, FloatRou= ndMode rmode, int scale, FloatParts64 p; =20 float64_unpack_canonical(&p, a, s); - return parts_float_to_uint(&p, rmode, scale, UINT32_MAX, s); + return parts64_float_to_uint(&p, rmode, scale, UINT32_MAX, s); } =20 uint64_t float64_to_uint64_scalbn(float64 a, FloatRoundMode rmode, int sca= le, @@ -3677,7 +3667,7 @@ uint64_t float64_to_uint64_scalbn(float64 a, FloatRou= ndMode rmode, int scale, FloatParts64 p; =20 float64_unpack_canonical(&p, a, s); - return parts_float_to_uint(&p, rmode, scale, UINT64_MAX, s); + return parts64_float_to_uint(&p, rmode, scale, UINT64_MAX, s); } =20 uint8_t bfloat16_to_uint8_scalbn(bfloat16 a, FloatRoundMode rmode, @@ -3686,7 +3676,7 @@ uint8_t bfloat16_to_uint8_scalbn(bfloat16 a, FloatRou= ndMode rmode, FloatParts64 p; =20 bfloat16_unpack_canonical(&p, a, s); - return parts_float_to_uint(&p, rmode, scale, UINT8_MAX, s); + return parts64_float_to_uint(&p, rmode, scale, UINT8_MAX, s); } =20 uint16_t bfloat16_to_uint16_scalbn(bfloat16 a, FloatRoundMode rmode, @@ -3695,7 +3685,7 @@ uint16_t bfloat16_to_uint16_scalbn(bfloat16 a, FloatR= oundMode rmode, FloatParts64 p; =20 bfloat16_unpack_canonical(&p, a, s); - return parts_float_to_uint(&p, rmode, scale, UINT16_MAX, s); + return parts64_float_to_uint(&p, rmode, scale, UINT16_MAX, s); } =20 uint32_t bfloat16_to_uint32_scalbn(bfloat16 a, FloatRoundMode rmode, @@ -3704,7 +3694,7 @@ uint32_t bfloat16_to_uint32_scalbn(bfloat16 a, FloatR= oundMode rmode, FloatParts64 p; =20 bfloat16_unpack_canonical(&p, a, s); - return parts_float_to_uint(&p, rmode, scale, UINT32_MAX, s); + return parts64_float_to_uint(&p, rmode, scale, UINT32_MAX, s); } =20 uint64_t bfloat16_to_uint64_scalbn(bfloat16 a, FloatRoundMode rmode, @@ -3713,7 +3703,7 @@ uint64_t bfloat16_to_uint64_scalbn(bfloat16 a, FloatR= oundMode rmode, FloatParts64 p; =20 bfloat16_unpack_canonical(&p, a, s); - return parts_float_to_uint(&p, rmode, scale, UINT64_MAX, s); + return parts64_float_to_uint(&p, rmode, scale, UINT64_MAX, s); } =20 static uint32_t float128_to_uint32_scalbn(float128 a, FloatRoundMode rmode, @@ -3722,7 +3712,7 @@ static uint32_t float128_to_uint32_scalbn(float128 a,= FloatRoundMode rmode, FloatParts128 p; =20 float128_unpack_canonical(&p, a, s); - return parts_float_to_uint(&p, rmode, scale, UINT32_MAX, s); + return parts128_float_to_uint(&p, rmode, scale, UINT32_MAX, s); } =20 static uint64_t float128_to_uint64_scalbn(float128 a, FloatRoundMode rmode, @@ -3731,7 +3721,7 @@ static uint64_t float128_to_uint64_scalbn(float128 a,= FloatRoundMode rmode, FloatParts128 p; =20 float128_unpack_canonical(&p, a, s); - return parts_float_to_uint(&p, rmode, scale, UINT64_MAX, s); + return parts128_float_to_uint(&p, rmode, scale, UINT64_MAX, s); } =20 static Int128 float128_to_uint128_scalbn(float128 a, FloatRoundMode rmode, --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501732; cv=none; d=zohomail.com; s=zohoarc; b=Q2oO2wR7mNdywSYk4xw4CTYkZU6FW+tfjuhFU+tb0vgDI7Vf7DddcikGWUgXK5yttkkeqgY4bJzqTRQC1ZuZX8pufazZPCKc0q9UZrHs3TXcFE1p5hJnECb/xRlK2beNIP5ltWhNzKxr+vMXsTSunguU1Zt4/EO0BYistcaSKoU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501732; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=XMNMmP51MzAfmnEvRon5cWfF7WNzLdBZNzrwQ9eWX/c=; b=CBcVpmQeq7a+w0zyA5QRPC1M2sEU3sAcYuR01e/DkTd2FCV7JrcIHRjkzpHw7Dx6c9E6bqn8732KgTcXSojtZJC1UQRQ8JiGM8lqKA/aTeZmEsDsv4V8RiBoKAtqvrDs2gOU8G1aljM/9z0Ef6WrCmh6beofTFVBXa0iWqjHu04= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501732651234.75132442005486; Wed, 29 Apr 2026 15:28:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDLq-0000ZJ-Bw; Wed, 29 Apr 2026 18:25:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDLo-0000P8-B6 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:48 -0400 Received: from mail-pj1-x1030.google.com ([2607:f8b0:4864:20::1030]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDLm-00056S-Gk for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:48 -0400 Received: by mail-pj1-x1030.google.com with SMTP id 98e67ed59e1d1-35d9f68d011so109356a91.2 for ; Wed, 29 Apr 2026 15:25:46 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.25.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:25:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501545; x=1778106345; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=XMNMmP51MzAfmnEvRon5cWfF7WNzLdBZNzrwQ9eWX/c=; b=UciMemuXpMx7dhGucB2zn8TW+8KY3lWOwo5xalj4NWElg2W8+JeASUlSw5HLNkaZxU rG5/6k9meJKyzXH6TvdXMvtR/3sWPM5KA+moWsbr/9GYjgjQ7bxYffWCrGmlWTaqkuyv CK6MsG/FKWC2dQ8ICtQLFHsOT3XhReN2CyLQMTUEFtkbJ8cqhLp9a7KB2seeT3YmaCNr TuD3OLjaOMF1Xbs4kkxRQN9SS2Z57LOTSZ5xr0nHhZ+KVlE2WZcVuouVFsncA/X0y1CM Sf6TPNdqkSkI9uJKxMcpTB2uomAWcv7GMaa19j8XIbNBLCe+SMvnYHF0erTpHLlNcveS n7Hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501545; x=1778106345; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=XMNMmP51MzAfmnEvRon5cWfF7WNzLdBZNzrwQ9eWX/c=; b=P7V/SmfYAdFOJP5JazYfS//SyoqDIBxFCVEgste3IePFRwNt2zH1wS5R6e7S7wgySY 449XSUNWVCcOy8lEtIg14LNW2Y2+AAA5bDfB4oADWrKW1TsGJi0cqTZ7BT7GrMzZU6jc SLPO9poWgAW0qhzBBpjW/0Oxv1Co9A/IuZIHsWrBw5fXoPaNQ0WJ4A1IqSx1T1Uvr3zQ uLFH1Pxw1ldkeAgmTH72j3ixcSJXuIjwnCGwNW8/WoOiMZJ8J9LBwdjsT2txgqwhla7m yWJxeFxGmK5weW3MKnQCV9al0vppI5jAibANzsYgjQkb1ZFw162R6/G57I0afoTooBBa BIxg== X-Gm-Message-State: AOJu0YwOT0pjKhfaKiIfX+dgch8fRvd4gweO+8z8HyxcCmjFEPJXNDxN z+aQ4/ziWlQTYfoFeNu+bqv2GFG82eN66gYpqN5YQUxU3qhOGbZNyi5N4tZu13Zxw2GeYZfYBE+ R0OQWJjk= X-Gm-Gg: AeBDievgESicxW1hTOP6RNltboedSg8WgR/qLZxPb5Wu289a4we++EhHrIiotJD9UJR RygC7TgiS1iMpz2xr6ARhFHZg4DAuCG7qX3Fbf6zl/9kk7HFvKRbv/ClS3MCsYTO+wzTpyzHKh+ jHZIauXYuSBhP81SCigVtAp0em4pQQFE7ReHkb5Lh1ouxjcvcy+MmdM9heCZNxIAeV8Cx3mvxRD 8j6s99/OjQE9kxsZH793GE3m4N0fUSsV7lUJ1aQrdvcAcF0RGqupovXUUSJE5Nqy25OjPqK6Ii+ ck72+hhmvc1gX0Haakmw3ugxRL3QusAIKrSl7yzK2ohsqF/RCszZW9ptN/RV8zth2HM/1gXk0Xk QudtpUAEP/ycFV5qyKsoHEaKiLpXdVPiur8Uq2rtZkNx/Am1JrKjtPp/AFLvePvc6/tTn/DWskL 32OPwhISho1z0Q0Og+K/ON0WQ13QiqNNbLqad2l2lJRBvbZwu6o+k= X-Received: by 2002:a17:90b:1fc6:b0:35b:e4d8:e21d with SMTP id 98e67ed59e1d1-364c2f8216cmr167837a91.2.1777501544956; Wed, 29 Apr 2026 15:25:44 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 21/48] fpu: Drop parts_float_to_sint_modulo Date: Thu, 30 Apr 2026 08:24:18 +1000 Message-ID: <20260429222445.26301-22-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1030; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1030.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501736144158500 Use parts64_float_to_sint_modulo at each call site. That leaves parts128_float_to_sint_modulo unused, so move the whole function back to softfloat.c and specialize for FloatParts64. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 84 +++++++++++++++++++++++++++++++++------ fpu/softfloat-parts.c.inc | 79 ------------------------------------ 2 files changed, 72 insertions(+), 91 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 869b592cd0..0b2638c34b 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -779,16 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const F= loatParts128 *p) FloatParts128 *: parts128_##NAME, \ FloatParts256 *: parts256_##NAME) =20 -static int64_t parts64_float_to_sint_modulo(FloatParts64 *p, - FloatRoundMode rmode, - int bitsm1, float_status *s); -static int64_t parts128_float_to_sint_modulo(FloatParts128 *p, - FloatRoundMode rmode, - int bitsm1, float_status *s); - -#define parts_float_to_sint_modulo(P, R, M, S) \ - PARTS_GENERIC_64_128(float_to_sint_modulo, P)(P, R, M, S) - static void parts64_sint_to_float(FloatParts64 *p, int64_t a, int scale, float_status *s); static void parts128_sint_to_float(FloatParts128 *p, int64_t a, @@ -3558,13 +3548,83 @@ int64_t bfloat16_to_int64_round_to_zero(bfloat16 a,= float_status *s) return bfloat16_to_int64_scalbn(a, float_round_to_zero, 0, s); } =20 +/* + * Like partsN(float_to_sint), except do not saturate the result. + * Instead, return the rounded unbounded precision two's compliment result, + * modulo 2**(bitsm1 + 1). + */ +static int64_t parts64_float_to_sint_modulo(FloatParts64 *p, + FloatRoundMode rmode, + int bitsm1, float_status *s) +{ + int flags =3D 0; + uint64_t r; + bool overflow =3D false; + + switch (p->cls) { + case float_class_snan: + flags |=3D float_flag_invalid_snan; + /* fall through */ + case float_class_qnan: + flags |=3D float_flag_invalid; + r =3D 0; + break; + + case float_class_inf: + overflow =3D true; + r =3D 0; + break; + + case float_class_zero: + return 0; + + case float_class_normal: + case float_class_denormal: + /* TODO: 64 - 2 is frac_size for rounding; could use input fmt. */ + if (parts64_round_to_int_normal(p, rmode, 0, 64 - 2)) { + flags =3D float_flag_inexact; + } + + if (p->exp <=3D DECOMPOSED_BINARY_POINT) { + r =3D p->frac >> (DECOMPOSED_BINARY_POINT - p->exp); + if (p->exp < bitsm1) { + /* Result in range. */ + } else if (p->exp =3D=3D bitsm1) { + /* The only in-range value is INT_MIN. */ + overflow =3D !p->sign || p->frac !=3D DECOMPOSED_IMPLICIT_= BIT; + } else { + overflow =3D true; + } + } else { + /* Overflow, but there might still be bits to return. */ + int shl =3D p->exp - DECOMPOSED_BINARY_POINT; + r =3D (shl < 64 ? p->frac << shl : 0); + overflow =3D true; + } + + if (p->sign) { + r =3D -r; + } + break; + + default: + g_assert_not_reached(); + } + + if (overflow) { + flags =3D float_flag_invalid | float_flag_invalid_cvti; + } + float_raise(flags, s); + return r; +} + int32_t float64_to_int32_modulo(float64 a, FloatRoundMode rmode, float_status *s) { FloatParts64 p; =20 float64_unpack_canonical(&p, a, s); - return parts_float_to_sint_modulo(&p, rmode, 31, s); + return parts64_float_to_sint_modulo(&p, rmode, 31, s); } =20 int64_t float64_to_int64_modulo(float64 a, FloatRoundMode rmode, @@ -3573,7 +3633,7 @@ int64_t float64_to_int64_modulo(float64 a, FloatRound= Mode rmode, FloatParts64 p; =20 float64_unpack_canonical(&p, a, s); - return parts_float_to_sint_modulo(&p, rmode, 63, s); + return parts64_float_to_sint_modulo(&p, rmode, 63, s); } =20 /* diff --git a/fpu/softfloat-parts.c.inc b/fpu/softfloat-parts.c.inc index 9b719ac5cf..d8eb9f5b78 100644 --- a/fpu/softfloat-parts.c.inc +++ b/fpu/softfloat-parts.c.inc @@ -1415,85 +1415,6 @@ static uint64_t partsN(float_to_uint)(FloatPartsN *p= , FloatRoundMode rmode, return r; } =20 -/* - * Like partsN(float_to_sint), except do not saturate the result. - * Instead, return the rounded unbounded precision two's compliment result, - * modulo 2**(bitsm1 + 1). - */ -static int64_t partsN(float_to_sint_modulo)(FloatPartsN *p, - FloatRoundMode rmode, - int bitsm1, float_status *s) -{ - int flags =3D 0; - uint64_t r; - bool overflow =3D false; - - switch (p->cls) { - case float_class_snan: - flags |=3D float_flag_invalid_snan; - /* fall through */ - case float_class_qnan: - flags |=3D float_flag_invalid; - r =3D 0; - break; - - case float_class_inf: - overflow =3D true; - r =3D 0; - break; - - case float_class_zero: - return 0; - - case float_class_normal: - case float_class_denormal: - /* TODO: N - 2 is frac_size for rounding; could use input fmt. */ - if (partsN(round_to_int_normal)(p, rmode, 0, N - 2)) { - flags =3D float_flag_inexact; - } - - if (p->exp <=3D DECOMPOSED_BINARY_POINT) { - /* - * Because we rounded to integral, and exp < 64, - * we know frac_low is zero. - */ - r =3D p->frac_hi >> (DECOMPOSED_BINARY_POINT - p->exp); - if (p->exp < bitsm1) { - /* Result in range. */ - } else if (p->exp =3D=3D bitsm1) { - /* The only in-range value is INT_MIN. */ - overflow =3D !p->sign || p->frac_hi !=3D DECOMPOSED_IMPLIC= IT_BIT; - } else { - overflow =3D true; - } - } else { - /* Overflow, but there might still be bits to return. */ - int shl =3D p->exp - DECOMPOSED_BINARY_POINT; - if (shl < N) { - frac_shl(p, shl); - r =3D p->frac_hi; - } else { - r =3D 0; - } - overflow =3D true; - } - - if (p->sign) { - r =3D -r; - } - break; - - default: - g_assert_not_reached(); - } - - if (overflow) { - flags =3D float_flag_invalid | float_flag_invalid_cvti; - } - float_raise(flags, s); - return r; -} - /* * Integer to float conversions * --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501634; cv=none; d=zohomail.com; s=zohoarc; b=GdjrUC3GreSgal/BY/zvqaUhZsn0ZyoaFX9xEf5MmFKa6WfoC6kwHNna/E0raGjua8+P+BOsVpnDoPHrJAQDv3wB9Zw6jzIgCtkx6YmPvqeRSTk/uCilWLUjDqH06bRPgT9iMkrytY2EeGVrQwEYG3O3guFGsS1FRo4v9e3NrHw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501634; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=vhFqGDtxehCmCCSHm32/bhsUWFUsTM8ZpSgycIpHvuM=; b=h/ZcOX65M6yEh5qlGb4w5oHyC73V/1gpZHXpGftLZJxOyox6bGZbnVBt9u96NYLjSbEXHU2pRkxVf3/FKv1kgk5bRn5KodaYidjIpJUd+wY3M5eVHUWHwXwXYA0SAPrpTv05GK8Um7WuVaChEaGUGopKdLmjPKzBlQH+Akcxles= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501634034855.358468649578; Wed, 29 Apr 2026 15:27:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDLs-0000jO-IS; Wed, 29 Apr 2026 18:25:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDLr-0000ce-BN for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:51 -0400 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDLp-00057E-8N for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:50 -0400 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-35f9ab079bdso151212a91.2 for ; Wed, 29 Apr 2026 15:25:48 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.25.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:25:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501547; x=1778106347; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=vhFqGDtxehCmCCSHm32/bhsUWFUsTM8ZpSgycIpHvuM=; b=IxZxDqfFy/CktAYGOahohN6PzcyeTdNHfTmvaO4VHrMccTWqzz5lrD5edNMfW3tPD/ fFZXRpTxaQq0MCDjQaIEV52P8cmsTLvrE/bb5c1CwtUKv+o00GHbdaoDNJlOiyloH9E+ C/ChDYTscSHYXvVgWNcGaRNsS7VkuLSMdrvfy2Rj7dEnTxvCjwzNYiYdxj5BLHxMKi+i tmhAxZcFbQU2X5GxU9iSiOtxta8UQLtfNbrEoN1e9+GP9+ifaSjE19I3xlzfCNaHCMIL b0pWluHj5++FpUhnMnPBzPAXgxb7spabIZm/jdspGUrDUuQ6WubXATEp2qCdMhwoHY8C eI3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501547; x=1778106347; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=vhFqGDtxehCmCCSHm32/bhsUWFUsTM8ZpSgycIpHvuM=; b=czYblbPASOcEzsWYh8BS4onHvpZ9l4LDTQQ/y4t6vk/tlKKabUT3nc9E1ieaQzyFN4 ekoQ0tWTU1KLoMOJ9Wezptr1rJ2LfSMd1mm7zY4XHO4MCdBEq2vgDB3RliynaPlAOBZ/ mCUB3yLkxHTItljFoKMA+j+9ayo/R+MmEFirXPW4/Jp3zPddF3BuvBw0CM6E2vK+S2az VcoafxvQJvHMgWh3e2dPr/J+bzodGSLh7Syc9Sv7xDMbSbhnpoSx8K93PZ0zbIMTnDD7 svf48t1iHSHiK2uFv3ox7klCiCCxJcwUsPGzxVcJbQ5rjp2JsCz4HHYzks9Nn/dz4S9u ToQQ== X-Gm-Message-State: AOJu0YyEEJ34kwTFVZTs//R4nFAtSqG4IlNwSBH/ZHDDkQO2e/yxRfb6 /DeyUofgJOwtUG4aOKsJzEDWLoo298P+l8LVwJ0TMDQgGodSxrMtyDWCXGxjVCr3W/a1k/NJwkz xXOUtE6Y= X-Gm-Gg: AeBDieuBxDY07kFMg0XmsHRRd9IdyAJeXMR9JP5iBRFpKt6DxAGr9cwkwcYvPHz4V4b xMaXUy26Rw+VZt89B6wHr+xk2EPWH2vHqFjB1BlD1NlNNgVebu+5E8Kptn8GjrBYDbAob0vuLHl eGFI86WlbFJFeABXHYXVYOAE3NXkD7+CwtIEZt37/Fc1jbt63uwAP8VDlA/PDRvIaVZ9p7Uaa4P 84bOu31NhkqXEokwcE/nd/v1arXW1+Wnw4V7kX2rqYpBbLdBELL185gHDZ30pnJ5mcJjC2JJ5Hs K51GZ1l6X6C/5kOdfz1704gPXMNbkzaIlkuq0ra5NpZR1xxqzMfE5hXCZXbyadhRgtSHQniiAQS ai2pIZGNnnKlOi309k14/JGhxp49kHFAQ0y3SAeb0cAe2txwAsSXZcxdgLJ7B9t/mJYSNxIiqD2 muc+VjkuAlZs3abo7tDXYLVxda7AcWhQll+FR57Q9kWwcMzVoVQuQ= X-Received: by 2002:a17:90b:4a87:b0:35f:b5df:453 with SMTP id 98e67ed59e1d1-364c30ed44dmr186177a91.22.1777501547509; Wed, 29 Apr 2026 15:25:47 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 22/48] fpu: Drop parts_sint_to_float Date: Thu, 30 Apr 2026 08:24:19 +1000 Message-ID: <20260429222445.26301-23-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102a; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501636772154100 Use parts{64,128}_sint_to_float at each call site. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 18 +++++------------- fpu/softfloat-parts.c.inc | 2 +- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 0b2638c34b..bbfdf1a076 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -779,14 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const F= loatParts128 *p) FloatParts128 *: parts128_##NAME, \ FloatParts256 *: parts256_##NAME) =20 -static void parts64_sint_to_float(FloatParts64 *p, int64_t a, - int scale, float_status *s); -static void parts128_sint_to_float(FloatParts128 *p, int64_t a, - int scale, float_status *s); - -#define parts_sint_to_float(P, I, Z, S) \ - PARTS_GENERIC_64_128(sint_to_float, P)(P, I, Z, S) - static void parts64_uint_to_float(FloatParts64 *p, uint64_t a, int scale, float_status *s); static void parts128_uint_to_float(FloatParts128 *p, uint64_t a, @@ -4013,7 +4005,7 @@ float16 int64_to_float16_scalbn(int64_t a, int scale,= float_status *status) { FloatParts64 p; =20 - parts_sint_to_float(&p, a, scale, status); + parts64_sint_to_float(&p, a, scale, status); return float16_round_pack_canonical(&p, status); } =20 @@ -4098,7 +4090,7 @@ float64 int64_to_float64_scalbn(int64_t a, int scale,= float_status *status) return ur.s; } =20 - parts_sint_to_float(&p, a, scale, status); + parts64_sint_to_float(&p, a, scale, status); return float64_round_pack_canonical(&p, status); } =20 @@ -4131,7 +4123,7 @@ bfloat16 int64_to_bfloat16_scalbn(int64_t a, int scal= e, float_status *status) { FloatParts64 p; =20 - parts_sint_to_float(&p, a, scale, status); + parts64_sint_to_float(&p, a, scale, status); return bfloat16_round_pack_canonical(&p, status); } =20 @@ -4203,7 +4195,7 @@ float128 int64_to_float128(int64_t a, float_status *s= tatus) { FloatParts128 p; =20 - parts_sint_to_float(&p, a, 0, status); + parts128_sint_to_float(&p, a, 0, status); return float128_round_pack_canonical(&p, status); } =20 @@ -4216,7 +4208,7 @@ floatx80 int64_to_floatx80(int64_t a, float_status *s= tatus) { FloatParts128 p; =20 - parts_sint_to_float(&p, a, 0, status); + parts128_sint_to_float(&p, a, 0, status); return floatx80_round_pack_canonical(&p, status); } =20 diff --git a/fpu/softfloat-parts.c.inc b/fpu/softfloat-parts.c.inc index d8eb9f5b78..8405cf29cd 100644 --- a/fpu/softfloat-parts.c.inc +++ b/fpu/softfloat-parts.c.inc @@ -1779,7 +1779,7 @@ static void partsN(log2)(FloatPartsN *a, float_status= *s, const FloatFmt *fmt) r |=3D (a1 || a0 & ~DECOMPOSED_IMPLICIT_BIT); =20 exact: - parts_sint_to_float(a, a_exp, 0, s); + partsN(sint_to_float)(a, a_exp, 0, s); if (r =3D=3D 0) { return; } --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501602; cv=none; d=zohomail.com; s=zohoarc; b=JKamxIUieTH3TKarhCfQ/0Qe44wk3ga0wHVqnFH/r2BdWEL7nO8tP3wU11AM7DME30PbnZK8ZS46yeVC8mEVb4sk28iGJzbCEY1Z6K+uTiGZgSXXT37t8hB3BKQjdp3skfOW2o/+7l1SpRLnIMochwBsy9N8y0FgRXge5j+hpeQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501602; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ac5q/tTacElPucdQ/j5OD9vX31OKYPKzNeO8QvRD8MI=; b=GtgxGBsZIpXoRikS9bDRy7TxpPHzqqkMQSw+KKYgJbzM8kOL62/ILWFiAoenZiKqpwE3aMWUyhXVjs3UesVi5KUInG1hvIyjVXxbj8bQnbExc81Sk7Nxn6BzUDdlEuycHQ9rXKHWOmn28n0e+57JJko2f3HHafol4IZMZvx8p7c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501602831343.57256549572344; Wed, 29 Apr 2026 15:26:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDLv-0000n4-4k; Wed, 29 Apr 2026 18:25:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDLt-0000lQ-Gv for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:53 -0400 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDLr-00057W-H4 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:53 -0400 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-362e30526f8so86592a91.3 for ; Wed, 29 Apr 2026 15:25:51 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.25.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:25:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501550; x=1778106350; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ac5q/tTacElPucdQ/j5OD9vX31OKYPKzNeO8QvRD8MI=; b=qhkTK6BmtLH8GH8fR6zGVSLTUPAm66ErKYlgkYUJBGkLjaIguzLZenbWS45mc6A+kj 1EMbvU/upERW5/K/yj30qkuE+ta4L6dGLVobqYefBLPDbSHV4eWstqVgfZhhkqykNgJn 7Cgb2+hNcOF9nV959TPmp2nWIjgL3tq+LM+2nMyAS7Plc6jK6Ogy9o30ZGaIIc3f6C5K 9S+AGlrun4dJZi7T0fpuzQghcXJkcc0yPR4G8W2ehvv5iwJkVvlbM/Ikt4EwmyKrgrTF unf49puToOtGbGJf5ftAPJyZgu5IY3khxfLOurVjD6h7/OJIkIe69IUyjSqWavnKUEyY /ATA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501550; x=1778106350; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ac5q/tTacElPucdQ/j5OD9vX31OKYPKzNeO8QvRD8MI=; b=Ps8GUYtZvZ+N6Emcf1TeYVfXJMIx4REV2PAOH2qDvj6sh3pJG5iVPKSBR2ZaWg8lQd y8em2omfsZ44vyUcso4j+dvIi5dM+irS/r1rfihDYOpMxk98pM33NOGX+nDxFKMUFClk /VDCMc2hSnJK1+NtAaUjiy0d2COpdxxd9rR9CbUrMB3WlZCpFEF75T5nuXttqU3dMYM8 a3GPR3OYuq+CXv0UrgSdVbP+Pcev/YUqpUpUP27cmq+UzYvG2qf4HAYlKUuNdySfjYNw xJIwZLzHzSqAas+1KjgBtN2LF6FS3esGR0CyeA+S48V/KPasxLp3vwdgbZF17ouWEOpI 5XLQ== X-Gm-Message-State: AOJu0YwTXFENZhnS66YynHOT9/GVzu6Hz31EQtvaA10zl0T0iU8W4EYK GUUkB2+l4o2i7OQE/GPpOsI/LLdBhzHVPBigc5AmqYtGtpETmwUyFAW+gRmM6LSwKdFR0pDfOlT ppNtHuEE= X-Gm-Gg: AeBDievWAikSiWC9sUN7aArT8yybKCihU0nKVr/evZ7WSYHswdSB5Ka6nW8Zyny/TCv 7nmdnwzf+Ur9MmRrL29te7kniO37BbtveddUL9qVJWpwcGbSFpf3EjS55Dp+j/bn/TBLyfRiYMa Kz4zIt3tytox7KiIW8J40BE/aFnpbFGpSShhairBerlbYbedvisQ5/0q2Th6U85ypzUsDd8rjzm DSCZ0NQGcKhkJx0dxWpImKFVeX7EignZRik/ycoo1DztAkVOcDsbaEbhJwV7I8YzqOHsma6Cs8V LAYa6mbMj5QRV+ZXES3ZTdTJ3KRS8BpMfSaLHT6gM0xXT0keNWtPSh8Q/SY+q80eJeEp4ZcBeFa mbK52pwyajlnaV+fq0LEawEjvHzMvDuFJBBMTzQyXPaXASRtoF/K2BCEkeA1YUjFK01fi5q84t2 f6rNpKOjZNN+AL2vjrCWo43pHzhh9CUGfyEHiXbUWO X-Received: by 2002:a17:90b:5830:b0:35f:be11:b3e0 with SMTP id 98e67ed59e1d1-364c2f20cd7mr192496a91.2.1777501550115; Wed, 29 Apr 2026 15:25:50 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 23/48] fpu: Drop parts_uint_to_float Date: Thu, 30 Apr 2026 08:24:20 +1000 Message-ID: <20260429222445.26301-24-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102a; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501604330154100 Use parts{64,128}_uint_to_float at each call site. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index bbfdf1a076..8d5f3c48e7 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -779,14 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const F= loatParts128 *p) FloatParts128 *: parts128_##NAME, \ FloatParts256 *: parts256_##NAME) =20 -static void parts64_uint_to_float(FloatParts64 *p, uint64_t a, - int scale, float_status *s); -static void parts128_uint_to_float(FloatParts128 *p, uint64_t a, - int scale, float_status *s); - -#define parts_uint_to_float(P, I, Z, S) \ - PARTS_GENERIC_64_128(uint_to_float, P)(P, I, Z, S) - static FloatParts64 *parts64_minmax(FloatParts64 *a, FloatParts64 *b, float_status *s, int flags); static FloatParts128 *parts128_minmax(FloatParts128 *a, FloatParts128 *b, @@ -4225,7 +4217,7 @@ float16 uint64_to_float16_scalbn(uint64_t a, int scal= e, float_status *status) { FloatParts64 p; =20 - parts_uint_to_float(&p, a, scale, status); + parts64_uint_to_float(&p, a, scale, status); return float16_round_pack_canonical(&p, status); } =20 @@ -4270,7 +4262,7 @@ float32 uint64_to_float32_scalbn(uint64_t a, int scal= e, float_status *status) return ur.s; } =20 - parts_uint_to_float(&p, a, scale, status); + parts64_uint_to_float(&p, a, scale, status); return float32_round_pack_canonical(&p, status); } =20 @@ -4310,7 +4302,7 @@ float64 uint64_to_float64_scalbn(uint64_t a, int scal= e, float_status *status) return ur.s; } =20 - parts_uint_to_float(&p, a, scale, status); + parts64_uint_to_float(&p, a, scale, status); return float64_round_pack_canonical(&p, status); } =20 @@ -4343,7 +4335,7 @@ bfloat16 uint64_to_bfloat16_scalbn(uint64_t a, int sc= ale, float_status *status) { FloatParts64 p; =20 - parts_uint_to_float(&p, a, scale, status); + parts64_uint_to_float(&p, a, scale, status); return bfloat16_round_pack_canonical(&p, status); } =20 @@ -4386,7 +4378,7 @@ float128 uint64_to_float128(uint64_t a, float_status = *status) { FloatParts128 p; =20 - parts_uint_to_float(&p, a, 0, status); + parts128_uint_to_float(&p, a, 0, status); return float128_round_pack_canonical(&p, status); } =20 --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501581; cv=none; d=zohomail.com; s=zohoarc; b=PLT6JW6D1uZ9tIu/Ag+HxMNN963NiqkAW+kLm4lWC+mJ7pN32oPjv0li2kcxOzJ6mPA9WV7Cf07/Wbplg9eC9wQ25VXGm5+U7XSWgNkACG7v7PgHD4yDarbmaJWFjFLZ49Tt7zwMut+Nne+9WALXopWd6dabABEveB+QBE/VeMU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501581; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ia17UGYfL048eafy6/vvv8OZvpSWuBxXDVhOjIuZ0UU=; b=OrJSipk9UoWcfATr/ZUYtjmVzOx5t9BMQ1xuZOXjb0jed4QIhyClfEsKyMuphM1P2CKJ9NJn5CNGh4UxOFWF9q3GRukD3gRYL/8EITMQZty0gP6Ufs/G1kECvJIUgPNiEytLbhJH3WQb53nRDFSoe9WyqemzEorMlzLZEUG6yw8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501581515286.7516078570061; Wed, 29 Apr 2026 15:26:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDLw-0000qD-KB; Wed, 29 Apr 2026 18:25:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDLv-0000of-Ht for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:55 -0400 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDLt-00058C-Vk for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:55 -0400 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-35fc258aaa4so129287a91.2 for ; Wed, 29 Apr 2026 15:25:53 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.25.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:25:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501553; x=1778106353; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ia17UGYfL048eafy6/vvv8OZvpSWuBxXDVhOjIuZ0UU=; b=bRY0BBuWLlnTX4hdmE96UZ1PTDVTKPrtmKc3rXF6nWCyE/3ldbdGgdZABCPb3ZthLn OGvFb2vcThoVUjlJTm6ApsSkZb/9ZD4FhXVX0YgbgeTiD3Sga6SlJ1HcwLuqENQPdD/4 YNtenPJmP6IfGG/0oPnIUcLUM5Qp06dydk0CNuZAoLmGe380TvqpACbAbJvX5zap/6A2 mDEepJMg73LG+jfMtdp5iLcZVson2HQzTb3I55KgqJWrOUXnUDPbqRvqzLsR2K0mbuMT NWGJD7XduUizVT4uFEby/dcn1zDFzIC899lZStHzNXegCiE5aY0OKqLFrKi2yF5f0OjR mo7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501553; x=1778106353; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ia17UGYfL048eafy6/vvv8OZvpSWuBxXDVhOjIuZ0UU=; b=VodWjsw8YTfJJi+0+nSC2l/7Y05zE9xHpLcjUOMV45RL921Fc8We6hTcQe6kNFaj2F SanQ6Gpgvw1i9+bVvVkpIVTJNhnRIknvZkMoBeYCoRe3Jh4xuYbeCxfhmM7mXnzXK0aN YARnh+FBjocTy4Y5wElDE3FSGMUQvueo8mt2RN415QzR3alUzxD2g8YV3eZ9GCZZ9tFb Z4tLxcwCYxKO7tHfFuAORYInNXppP3M7BFKo1f8AHMkGZUyU+VysEd7caIiLEcsajNJA 7AQ6liFRVQFo8AGpwWMkAeDWodNwHBksNR1kJwH5uvMLJSfMI8T4TNWItpC6KEBlMXsj BDyw== X-Gm-Message-State: AOJu0Ywq+NAUa0S+RnKVSk/GAYz9v+jg4cR+cvCNL6TXVwUhMMw529Fd 3tCMtDQ7md8NiatdwQpCBFzzbb/DaAoSPXJPKStF7sol1/etehHfSPv0zVcTcobgJhDZ3/18+uW Lkr11MH8= X-Gm-Gg: AeBDieum8cWQhbKq86bD021ryGvCjyJCpMrhENZdrvErsB50A2AwoM27Z0dqnrxD2q1 FeuEz1BLkvp4eyBjOgrkak145Fbdn00UyafdGG2zrDQQKVrEYjrvVw0PbSfwuNyRT/up/+mfsBB e1wA3MGX8JRd2lIdjS6OiBlEW42W1J30BihkxLhZG0SCv0ZAUWP1ea2ElSujOFylKf6jq5peswB M7Vgz1bMJaFQ//P2qoBsoNEnPUrzLnebxM66o8QVrIDT66phjkb8/tWcrmZdTGS66F8AT8mvD9z BY0MB3Wh5Ya6x/ci/Xg/cDPCVHju4pNwv7gVRmH2a+W/SHUV3TdUMpPgomal4CYI1VKrZ+knUca 3nCHTd4VOs78XmUfrJ7Lpquviu6d4od/Vx3PViSW6OsbGdM5sSbIzZRObOzqZ3cBFiygdXpHfd8 ZIlJsOKGq7RBteQaBEW3XjnAFKmp7g/iAM5tqcJvEZLhWZnzS5CZ0= X-Received: by 2002:a17:90b:2d04:b0:364:7a37:4066 with SMTP id 98e67ed59e1d1-364c30f0b62mr161769a91.14.1777501552599; Wed, 29 Apr 2026 15:25:52 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 24/48] fpu: Drop parts_minmax Date: Thu, 30 Apr 2026 08:24:21 +1000 Message-ID: <20260429222445.26301-25-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1032; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1032.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501582120154100 Use parts{64,128}_minmax at each call site. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 8d5f3c48e7..158d539376 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -779,14 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const F= loatParts128 *p) FloatParts128 *: parts128_##NAME, \ FloatParts256 *: parts256_##NAME) =20 -static FloatParts64 *parts64_minmax(FloatParts64 *a, FloatParts64 *b, - float_status *s, int flags); -static FloatParts128 *parts128_minmax(FloatParts128 *a, FloatParts128 *b, - float_status *s, int flags); - -#define parts_minmax(A, B, S, F) \ - PARTS_GENERIC_64_128(minmax, A)(A, B, S, F) - static FloatRelation parts64_compare(FloatParts64 *a, FloatParts64 *b, float_status *s, bool q); static FloatRelation parts128_compare(FloatParts128 *a, FloatParts128 *b, @@ -4417,7 +4409,7 @@ static float16 float16_minmax(float16 a, float16 b, f= loat_status *s, int flags) =20 float16_unpack_canonical(&pa, a, s); float16_unpack_canonical(&pb, b, s); - pr =3D parts_minmax(&pa, &pb, s, flags); + pr =3D parts64_minmax(&pa, &pb, s, flags); =20 return float16_round_pack_canonical(pr, s); } @@ -4429,7 +4421,7 @@ static bfloat16 bfloat16_minmax(bfloat16 a, bfloat16 = b, =20 bfloat16_unpack_canonical(&pa, a, s); bfloat16_unpack_canonical(&pb, b, s); - pr =3D parts_minmax(&pa, &pb, s, flags); + pr =3D parts64_minmax(&pa, &pb, s, flags); =20 return bfloat16_round_pack_canonical(pr, s); } @@ -4440,7 +4432,7 @@ static float32 float32_minmax(float32 a, float32 b, f= loat_status *s, int flags) =20 float32_unpack_canonical(&pa, a, s); float32_unpack_canonical(&pb, b, s); - pr =3D parts_minmax(&pa, &pb, s, flags); + pr =3D parts64_minmax(&pa, &pb, s, flags); =20 return float32_round_pack_canonical(pr, s); } @@ -4451,7 +4443,7 @@ static float64 float64_minmax(float64 a, float64 b, f= loat_status *s, int flags) =20 float64_unpack_canonical(&pa, a, s); float64_unpack_canonical(&pb, b, s); - pr =3D parts_minmax(&pa, &pb, s, flags); + pr =3D parts64_minmax(&pa, &pb, s, flags); =20 return float64_round_pack_canonical(pr, s); } @@ -4463,7 +4455,7 @@ static float128 float128_minmax(float128 a, float128 = b, =20 float128_unpack_canonical(&pa, a, s); float128_unpack_canonical(&pb, b, s); - pr =3D parts_minmax(&pa, &pb, s, flags); + pr =3D parts128_minmax(&pa, &pb, s, flags); =20 return float128_round_pack_canonical(pr, s); } --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501729; cv=none; d=zohomail.com; s=zohoarc; b=Z3M15h7DATc8HCwE+DbAVMxSFsav44WDfem5GATdTheGFChNIqg0XrJFmQnLFE+65gbAm+dFws6/Gv5XbsypF0i3/zzNADUkb+mprdYt35hVg6vjmnQQEOvTya96JtLpLKJpRHzqWghW4/52sZPYOPGt0XcHN6rzn3RmmdOqibU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501729; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=xhNV1JSBOi39LblTgxFILqkjIcMCbg311nb9LeNaPVQ=; b=la4P19QdRExS8LO8MkbPq5+GDU4nLUy8p1ySEi0cDCknBXMoM3xLGAW4pDP3n6znkGHiazaI1SCUKlc0Mq4gCp5jiyIlM6HqwEhknMZOqRGH5XtFGQpNdyHF8GdeHV9i6s9AXKpEG7Rgw5ZwC9A/ncAqNJ0KTF/INpNkt7RGLZM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501729592380.89289391415946; Wed, 29 Apr 2026 15:28:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDM0-0000xL-5u; Wed, 29 Apr 2026 18:26:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDLy-0000tw-4c for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:58 -0400 Received: from mail-pj1-x1030.google.com ([2607:f8b0:4864:20::1030]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDLw-0005Ag-G6 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:25:57 -0400 Received: by mail-pj1-x1030.google.com with SMTP id 98e67ed59e1d1-35e563b0ee7so162494a91.1 for ; Wed, 29 Apr 2026 15:25:56 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.25.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:25:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501555; x=1778106355; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=xhNV1JSBOi39LblTgxFILqkjIcMCbg311nb9LeNaPVQ=; b=rVd/J3YNjK/zM1cXtkZcSWlWFi20oDJoqojF1obMUrvbTuj2Ro9Kg5iNSLdnAtjLPL fF6zkoHSZC5pJYoOUq6GQidCNlnpg3mn83cpoo8tV2mVOzYFTrrYcD8HYMp1fFmpylIT lUyIQiQT1teTcb6CO91r4cEMc72ELJ0OFumPlerhRMQ7p5qas3NKK5UnG+E9ujrfeIhg BTv+ZtYAPdBHoKQfZPo2KOmvkTFCThE7zg8BegB2WX9W3cjB6s5q59SK3k4CnhgtFZzd VH8W09EbwR5Ivvh6z1IGtP9sXUh2Nlk3X2qcN9446RiCVoTxPp8r25JD0tmLo8W9ZcWG 71Hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501555; x=1778106355; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=xhNV1JSBOi39LblTgxFILqkjIcMCbg311nb9LeNaPVQ=; b=U+Go5N0RgCHjTk24HpDbC3gsJ2tPSclr56xxoS88INf4+R+geXjAo0aKaaFhTpOMa8 vLeyuGXi/DkohiXcwoA/S1R47xejR3+UHL6hnBVP7PxMVooN4uyqfqa6LtCKIBi1IjO1 Vm5Fu96XdR//6ahLOO18F0dfbSsg0sZcEvfh4noEdzJ4y87Y00GxZjs7rfBJNMUVMza+ TYFAiy0yh2qQ0OHahtWDy1Cv7vEJ8+Bx11Lii888PgkR4DY8zJt63y4jAo/MGcu4DTeI s9AfHAcwGikwn/oT28kW/RROhSwxEVy4WU63LKJwwJfuF5g6FeuQpa0aOepb/wvDU+0l /tyA== X-Gm-Message-State: AOJu0YzhiyhlcUaHoeMZufsZRrw9qZRvze8bG3rQagfjzCIHNu4QfaMH Ssh80g6yH5GYKXuOfL9QhQ9AuID3Cs6Z8hjj3o70dWE3i+C6bY663g1UZ+1GD6MhAdUyme0frrg 59oUBCY0= X-Gm-Gg: AeBDieuIjKx4pFbHHiw2/asdhlQB0X4JcMs1nSMZrbXu1ZWnKjq8Qg8POneULlf6Pmc eLzICQnPUA3UBXw2UqO4oMYHsrS/x41l81ok2FHmnIcrvjUEWQr43t4nlkNQylyTtJnhnyMQxPp TberQW47lDpP1GdMi7ylZ1k5NhfOMr1xw87mp3+ri1lcvnrXLUzcl7KifoZjRhFvIMi634sMVix DjMZOa/fhnZbtaxgxNm5NvofKpPfyN0fxL1F0TLFMAMVoVM+fhjKAotZZsBel5nycsoMm1G48Ug px3C+DZh9qCUJqnznPW7sW9m9QeGCTEJpRYsw3J3Q98P8xqT3yN4vh7AtI1ENC2yxkSx3wUOUrI gUL/RnLgwB9nqCKXZdoxXsJ2mvk+vgJTOcZFzfjdB3OiyQjG/LFgKYGtrxUy+j+SHNJvUQIXOUi gAovMkK37t1fPh4968sunuQsyF2XScrrTlbNn09vSW X-Received: by 2002:a17:90b:2f48:b0:35f:c1cc:fee0 with SMTP id 98e67ed59e1d1-364c3409173mr115273a91.8.1777501555158; Wed, 29 Apr 2026 15:25:55 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 25/48] fpu: Drop parts_compare Date: Thu, 30 Apr 2026 08:24:22 +1000 Message-ID: <20260429222445.26301-26-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1030; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1030.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501730027154100 Use parts{64,128}_compare at each call site. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 158d539376..3aebe4a058 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -779,14 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const F= loatParts128 *p) FloatParts128 *: parts128_##NAME, \ FloatParts256 *: parts256_##NAME) =20 -static FloatRelation parts64_compare(FloatParts64 *a, FloatParts64 *b, - float_status *s, bool q); -static FloatRelation parts128_compare(FloatParts128 *a, FloatParts128 *b, - float_status *s, bool q); - -#define parts_compare(A, B, S, Q) \ - PARTS_GENERIC_64_128(compare, A)(A, B, S, Q) - static void parts64_scalbn(FloatParts64 *a, int n, float_status *s); static void parts128_scalbn(FloatParts128 *a, int n, float_status *s); =20 @@ -4494,7 +4486,7 @@ float16_do_compare(float16 a, float16 b, float_status= *s, bool is_quiet) =20 float16_unpack_canonical(&pa, a, s); float16_unpack_canonical(&pb, b, s); - return parts_compare(&pa, &pb, s, is_quiet); + return parts64_compare(&pa, &pb, s, is_quiet); } =20 FloatRelation float16_compare(float16 a, float16 b, float_status *s) @@ -4514,7 +4506,7 @@ float32_do_compare(float32 a, float32 b, float_status= *s, bool is_quiet) =20 float32_unpack_canonical(&pa, a, s); float32_unpack_canonical(&pb, b, s); - return parts_compare(&pa, &pb, s, is_quiet); + return parts64_compare(&pa, &pb, s, is_quiet); } =20 static FloatRelation QEMU_FLATTEN @@ -4568,7 +4560,7 @@ float64_do_compare(float64 a, float64 b, float_status= *s, bool is_quiet) =20 float64_unpack_canonical(&pa, a, s); float64_unpack_canonical(&pb, b, s); - return parts_compare(&pa, &pb, s, is_quiet); + return parts64_compare(&pa, &pb, s, is_quiet); } =20 static FloatRelation QEMU_FLATTEN @@ -4622,7 +4614,7 @@ bfloat16_do_compare(bfloat16 a, bfloat16 b, float_sta= tus *s, bool is_quiet) =20 bfloat16_unpack_canonical(&pa, a, s); bfloat16_unpack_canonical(&pb, b, s); - return parts_compare(&pa, &pb, s, is_quiet); + return parts64_compare(&pa, &pb, s, is_quiet); } =20 FloatRelation bfloat16_compare(bfloat16 a, bfloat16 b, float_status *s) @@ -4642,7 +4634,7 @@ float128_do_compare(float128 a, float128 b, float_sta= tus *s, bool is_quiet) =20 float128_unpack_canonical(&pa, a, s); float128_unpack_canonical(&pb, b, s); - return parts_compare(&pa, &pb, s, is_quiet); + return parts128_compare(&pa, &pb, s, is_quiet); } =20 FloatRelation float128_compare(float128 a, float128 b, float_status *s) @@ -4664,7 +4656,7 @@ floatx80_do_compare(floatx80 a, floatx80 b, float_sta= tus *s, bool is_quiet) !floatx80_unpack_canonical(&pb, b, s)) { return float_relation_unordered; } - return parts_compare(&pa, &pb, s, is_quiet); + return parts128_compare(&pa, &pb, s, is_quiet); } =20 FloatRelation floatx80_compare(floatx80 a, floatx80 b, float_status *s) @@ -5518,7 +5510,7 @@ static void parts_s390_divide_to_integer(FloatParts64= *a, FloatParts64 *b, saved_r_precise_sign =3D r_precise->sign; r->sign =3D false; r_precise->sign =3D false; - if (parts_compare(r, r_precise, status, true) < + if (parts64_compare(r, r_precise, status, true) < float_relation_equal) { *dxc =3D 0x8; } else { --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501583; cv=none; d=zohomail.com; s=zohoarc; b=c/b9BFaDZk7auh8bi0nHEnRwqOa8X4D7LUJZC0X7S1bh0IYPMaJ0r8Dq5Q61DI259OXCX4SUFp993sMdYcEdoiDvTNxT5O5hytWUazyeyPEIqeZAP3siPp0wNnuCf9hNr9C12sad/srU1JbXfxLa7n5nUwIsBEtzQ0xadE/VDjA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501583; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=vWRiQ8+0/5b0+mW+9xPCMkFbkAIHbfNeO2YSW11WGWA=; b=bBdeRhghFy1VHQvK2Utorp03SQjt7PROWnUcdYbdoYiyGGqKDNFfel9f2+zrxSu85PabEApQoJUAal7oFW4KXj6oCxi92w8cDXG0bAIOFSPrRQgOYOZQk7NuJIBka0s22v9z7GlZARsDw0ttPNgQKvUt6a87GFHiLgZt+fwNiv4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501583105277.849529623085; Wed, 29 Apr 2026 15:26:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDM2-0000y9-7v; Wed, 29 Apr 2026 18:26:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDM0-0000xf-LW for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:00 -0400 Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDLz-0005Cg-3i for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:00 -0400 Received: by mail-pj1-x1031.google.com with SMTP id 98e67ed59e1d1-362e50b4641so143010a91.0 for ; Wed, 29 Apr 2026 15:25:58 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.25.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:25:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501558; x=1778106358; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=vWRiQ8+0/5b0+mW+9xPCMkFbkAIHbfNeO2YSW11WGWA=; b=Uqp0O5HgzdDHUaGwJTw/KXSnR7P77RN4yuvVJvvidnNsMKUQujYolHfxIABqoZl6Wh zEtOgSrFDg+modz6cwyoOc5p9JeHP9/FLKIMWZbyW7QXHW+vjoGXSS1Sy59gOQS+A7kZ 4IgARtUS7BSkGRa9eLE6v9D9VFJNc8NmqEL2F7yVvpHBTBKFq9mySjx6yE34K3+JF/r/ lu5OdHJIkIrt4KboBDdDADAc6zqtceLX5qicoDJvn6pRP2aOUR67l8UiqaX6+bm+AXYl Qz3dyc1wb4RJs6rj93ea2nprH76V4SY9XMBzHgPuoOZfo/MkR1MGEvKnCJT+cM5znMYx JCJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501558; x=1778106358; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=vWRiQ8+0/5b0+mW+9xPCMkFbkAIHbfNeO2YSW11WGWA=; b=qClCGxCyiVzb3BAmb07/GoY2wi1uSfv6nMQAoAUC3qXzaD6sU+7r31ipDJZwsCuItH s6EZGuU8SDJXzbEGV9M2omx9HEqLgiRpahrA71PgQP9KYiCSyQ8Tes3Rt7juRSglA/ad egNomuWo+V3OVSYYltOpYZ09AqPkiIaGcjNkaMHtzRofgC1k8fFoCVHExCaFkMrwifPC Yhv6wjqtLWJPgHgYH2900dw+bBFac05co4frm+n+uLFknXdYEIydjsGAyGQHjMLlg7D8 YejnC18VtOz9Jq52El3K9tnAt2VCWI9MJh06minNOS8cqw0Ev+G2iAMxuLfIUjCsT4YH Gjew== X-Gm-Message-State: AOJu0Yw+a/QqgInFmxKGd4GynQWwhWurP7RQdv8pZVUG48InWyiG/m6m GU6DnK7TyPf2d/tzHxwO9QVpubsxuoayfP1PktqYvsCccpKaPzxftaKQWi4YjGD2Fg1h7posz2P ZeNwJSLw= X-Gm-Gg: AeBDiesivsTf6m3ECuJVOnDbV9XG63eIOk2aBp/nXt2RNN9gH3G1JyMZ5oClNM9fZFg ZRNlAL/CaMKHWuQMN8BFIcOTQtwRI6kPBZXPhijzXYijqtpliksekor6TJ8xDQsw6FqsaJZiygu JQIRoJY0tOsuj/yNJP9kwLbnEUa07K3AyQaAe2c2MsbsMCsH4YHmH/kmG46Rm/HyEylDcvqjqjC 1MKkCFhfM+GSHZjwC39/XN0FL5mFxS771XUJGsarR37FUt0Mim+al7nlCB1YQXrmnPwlG1R4zxM XqeWrbAr4GJH4qkp/RxuH3wS3QvyQVnqbd8zM0D7jByA816/xl1kB75Hl976aRphUrUitDD0Amf L62rbK3k9UvSU6QQdxPOhMhwq+Gkvz4V3XcFA/PJGFF0ruw7R2oZJSKKYnrIAYLk5jIa8EL+AVd 9eu/fW77bTRPa8pfqfPK7CwhxHrCgLVP25pIWUEedy X-Received: by 2002:a17:90b:3d0b:b0:361:423d:2026 with SMTP id 98e67ed59e1d1-364c2fce7cdmr202760a91.12.1777501557615; Wed, 29 Apr 2026 15:25:57 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 26/48] fpu: Drop parts_scalbn Date: Thu, 30 Apr 2026 08:24:23 +1000 Message-ID: <20260429222445.26301-27-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1031; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1031.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501584099154100 Use parts{64,128}_scalbn at each call site. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 3aebe4a058..3e6f2a152a 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -779,12 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const F= loatParts128 *p) FloatParts128 *: parts128_##NAME, \ FloatParts256 *: parts256_##NAME) =20 -static void parts64_scalbn(FloatParts64 *a, int n, float_status *s); -static void parts128_scalbn(FloatParts128 *a, int n, float_status *s); - -#define parts_scalbn(A, N, S) \ - PARTS_GENERIC_64_128(scalbn, A)(A, N, S) - static void parts64_log2(FloatParts64 *a, float_status *s, const FloatFmt = *f); static void parts128_log2(FloatParts128 *a, float_status *s, const FloatFm= t *f); =20 @@ -4678,7 +4672,7 @@ float16 float16_scalbn(float16 a, int n, float_status= *status) FloatParts64 p; =20 float16_unpack_canonical(&p, a, status); - parts_scalbn(&p, n, status); + parts64_scalbn(&p, n, status); return float16_round_pack_canonical(&p, status); } =20 @@ -4687,7 +4681,7 @@ float32 float32_scalbn(float32 a, int n, float_status= *status) FloatParts64 p; =20 float32_unpack_canonical(&p, a, status); - parts_scalbn(&p, n, status); + parts64_scalbn(&p, n, status); return float32_round_pack_canonical(&p, status); } =20 @@ -4696,7 +4690,7 @@ float64 float64_scalbn(float64 a, int n, float_status= *status) FloatParts64 p; =20 float64_unpack_canonical(&p, a, status); - parts_scalbn(&p, n, status); + parts64_scalbn(&p, n, status); return float64_round_pack_canonical(&p, status); } =20 @@ -4705,7 +4699,7 @@ bfloat16 bfloat16_scalbn(bfloat16 a, int n, float_sta= tus *status) FloatParts64 p; =20 bfloat16_unpack_canonical(&p, a, status); - parts_scalbn(&p, n, status); + parts64_scalbn(&p, n, status); return bfloat16_round_pack_canonical(&p, status); } =20 @@ -4714,7 +4708,7 @@ float128 float128_scalbn(float128 a, int n, float_sta= tus *status) FloatParts128 p; =20 float128_unpack_canonical(&p, a, status); - parts_scalbn(&p, n, status); + parts128_scalbn(&p, n, status); return float128_round_pack_canonical(&p, status); } =20 @@ -4725,7 +4719,7 @@ floatx80 floatx80_scalbn(floatx80 a, int n, float_sta= tus *status) if (!floatx80_unpack_canonical(&p, a, status)) { return floatx80_default_nan(status); } - parts_scalbn(&p, n, status); + parts128_scalbn(&p, n, status); return floatx80_round_pack_canonical(&p, status); } =20 --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501742; cv=none; d=zohomail.com; s=zohoarc; b=ethPXnr/IobwAa0hhjiAG+MwK66p2bCmtDfgaUEqddOtmt4LDsYblPQA+ypP7vw3iXe1sC3F7cIStBae0p2QNP3/jQrUGnUYqa7CKKdTqiUIZzKE1jLlu2m7P5eQXEWT9o0+4EVmO+wAccpjYbZ4nRGq4ds+YfKFe5+rYto/xPg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501742; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=HkVVgcXR9FY/FmfQ7IydeeiDi2LGHO9RixdHIp7B3JY=; b=UerPbXVZkDPrmQ7JFOaoGIpiC2XIn2NttzI3tXV1L+c7mneJ+pVnkd6p6HKSjZqNhFQsiFgLLTKoQ2jPvOrYPcziGbzyzNXrBLkXDb14zKl57Q5+VtEh8WcqSu9MvuhWEoVHhmZKpG/uZ5ssflybeWlT8XfdiyGApl5Cxp0KYNo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177750174262393.93242133608521; Wed, 29 Apr 2026 15:29:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDM6-00015G-3x; Wed, 29 Apr 2026 18:26:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDM3-0000yq-Ns for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:03 -0400 Received: from mail-pj1-x1030.google.com ([2607:f8b0:4864:20::1030]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDM1-0005D4-OQ for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:03 -0400 Received: by mail-pj1-x1030.google.com with SMTP id 98e67ed59e1d1-36146ae9dd4so179122a91.3 for ; Wed, 29 Apr 2026 15:26:01 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.25.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:25:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501560; x=1778106360; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=HkVVgcXR9FY/FmfQ7IydeeiDi2LGHO9RixdHIp7B3JY=; b=EI1WbAKEV6NpWTmTr6fBVuDN7lnwF0tu5GJkx0aS7bcgECjN7ka11WT5y4nVn4eHWz g9GjbQRejIDGkGqxIfeDvlr6ZwkjXfjqFcbUnvrqbQLvaELRzOdOvMOkd6DuF4wx+ZLg ktnjbHXvJFj+0b2d+0eIM8rg/XUuSAwtNY4Lx2ZhKwHI6//KaxPl4GKon7DOTnktt66B ov7dH0vVBYMDAcfjiDvv3LY2BIZ28gE/gU3qRpvsg3lQuYziK6p/rCfHc/uKCTpgBL1A puvWWEc9HDkMu066dzbeehzotUlDtgOnWsle96byGm/YP004hyTZhNERptYlB87/U4A9 ZuqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501560; x=1778106360; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=HkVVgcXR9FY/FmfQ7IydeeiDi2LGHO9RixdHIp7B3JY=; b=k+o5/q3bRyAnkcY/JUUxRUsCvE17PotOhepQDu3T/WJOp3QXDKug/o1GFMaXv2fZcA R34DYLNttd8rXP1Mrk9HiPy6d+vZylKR8elSpjfestQ0JsNAVm6JYVUeW9P3X94EdZOZ yOzC8NwNMJXIp/+0QirNWtcZJtpO93Vuy46QwVN2gfdH5vfMhBU8x/CRMblkOPd1CYwL p9sr8RpRwX8mzZnrDHnAJ1KiyM5q2/oPga0e30G9MGspvqw4safAMxloujtAj16yxggR cSUKvBg9bNAGV7E/KiSe04z8QJLZ/Kwh7V0ULZU3hnjg2AhEuA88Svf6gWcLHnYfnHJb E/rw== X-Gm-Message-State: AOJu0YwgjagT5rx5poXIIQbExNPZtLyJXQqj+WEljB44oAjrog+dObIy nZNLEvsiFlvn9aYo682DBCJrpCFqVKXU4ebTogLO+rAYOg3RmH6umR0sVUSlGZnvW1g+Sy4xLbI lpZn4BRE= X-Gm-Gg: AeBDieszQKAe08JoJp71Jiz6jV1LwjeRh2M9oag/pESqPV/GpjsM/llvwbfGIgEd0sk sMKzSrxCWkkB7NMOgfD0AH3fKBwq+kFsVnC6Hh9KS/M0Nd+UN0QBxhq6VhZawTZSG4YTnLlte0v 2BF5c74sgBTL3ya1Uiuh2HIJS0ELXOQ8wGc/T9Z91WZY97P/TbiAQNkICwzXT26dEin1gm8y0Hx Lcv9Q0Q5DTulvAS9V6Y2258YlblfIpbO0ykYkcXbclHegQ80q3B9fvChMBJF3Td8o8YwdryNiXa p86DDhfeESYsFVDufgy8jwmxjdOfwAywrj4sf/3paJprcUSshifc3g2Zytk4ygGcF6WGzrhYNcO WvTyeGYUUPCzDS35s26TrKqC/61G+IWW2mWNZf2s/7XyUrLfda77kYitrzl3Ak6j+AQdXzf83+F WJKykWvCD/j0+m9uVE4AwPy8y6Z2LMBLX2xzzQiUdT8mYXeDCogCs= X-Received: by 2002:a17:90b:264c:b0:359:fe72:3559 with SMTP id 98e67ed59e1d1-364c30ae64dmr192221a91.21.1777501560096; Wed, 29 Apr 2026 15:26:00 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 27/48] fpu: Drop parts_log2 Date: Thu, 30 Apr 2026 08:24:24 +1000 Message-ID: <20260429222445.26301-28-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1030; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1030.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501744191158500 Use parts64_log2 at each call site. That leaves parts128_log2 unused, so move the whole function back to softfloat.c and specialize for FloatParts64. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 133 +++++++++++++++++++++++++++++++++++--- fpu/softfloat-parts.c.inc | 131 ------------------------------------- 2 files changed, 125 insertions(+), 139 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 3e6f2a152a..6a38d161f7 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -779,12 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const F= loatParts128 *p) FloatParts128 *: parts128_##NAME, \ FloatParts256 *: parts256_##NAME) =20 -static void parts64_log2(FloatParts64 *a, float_status *s, const FloatFmt = *f); -static void parts128_log2(FloatParts128 *a, float_status *s, const FloatFm= t *f); - -#define parts_log2(A, S, F) \ - PARTS_GENERIC_64_128(log2, A)(A, S, F) - /* * Helper functions for softfloat-parts.c.inc, per-size operations. */ @@ -4851,12 +4845,135 @@ floatx80 floatx80_sqrt(floatx80 a, float_status *s) /* * log2 */ + +static void parts64_log2(FloatParts64 *a, float_status *s, const FloatFmt = *fmt) +{ + uint64_t a0, a1, r, t, ign; + int i, n, a_exp, f_exp; + + if (unlikely(a->cls !=3D float_class_normal)) { + switch (a->cls) { + case float_class_denormal: + if (!a->sign) { + /* -ve denormal will be InvalidOperation */ + float_raise(float_flag_input_denormal_used, s); + } + break; + case float_class_snan: + case float_class_qnan: + parts64_return_nan(a, s); + return; + case float_class_zero: + float_raise(float_flag_divbyzero, s); + /* log2(0) =3D -inf */ + a->cls =3D float_class_inf; + a->sign =3D 1; + return; + case float_class_inf: + if (unlikely(a->sign)) { + goto d_nan; + } + return; + default: + g_assert_not_reached(); + } + } + if (unlikely(a->sign)) { + goto d_nan; + } + + a_exp =3D a->exp; + f_exp =3D -1; + + r =3D 0; + t =3D DECOMPOSED_IMPLICIT_BIT; + a0 =3D a->frac_hi; + a1 =3D 0; + + n =3D fmt->frac_size + 2; + if (unlikely(a_exp =3D=3D -1)) { + /* + * When a_exp =3D=3D -1, we're computing the log2 of a value [0.5,= 1.0). + * When the value is very close to 1.0, there are lots of 1's in + * the msb parts of the fraction. At the end, when we subtract + * this value from -1.0, we can see a catastrophic loss of precisi= on, + * as 0x800..000 - 0x7ff..ffx becomes 0x000..00y, leaving only the + * bits of y in the final result. To minimize this, compute as ma= ny + * digits as we can. + * ??? This case needs another algorithm to avoid this. + */ + n =3D fmt->frac_size * 2 + 2; + /* Don't compute a value overlapping the sticky bit */ + n =3D MIN(n, 62); + } + + for (i =3D 0; i < n; i++) { + if (a1) { + mul128To256(a0, a1, a0, a1, &a0, &a1, &ign, &ign); + } else if (a0 & 0xffffffffull) { + mul64To128(a0, a0, &a0, &a1); + } else if (a0 & ~DECOMPOSED_IMPLICIT_BIT) { + a0 >>=3D 32; + a0 *=3D a0; + } else { + goto exact; + } + + if (a0 & DECOMPOSED_IMPLICIT_BIT) { + if (unlikely(a_exp =3D=3D 0 && r =3D=3D 0)) { + /* + * When a_exp =3D=3D 0, we're computing the log2 of a value + * [1.0,2.0). When the value is very close to 1.0, there + * are lots of 0's in the msb parts of the fraction. + * We need to compute more digits to produce a correct + * result -- restart at the top of the fraction. + * ??? This is likely to lose precision quickly, as for + * float128; we may need another method. + */ + f_exp -=3D i; + t =3D r =3D DECOMPOSED_IMPLICIT_BIT; + i =3D 0; + } else { + r |=3D t; + } + } else { + add128(a0, a1, a0, a1, &a0, &a1); + } + t >>=3D 1; + } + + /* Set sticky for inexact. */ + r |=3D (a1 || a0 & ~DECOMPOSED_IMPLICIT_BIT); + + exact: + parts64_sint_to_float(a, a_exp, 0, s); + if (r !=3D 0) { + FloatParts64 f =3D { + .cls =3D float_class_normal, .frac =3D r + }; + f.exp =3D f_exp - frac_normalize(&f); + + if (a_exp < 0) { + parts64_sub_normal(a, &f); + } else if (a_exp > 0) { + parts64_add_normal(a, &f); + } else { + *a =3D f; + } + } + return; + + d_nan: + float_raise(float_flag_invalid, s); + parts64_default_nan(a, s); +} + float32 float32_log2(float32 a, float_status *status) { FloatParts64 p; =20 float32_unpack_canonical(&p, a, status); - parts_log2(&p, status, &float32_params); + parts64_log2(&p, status, &float32_params); return float32_round_pack_canonical(&p, status); } =20 @@ -4865,7 +4982,7 @@ float64 float64_log2(float64 a, float_status *status) FloatParts64 p; =20 float64_unpack_canonical(&p, a, status); - parts_log2(&p, status, &float64_params); + parts64_log2(&p, status, &float64_params); return float64_round_pack_canonical(&p, status); } =20 diff --git a/fpu/softfloat-parts.c.inc b/fpu/softfloat-parts.c.inc index 8405cf29cd..5f27efd288 100644 --- a/fpu/softfloat-parts.c.inc +++ b/fpu/softfloat-parts.c.inc @@ -1671,134 +1671,3 @@ static void partsN(scalbn)(FloatPartsN *a, int n, f= loat_status *s) g_assert_not_reached(); } } - -/* - * Return log2(A) - */ -static void partsN(log2)(FloatPartsN *a, float_status *s, const FloatFmt *= fmt) -{ - uint64_t a0, a1, r, t, ign; - FloatPartsN f; - int i, n, a_exp, f_exp; - - if (unlikely(a->cls !=3D float_class_normal)) { - switch (a->cls) { - case float_class_denormal: - if (!a->sign) { - /* -ve denormal will be InvalidOperation */ - float_raise(float_flag_input_denormal_used, s); - } - break; - case float_class_snan: - case float_class_qnan: - partsN(return_nan)(a, s); - return; - case float_class_zero: - float_raise(float_flag_divbyzero, s); - /* log2(0) =3D -inf */ - a->cls =3D float_class_inf; - a->sign =3D 1; - return; - case float_class_inf: - if (unlikely(a->sign)) { - goto d_nan; - } - return; - default: - g_assert_not_reached(); - } - } - if (unlikely(a->sign)) { - goto d_nan; - } - - /* TODO: This algorithm looses bits too quickly for float128. */ - g_assert(N =3D=3D 64); - - a_exp =3D a->exp; - f_exp =3D -1; - - r =3D 0; - t =3D DECOMPOSED_IMPLICIT_BIT; - a0 =3D a->frac_hi; - a1 =3D 0; - - n =3D fmt->frac_size + 2; - if (unlikely(a_exp =3D=3D -1)) { - /* - * When a_exp =3D=3D -1, we're computing the log2 of a value [0.5,= 1.0). - * When the value is very close to 1.0, there are lots of 1's in - * the msb parts of the fraction. At the end, when we subtract - * this value from -1.0, we can see a catastrophic loss of precisi= on, - * as 0x800..000 - 0x7ff..ffx becomes 0x000..00y, leaving only the - * bits of y in the final result. To minimize this, compute as ma= ny - * digits as we can. - * ??? This case needs another algorithm to avoid this. - */ - n =3D fmt->frac_size * 2 + 2; - /* Don't compute a value overlapping the sticky bit */ - n =3D MIN(n, 62); - } - - for (i =3D 0; i < n; i++) { - if (a1) { - mul128To256(a0, a1, a0, a1, &a0, &a1, &ign, &ign); - } else if (a0 & 0xffffffffull) { - mul64To128(a0, a0, &a0, &a1); - } else if (a0 & ~DECOMPOSED_IMPLICIT_BIT) { - a0 >>=3D 32; - a0 *=3D a0; - } else { - goto exact; - } - - if (a0 & DECOMPOSED_IMPLICIT_BIT) { - if (unlikely(a_exp =3D=3D 0 && r =3D=3D 0)) { - /* - * When a_exp =3D=3D 0, we're computing the log2 of a value - * [1.0,2.0). When the value is very close to 1.0, there - * are lots of 0's in the msb parts of the fraction. - * We need to compute more digits to produce a correct - * result -- restart at the top of the fraction. - * ??? This is likely to lose precision quickly, as for - * float128; we may need another method. - */ - f_exp -=3D i; - t =3D r =3D DECOMPOSED_IMPLICIT_BIT; - i =3D 0; - } else { - r |=3D t; - } - } else { - add128(a0, a1, a0, a1, &a0, &a1); - } - t >>=3D 1; - } - - /* Set sticky for inexact. */ - r |=3D (a1 || a0 & ~DECOMPOSED_IMPLICIT_BIT); - - exact: - partsN(sint_to_float)(a, a_exp, 0, s); - if (r =3D=3D 0) { - return; - } - - memset(&f, 0, sizeof(f)); - f.cls =3D float_class_normal; - f.frac_hi =3D r; - f.exp =3D f_exp - frac_normalize(&f); - - if (a_exp < 0) { - partsN(sub_normal)(a, &f); - } else if (a_exp > 0) { - partsN(add_normal)(a, &f); - } else { - *a =3D f; - } - return; - - d_nan: - float_raise(float_flag_invalid, s); - partsN(default_nan)(a, s); -} --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501731; cv=none; d=zohomail.com; s=zohoarc; b=NIA7Prf8YMmSNXFBeChSXF8vndmSzh3GCiKVpBfGuF2pWO2fYWslE7yE2ba8DuldC38DH9AhoNwI0uEb9l3lUu/WkONBldZHjEelRfaTDEfNOZlO8VbuIvcYSEICGtpW8eIU3OBS8PLmLh56bEvswRVm6zzWvqhKl6j3enupsB4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501731; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=paaIchymR74CGvGMoEe290hs4RBl4U5o/eQBqkxESGA=; b=GHO3hKTenQOJWSvxxX49C4c1UI5xE7RDWyixYkxX+d6zqGe/wE1Gj96sJbg60rNl+yxwLegNGlMpdRY7SnoP1I1RpYk6cThySPGtLL9BDoUjTPzH+96OiSiAiTJ99tQzx7YWoQpDEPPvZlCodz1Yym1+Hj8TIjthP/+cNjKcSIs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501731535875.1807475124774; Wed, 29 Apr 2026 15:28:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDM6-00017T-OC; Wed, 29 Apr 2026 18:26:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDM5-00014W-RR for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:05 -0400 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDM4-0005DJ-7Z for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:05 -0400 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-362e50b4641so143038a91.0 for ; Wed, 29 Apr 2026 15:26:03 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.26.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:26:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501563; x=1778106363; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=paaIchymR74CGvGMoEe290hs4RBl4U5o/eQBqkxESGA=; b=AzkV5aWEilamVkw7mWIhxcd+h9GGhZC4goPcsUWp+L2gR3gqhUTFSIQ6PIdKGGwM92 CrqjiccJ4IA/Odhpd9s1ey0eYSZtQkDr7kjvb74gRUZeHftTjRSeIsLVR6BlOBFbHpue 430r8+EUbFvmnOzZvfCINaoi95w8YwbiNJI2PmZStkRy3da0yxXYThAmOF22Y2g6R/qV WjsltCxmhA7s91k5I0AuwNJJqaxJZcrtkpg8kfjdDoYeg8FA1Gq2DD7UBkkGHPmYyH0Y IEOMqz3VLtX7IusJzZcBY4Y/uLxCqqmulcrlhHOu4w10BLxEI6+NC/nrtxWR3dNrHGQH gkVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501563; x=1778106363; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=paaIchymR74CGvGMoEe290hs4RBl4U5o/eQBqkxESGA=; b=hO9Iw+2ZVGAUp/49QJkYa2mrcRMjHJC+AGG815t7/t+FgcUR3cX9SS98HRb/3Ry7f7 jvIkGJmgHzGHo0XQvk8bOZsH9gN0G3dduD5g1hra5maq5ybnAkFBLtCwDT1pggNMP/iy HZfGPFiILF6FbD7tVufMbxI1NqBMbILAQGwRo+Ax0nqslueAIVbKKh5XwgFyMG/n7B04 vntTKmK0/yzQ1ZOEpEHpwGue1bXZv2fJngUGx9kQTbUDeLwssFwCTf4+0Z6k1BkSJZOr j9ZzFjsGq9D4a+/xezWvvgd6G060AlBOVttBowFXpxbZMHSvSP9UPg61p1ZohSK/UbTw D5wg== X-Gm-Message-State: AOJu0YwdJqVjO1M9nf5qwzMRFTwAFP+O+R0NVo2kPqmT9LIPQwdLdk0w C3CaaLpf31opOAOAwRhtb6Uo7Rmy+n3R6tBCL0RJUOIfGbWw9gnKE1Y+fL39F5tIOtDOa8N9JTL t9PqntUg= X-Gm-Gg: AeBDieuglPcbOJ/XlBAJHEqNWq5+RXo/64r3oEeNpVVJ0nHTLs0QiydRQgNls+aunhy rhFRJiY6V+s6+JbEX3CFTIa50ftHgS884FItLLH9DwN6xFogldudk3DW7f7zO0g3fhuqbS4Umfb V62vg/pcfwTP2OLlIqYyhJlydVWyKMfWvg6PLu7q7Y/p+ty2BBb8o0siQBTD6tDZ0vq76OW9WbW NQixVrOY5pdpz79el7hVikwCIUQg9lzjaC9EeJUbKXQ4Oway0bpy6wEomRRq8LOiv39aErGUJ4Z Eu/E5Q3PofUbRti+ei+aoPThG/KZGJnDK+BRBGdCCRCkUD0V9/q7zCc8WzW4z/q+/ObffqwGVnV 21hf/wGXp0ROEw2ZNq0nw/fQrBTiPUGRWDYt1vn4NM7lDgM+RErxzdjmWVN/EZ/fXO6DVFu8Nnz eWkp3DOGxEGZjLpUsNoHeq2XQiJDK9u0JC9BTccfe8 X-Received: by 2002:a17:90b:1642:b0:35d:90c4:59f3 with SMTP id 98e67ed59e1d1-364c308d421mr164465a91.13.1777501562627; Wed, 29 Apr 2026 15:26:02 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 28/48] fpu: Drop parts_float_to_float Date: Thu, 30 Apr 2026 08:24:25 +1000 Message-ID: <20260429222445.26301-29-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102c; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501732090158500 Use parts{64,128}_float_to_float at each call site. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 6a38d161f7..b1c2f884fc 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -2695,9 +2695,6 @@ static void parts128_float_to_float(FloatParts128 *a,= float_status *s) } } =20 -#define parts_float_to_float(P, S) \ - PARTS_GENERIC_64_128(float_to_float, P)(P, S) - static void parts_float_to_float_narrow(FloatParts64 *a, FloatParts128 *b, float_status *s) { @@ -2744,7 +2741,7 @@ float8_e4m3 float4_e2m1_to_float8_e4m3(float4_e2m1 a,= float_status *s) FloatParts64 p; =20 float4_e2m1_unpack_canonical(&p, a, s); - parts_float_to_float(&p, s); + parts64_float_to_float(&p, s); return float8_e4m3_round_pack_canonical(&p, s, false); } =20 @@ -2753,7 +2750,7 @@ bfloat16 float8_e4m3_to_bfloat16(float8_e4m3 a, float= _status *s) FloatParts64 p; =20 float8_e4m3_unpack_canonical(&p, a, s); - parts_float_to_float(&p, s); + parts64_float_to_float(&p, s); return bfloat16_round_pack_canonical(&p, s); } =20 @@ -2762,7 +2759,7 @@ bfloat16 float8_e5m2_to_bfloat16(float8_e5m2 a, float= _status *s) FloatParts64 p; =20 float8_e5m2_unpack_canonical(&p, a, s); - parts_float_to_float(&p, s); + parts64_float_to_float(&p, s); return bfloat16_round_pack_canonical(&p, s); } =20 @@ -2772,7 +2769,7 @@ float32 float16_to_float32(float16 a, bool ieee, floa= t_status *s) FloatParts64 p; =20 float16a_unpack_canonical(&p, a, s, fmt16); - parts_float_to_float(&p, s); + parts64_float_to_float(&p, s); return float32_round_pack_canonical(&p, s); } =20 @@ -2782,7 +2779,7 @@ float64 float16_to_float64(float16 a, bool ieee, floa= t_status *s) FloatParts64 p; =20 float16a_unpack_canonical(&p, a, s, fmt16); - parts_float_to_float(&p, s); + parts64_float_to_float(&p, s); return float64_round_pack_canonical(&p, s); } =20 @@ -2791,7 +2788,7 @@ float8_e4m3 float32_to_float8_e4m3(float32 a, bool sa= turate, float_status *s) FloatParts64 p; =20 float32_unpack_canonical(&p, a, s); - parts_float_to_float(&p, s); + parts64_float_to_float(&p, s); return float8_e4m3_round_pack_canonical(&p, s, saturate); } =20 @@ -2811,7 +2808,7 @@ float16 float32_to_float16(float32 a, bool ieee, floa= t_status *s) =20 float32_unpack_canonical(&p, a, s); if (ieee) { - parts_float_to_float(&p, s); + parts64_float_to_float(&p, s); fmt =3D &float16_params; } else { parts_float_to_ahp(&p, s); @@ -2826,7 +2823,7 @@ soft_float32_to_float64(float32 a, float_status *s) FloatParts64 p; =20 float32_unpack_canonical(&p, a, s); - parts_float_to_float(&p, s); + parts64_float_to_float(&p, s); return float64_round_pack_canonical(&p, s); } =20 @@ -2853,7 +2850,7 @@ float16 float64_to_float16(float64 a, bool ieee, floa= t_status *s) =20 float64_unpack_canonical(&p, a, s); if (ieee) { - parts_float_to_float(&p, s); + parts64_float_to_float(&p, s); fmt =3D &float16_params; } else { parts_float_to_ahp(&p, s); @@ -2867,7 +2864,7 @@ float32 float64_to_float32(float64 a, float_status *s) FloatParts64 p; =20 float64_unpack_canonical(&p, a, s); - parts_float_to_float(&p, s); + parts64_float_to_float(&p, s); return float32_round_pack_canonical(&p, s); } =20 @@ -2876,7 +2873,7 @@ float8_e4m3 bfloat16_to_float8_e4m3(bfloat16 a, bool = saturate, float_status *s) FloatParts64 p; =20 bfloat16_unpack_canonical(&p, a, s); - parts_float_to_float(&p, s); + parts64_float_to_float(&p, s); return float8_e4m3_round_pack_canonical(&p, s, saturate); } =20 @@ -2894,7 +2891,7 @@ float32 bfloat16_to_float32(bfloat16 a, float_status = *s) FloatParts64 p; =20 bfloat16_unpack_canonical(&p, a, s); - parts_float_to_float(&p, s); + parts64_float_to_float(&p, s); return float32_round_pack_canonical(&p, s); } =20 @@ -2903,7 +2900,7 @@ float64 bfloat16_to_float64(bfloat16 a, float_status = *s) FloatParts64 p; =20 bfloat16_unpack_canonical(&p, a, s); - parts_float_to_float(&p, s); + parts64_float_to_float(&p, s); return float64_round_pack_canonical(&p, s); } =20 @@ -2912,7 +2909,7 @@ bfloat16 float32_to_bfloat16(float32 a, float_status = *s) FloatParts64 p; =20 float32_unpack_canonical(&p, a, s); - parts_float_to_float(&p, s); + parts64_float_to_float(&p, s); return bfloat16_round_pack_canonical(&p, s); } =20 @@ -2921,7 +2918,7 @@ bfloat16 float64_to_bfloat16(float64 a, float_status = *s) FloatParts64 p; =20 float64_unpack_canonical(&p, a, s); - parts_float_to_float(&p, s); + parts64_float_to_float(&p, s); return bfloat16_round_pack_canonical(&p, s); } =20 @@ -2996,7 +2993,7 @@ float128 floatx80_to_float128(floatx80 a, float_statu= s *s) FloatParts128 p; =20 if (floatx80_unpack_canonical(&p, a, s)) { - parts_float_to_float(&p, s); + parts128_float_to_float(&p, s); } else { parts128_default_nan(&p, s); } @@ -3028,7 +3025,7 @@ floatx80 float128_to_floatx80(float128 a, float_statu= s *s) FloatParts128 p; =20 float128_unpack_canonical(&p, a, s); - parts_float_to_float(&p, s); + parts128_float_to_float(&p, s); return floatx80_round_pack_canonical(&p, s); } =20 --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501586; cv=none; d=zohomail.com; s=zohoarc; b=Hc0zXZw1DwmuB8DOha7ZLskro+E3FnOuERJp9F+AD3MjPPVEIgpvQ68Tc39Nv5yXO9HE8UMg9hB1gcMRZVcia1b+TUh21pRDghLch4J1N+IyBlEQY81VUQEvD5xQsjXm+YdWk096Y26BjZSSxoBHaiQ1YNOcRdOYME2a/GMJeQY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501586; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=kDvXDQ+fyFCHbP0IHEzFnjC3uz7yibpL+nfcOcMhE5M=; b=iq7c2khCj4UnwJJaYkudRqtXkdms8XWSUrYsv7JhB+5b6hv/ixMV0kDlUGwyTqpuRcUvkNVaFdCq0oWahRSQH/SS+HLdrzfgCwGO8TwTUUFGI4iPTnak+h1QT3XKNuMdyzGd6SuaupeS6otAJivTonFKvRLNV6Z+Qd/Rq0DBp8k= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501586664906.2493352962581; Wed, 29 Apr 2026 15:26:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDM9-0001Nv-Mn; Wed, 29 Apr 2026 18:26:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDM8-0001Fc-0S for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:08 -0400 Received: from mail-pj1-x1033.google.com ([2607:f8b0:4864:20::1033]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDM6-0005Dk-Ed for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:07 -0400 Received: by mail-pj1-x1033.google.com with SMTP id 98e67ed59e1d1-35f9ab079bdso151301a91.2 for ; Wed, 29 Apr 2026 15:26:06 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.26.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:26:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501565; x=1778106365; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kDvXDQ+fyFCHbP0IHEzFnjC3uz7yibpL+nfcOcMhE5M=; b=JqJ3wVZoD9VpMgWTlOBDV3CEMxFZt7OVv9fp7eWhSbOATi6PtrrjMCACcO6MYKSpbx A4DL6fz9beF0A9Gq+/hf632CIMuzYkQAeD6m8US+1JXYYvzXyUr+S2+xq34W3duanmOm D88LSk6BX+uzbHgHjWaApLkFkFY+aBLYBiaV6roFLljXh0GKKDdekxX/XmgQ67yth81t Lze9waO9/krghMtLwagCEYg8N2b2TUB6fyfJx8Z3g/t6PPRi/Z1PbjBsRobVcq9B+c4m 2WW05llELEQRLSlXYLcq4CsJDI3DP8hfZQMHjF9KUhd5bRaOH+P8UO2QyADqm0U3+ZkQ bkcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501565; x=1778106365; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=kDvXDQ+fyFCHbP0IHEzFnjC3uz7yibpL+nfcOcMhE5M=; b=RZNkjv6+ZYim+eQbAlZCpF9jA/yKq1QnK6PCKG1VH2Dwtf6yHMKd5HoVxBxpFCnrjO lC4fBDGLLXUC5uYoqNisy2yS260MWNnoiSLgIFXhyWexZINbz2fidHa8uOA/xQuymVAD 8KSXHMFY85gNEbvxT+u1SDVaJ8I/7xFdatdpOdFxeSXTBTV6t5EPptKNTi60bQN+Y2Xd 4m9kXhPEo/+H1ntKuKQ0DPaErFWyZiLexh5T5sovu2pDRp/qVnY/QivUjSatqm+DdfnI 3Jbi6P9gV0rP9giJO+uMBdJ7yS9FYKW6iuwKfDAxQlLFGPmVmtx4NdDBIH0fa/jjRFW1 h/8w== X-Gm-Message-State: AOJu0Yx68fRECGsM7VZHmDrOcjrYhlOTPqeokvPlTLQVS7r247mQ4PRs /sgdnvsfID2PaQLZREd02zDffBjqAI398Ew6gadluCyU2LXFV6tRXGvXF7bYJXnajZdBn9bkssO 6ZC36ubs= X-Gm-Gg: AeBDieuYzv68FXUVp8zu4zjFuVx209MuoysOwThZxF4axw/H4XltGd4/NsuRBOalgc1 3tsA772RBE++j42MSv4UmcJWKWIpvDVI7BQweb8wDr0FtUmBHN24lVfpkPuMGT45yj28/IiHs/n QpHnhChTztP3svNPkvsZ81GnTaTFYtH8sZ7prrob9XSbGUeugNsblmlUGemj6O/N5DnBjv0GJjt fThYJe1+5ncGMbnrgv2RGmCrpegZllUl3gPxbbriL6209hjfp7F4AeMPmuf8gjtPGRlWASod9TC GPqWYHnBrvx5rn4Ihr4BWjGIj6w1e1k5KdOlUuU5vY+tXRXOC3cF5+p0TMo/VSxuz2Vhhh6YX2E +atcoFswGqXsgoQKvk7SSo/Q4dLuiCiQSUjiekHmTM0gzexEs/dhjd6HeD4braTCs/xiW2FSzFr aqG2PPnOh0sV9/d3iyX1DM56QXmAY3X3EWH9jkqx3T X-Received: by 2002:a17:90b:3907:b0:35d:a3b4:2ef6 with SMTP id 98e67ed59e1d1-364c30e8b55mr169384a91.21.1777501565094; Wed, 29 Apr 2026 15:26:05 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 29/48] fpu: Drop PARTS_GENERIC_64_128{_256} Date: Thu, 30 Apr 2026 08:24:26 +1000 Message-ID: <20260429222445.26301-30-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1033; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1033.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501588144154100 These macros are no longer used. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index b1c2f884fc..d077e8da69 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -770,15 +770,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const F= loatParts128 *p) *-------------------------------------------------------------------------= ---*/ #include "softfloat-specialize.c.inc" =20 -#define PARTS_GENERIC_64_128(NAME, P) \ - _Generic((P), FloatParts64 *: parts64_##NAME, \ - FloatParts128 *: parts128_##NAME) - -#define PARTS_GENERIC_64_128_256(NAME, P) \ - _Generic((P), FloatParts64 *: parts64_##NAME, \ - FloatParts128 *: parts128_##NAME, \ - FloatParts256 *: parts256_##NAME) - /* * Helper functions for softfloat-parts.c.inc, per-size operations. */ --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501619; cv=none; d=zohomail.com; s=zohoarc; b=MAQG7a12MkxeMgLofBt7CSjKYzOMeptMII3NQKNef7+Ha1D+Llr92w1rFqe+DNjTFQVLT8GCbHiDS1cDR6nk4chmvnUg1rR50ByBhITFtp40fYc4R5Ck6FqqQpHHTFAie2l02thfnEHShAm3s5pJafn6ZLoPyMU9g9HYVavQ3fI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501619; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=CkxM3MBDHHoyDO221L68O+0q0Gu+Hndr9J7p3POpJe8=; b=CenoI2pt6KP+s4f/dZ05s+Xb0Z3zv63Zi9lAz3ICxArbqSY50dVez8pkOKyD7T4ZmJGWlQDz5l/fDndXmuyjQM0tgBlNoTpF1YXLJQs+6Hc45KS1u8RDZ5ULdMjkvwyRG4dDTOsEBV1clVdSTSwMmI2BB/FzvQlWIJubrSKLkEg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501619785713.2854183439634; Wed, 29 Apr 2026 15:26:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDMF-00028o-G4; Wed, 29 Apr 2026 18:26:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDMC-0001or-QX for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:12 -0400 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDM9-0005E1-BH for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:12 -0400 Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-35da9692ec3so264981a91.1 for ; Wed, 29 Apr 2026 15:26:08 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.26.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:26:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501568; x=1778106368; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=CkxM3MBDHHoyDO221L68O+0q0Gu+Hndr9J7p3POpJe8=; b=Cx9DQoPtSPMCnR9GUuhq7W6J7JdoWr1ucytWMApg9rdCy7UX3KGye9PLPz8/WwY7sE tLlSi6Wjx2+K5QeTZ6pCfe6GPdKyzjyia5NFVH46OYUXg9TzAdHAYnw18D58R8k8DA11 kgTdrvyzedvSt6pywsdtxRqzJZDTrJje3FsR82cUDBUro/eEQkEBCUTfsg7G7T8Utqu+ TYma1JE0UMtuLkFmFALb2k8DITLdztejY6kpBpuVOFBkd5FT53A9HD3ePff7CgLnK0mU V2/xHO8Vbc9R8CBWJmyDGp2oQzXQQjwMjDA2uE8z1TdPXqmg97A5s+L1P9qu0mlmDuul 6hcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501568; x=1778106368; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=CkxM3MBDHHoyDO221L68O+0q0Gu+Hndr9J7p3POpJe8=; b=ieY/A+Xvl5U87xI2HyO1eNDVSvbomk9/Pb26xSfZjxOIwYJeALv4Ec7gMJm7Q5B1Ja dzaad9LSZanFYyA8pNjUqWlxJF7WVWDb0g3XWv6dcIkE+GwtEiaTLa1BTZh0kB0BbYGk X2Fb9V1RH+F+uMOZ2BM5MC4rEDEzTKaIc/ZtoX2KU2qU9EZ5RiBnubBGwEIWlXzN3/oV fDY5HlwpNh3OEOTUqOqzPp2oi/BTqxg4SVhOgmFYbKokXw3xVqk0HlK2hLxFXwdduQoQ QmH4b81YndJkRHipg4KE6bUqqI8cS9BlSisEmua/N/cb0t4/X2wsToqlY9OdktoPNe+b m+wg== X-Gm-Message-State: AOJu0Yxo2gXBYidCtLQs7ki2IM1SBjzGEL28Y2YsjzBCbd6O23PYZzhi DMQVeHBC9cPyEFMMDMbZgjz5V73oMF0EZeKA5JXbKYQlKbauTo6Gycu8IZPeWGJ9rwjrsc6Jt8p koisaH/k= X-Gm-Gg: AeBDies+x8WyE1owXiB7jW+MTU8DroxrnwKdYcnJUdKlD0QNrhFciqN+Mu/gLoDptl8 HbKNSbTg4VLZRNj3Wk0rcqMfFCO1Bi6rsZol2JUNLTu3exLk0yxoD3YlnBKR6cyeGWj2/RzZKfN Atqj58QHqOukRBgiTbrEwmVlwsmuFFPYLpZWMh8XgFCtH7sh+W90GZxHstsHoyGeAKZn5SpRZkp b27nmjOI1nZJ9YaV98MTBmtSr4IV54Ok1TCFD1RV3TLDBSW84wjMhrZgrfSwU6xA/XBy35vtmyG vehyaYzKb7qfLIZCTRmSssTYfq4SZBaAyCZLarScKLUYbOFrKY8vVuNmogOf+FIzT5nwDHdDQzx GUAmrrnIwNEKaEOwwiurJhqxCp/Q20PlMwaZEuqN7O6g2zvvTc+3VvW4f7MYNhgih8uGO/+jG8M NE34pjA3NpWU5sD+ul8gtAxpcJIb65iLNiMJsMs48q X-Received: by 2002:a17:90b:5603:b0:35d:9efd:7956 with SMTP id 98e67ed59e1d1-364c2f41293mr200398a91.11.1777501567814; Wed, 29 Apr 2026 15:26:07 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 30/48] fpu: Drop FRAC_GENERIC_64_128{_256} Date: Thu, 30 Apr 2026 08:24:27 +1000 Message-ID: <20260429222445.26301-31-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102b; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501621690158500 This requires more complexity to handle const selectors, and an indirection macro for each function. Easier to just use the preprocessor. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 69 +++++---------------- fpu/softfloat-parts-addsub.c.inc | 22 +++---- fpu/softfloat-parts.c.inc | 102 +++++++++++++++---------------- 3 files changed, 77 insertions(+), 116 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index d077e8da69..e462fb7d74 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -774,15 +774,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const F= loatParts128 *p) * Helper functions for softfloat-parts.c.inc, per-size operations. */ =20 -#define FRAC_GENERIC_64_128(NAME, P) \ - _Generic((P), FloatParts64 *: frac64_##NAME, \ - FloatParts128 *: frac128_##NAME) - -#define FRAC_GENERIC_64_128_256(NAME, P) \ - _Generic((P), FloatParts64 *: frac64_##NAME, \ - FloatParts128 *: frac128_##NAME, \ - FloatParts256 *: frac256_##NAME) - static bool frac64_add(FloatParts64 *r, FloatParts64 *a, FloatParts64 *b) { return uadd64_overflow(a->frac, b->frac, &r->frac); @@ -806,8 +797,6 @@ static bool frac256_add(FloatParts256 *r, FloatParts256= *a, FloatParts256 *b) return c; } =20 -#define frac_add(R, A, B) FRAC_GENERIC_64_128_256(add, R)(R, A, B) - static bool frac64_addi(FloatParts64 *r, FloatParts64 *a, uint64_t c) { return uadd64_overflow(a->frac, c, &r->frac); @@ -819,8 +808,6 @@ static bool frac128_addi(FloatParts128 *r, FloatParts12= 8 *a, uint64_t c) return uadd64_overflow(a->frac_hi, c, &r->frac_hi); } =20 -#define frac_addi(R, A, C) FRAC_GENERIC_64_128(addi, R)(R, A, C) - static void frac64_allones(FloatParts64 *a) { a->frac =3D -1; @@ -831,8 +818,6 @@ static void frac128_allones(FloatParts128 *a) a->frac_hi =3D a->frac_lo =3D -1; } =20 -#define frac_allones(A) FRAC_GENERIC_64_128(allones, A)(A) - static FloatRelation frac64_cmp(FloatParts64 *a, FloatParts64 *b) { return (a->frac =3D=3D b->frac ? float_relation_equal @@ -852,8 +837,6 @@ static FloatRelation frac128_cmp(FloatParts128 *a, Floa= tParts128 *b) return ta < tb ? float_relation_less : float_relation_greater; } =20 -#define frac_cmp(A, B) FRAC_GENERIC_64_128(cmp, A)(A, B) - static void frac64_clear(FloatParts64 *a) { a->frac =3D 0; @@ -864,8 +847,6 @@ static void frac128_clear(FloatParts128 *a) a->frac_hi =3D a->frac_lo =3D 0; } =20 -#define frac_clear(A) FRAC_GENERIC_64_128(clear, A)(A) - static bool frac64_div(FloatParts64 *a, FloatParts64 *b) { uint64_t n1, n0, r, q; @@ -945,8 +926,6 @@ static bool frac128_div(FloatParts128 *a, FloatParts128= *b) return ret; } =20 -#define frac_div(A, B) FRAC_GENERIC_64_128(div, A)(A, B) - static bool frac64_eqz(FloatParts64 *a) { return a->frac =3D=3D 0; @@ -957,8 +936,6 @@ static bool frac128_eqz(FloatParts128 *a) return (a->frac_hi | a->frac_lo) =3D=3D 0; } =20 -#define frac_eqz(A) FRAC_GENERIC_64_128(eqz, A)(A) - static void frac64_mulw(FloatParts128 *r, FloatParts64 *a, FloatParts64 *b) { mulu64(&r->frac_lo, &r->frac_hi, a->frac, b->frac); @@ -970,8 +947,6 @@ static void frac128_mulw(FloatParts256 *r, FloatParts12= 8 *a, FloatParts128 *b) &r->frac_hi, &r->frac_hm, &r->frac_lm, &r->frac_lo); } =20 -#define frac_mulw(R, A, B) FRAC_GENERIC_64_128(mulw, A)(R, A, B) - static void frac64_neg(FloatParts64 *a) { a->frac =3D -a->frac; @@ -993,8 +968,6 @@ static void frac256_neg(FloatParts256 *a) a->frac_hi =3D usub64_borrow(0, a->frac_hi, &c); } =20 -#define frac_neg(A) FRAC_GENERIC_64_128_256(neg, A)(A) - static int frac64_normalize(FloatParts64 *a) { if (a->frac) { @@ -1068,8 +1041,6 @@ static int frac256_normalize(FloatParts256 *a) return ret; } =20 -#define frac_normalize(A) FRAC_GENERIC_64_128_256(normalize, A)(A) - static void frac64_modrem(FloatParts64 *a, FloatParts64 *b, uint64_t *mod_= quot) { uint64_t a0, a1, b0, t0, t1, q, quot; @@ -1248,8 +1219,6 @@ static void frac128_modrem(FloatParts128 *a, FloatPar= ts128 *b, a->frac_lo =3D a1 | (a2 !=3D 0); } =20 -#define frac_modrem(A, B, Q) FRAC_GENERIC_64_128(modrem, A)(A, B, Q) - static void frac64_shl(FloatParts64 *a, int c) { a->frac <<=3D c; @@ -1273,8 +1242,6 @@ static void frac128_shl(FloatParts128 *a, int c) a->frac_lo =3D a1; } =20 -#define frac_shl(A, C) FRAC_GENERIC_64_128(shl, A)(A, C) - static void frac64_shr(FloatParts64 *a, int c) { a->frac >>=3D c; @@ -1298,8 +1265,6 @@ static void frac128_shr(FloatParts128 *a, int c) a->frac_lo =3D a1; } =20 -#define frac_shr(A, C) FRAC_GENERIC_64_128(shr, A)(A, C) - static void frac64_shrjam(FloatParts64 *a, int c) { uint64_t a0 =3D a->frac; @@ -1388,8 +1353,6 @@ static void frac256_shrjam(FloatParts256 *a, int c) a->frac_hi =3D a0; } =20 -#define frac_shrjam(A, C) FRAC_GENERIC_64_128_256(shrjam, A)(A, C) - static bool frac64_sub(FloatParts64 *r, FloatParts64 *a, FloatParts64 *b) { return usub64_overflow(a->frac, b->frac, &r->frac); @@ -1413,8 +1376,6 @@ static bool frac256_sub(FloatParts256 *r, FloatParts2= 56 *a, FloatParts256 *b) return c; } =20 -#define frac_sub(R, A, B) FRAC_GENERIC_64_128_256(sub, R)(R, A, B) - static void frac64_truncjam(FloatParts64 *r, FloatParts128 *a) { r->frac =3D a->frac_hi | (a->frac_lo !=3D 0); @@ -1426,8 +1387,6 @@ static void frac128_truncjam(FloatParts128 *r, FloatP= arts256 *a) r->frac_lo =3D a->frac_hm | ((a->frac_lm | a->frac_lo) !=3D 0); } =20 -#define frac_truncjam(R, A) FRAC_GENERIC_64_128(truncjam, R)(R, A) - static void frac64_widen(FloatParts128 *r, FloatParts64 *a) { r->frac_hi =3D a->frac; @@ -1442,8 +1401,6 @@ static void frac128_widen(FloatParts256 *r, FloatPart= s128 *a) r->frac_lo =3D 0; } =20 -#define frac_widen(A, B) FRAC_GENERIC_64_128(widen, B)(A, B) - /* * Reciprocal sqrt table. 1 bit of exponent, 6-bits of mantessa. * From https://git.musl-libc.org/cgit/musl/tree/src/math/sqrt_data.c @@ -1468,6 +1425,8 @@ static const uint16_t rsqrt_tab[128] =3D { 0xba91, 0xb9cc, 0xb90a, 0xb84a, 0xb78c, 0xb6d0, 0xb617, 0xb560, }; =20 +#define fracN(NAME) glue(glue(glue(frac,N),_),NAME) +#define fracW(NAME) glue(glue(glue(frac,W),_),NAME) #define partsN(NAME) glue(glue(glue(parts,N),_),NAME) #define partsW(NAME) glue(glue(glue(parts,W),_),NAME) #define FloatPartsN glue(FloatParts,N) @@ -1494,6 +1453,8 @@ static const uint16_t rsqrt_tab[128] =3D { =20 #undef N #undef W +#undef fracN +#undef fracW #undef partsN #undef partsW #undef FloatPartsN @@ -1624,19 +1585,19 @@ static float64 float64r32_pack_raw(FloatParts64 *p) * The result is denormal for float32, but can be represented * in normalized form for float64. Adjust, per canonicalize. */ - int shift =3D frac_normalize(p); + int shift =3D frac64_normalize(p); p->exp =3D (float32_params.frac_shift - float32_params.exp_bias - shift + 1 + float64_params.exp_bias); - frac_shr(p, float64_params.frac_shift); + frac64_shr(p, float64_params.frac_shift); } else { - frac_shl(p, float32_params.frac_shift - float64_params.frac_sh= ift); + frac64_shl(p, float32_params.frac_shift - float64_params.frac_= shift); p->exp +=3D float64_params.exp_bias - float32_params.exp_bias; } break; case float_class_snan: case float_class_qnan: - frac_shl(p, float32_params.frac_shift - float64_params.frac_shift); + frac64_shl(p, float32_params.frac_shift - float64_params.frac_shif= t); p->exp =3D float64_params.exp_max; break; case float_class_inf: @@ -1724,7 +1685,7 @@ static floatx80 floatx80_round_pack_canonical(FloatPa= rts128 *p, =20 p64.sign =3D p->sign; p64.exp =3D p->exp; - frac_truncjam(&p64, p); + frac64_truncjam(&p64, p); parts64_uncanon_normal(&p64, s, fmt, false); frac =3D p64.frac; exp =3D p64.exp; @@ -2698,7 +2659,7 @@ static void parts_float_to_float_narrow(FloatParts64 = *a, FloatParts128 *b, float_raise(float_flag_input_denormal_used, s); /* fall through */ case float_class_normal: - frac_truncjam(a, b); + frac64_truncjam(a, b); break; case float_class_snan: case float_class_qnan: @@ -2717,7 +2678,7 @@ static void parts_float_to_float_widen(FloatParts128 = *a, FloatParts64 *b, a->cls =3D b->cls; a->sign =3D b->sign; a->exp =3D b->exp; - frac_widen(a, b); + frac64_widen(a, b); =20 if (is_nan(a->cls)) { parts128_return_nan(a, s); @@ -4939,7 +4900,7 @@ static void parts64_log2(FloatParts64 *a, float_statu= s *s, const FloatFmt *fmt) FloatParts64 f =3D { .cls =3D float_class_normal, .frac =3D r }; - f.exp =3D f_exp - frac_normalize(&f); + f.exp =3D f_exp - frac64_normalize(&f); =20 if (a_exp < 0) { parts64_sub_normal(a, &f); @@ -5010,7 +4971,7 @@ float128 float128_default_nan(float_status *status) FloatParts128 p; =20 parts128_default_nan(&p, status); - frac_shr(&p, float128_params.frac_shift); + frac128_shr(&p, float128_params.frac_shift); return float128_pack_raw(&p); } =20 @@ -5076,9 +5037,9 @@ float128 float128_silence_nan(float128 a, float_statu= s *status) FloatParts128 p; =20 float128_unpack_raw(&p, a); - frac_shl(&p, float128_params.frac_shift); + frac128_shl(&p, float128_params.frac_shift); parts128_silence_nan(&p, status); - frac_shr(&p, float128_params.frac_shift); + frac128_shr(&p, float128_params.frac_shift); return float128_pack_raw(&p); } =20 diff --git a/fpu/softfloat-parts-addsub.c.inc b/fpu/softfloat-parts-addsub.= c.inc index ae5c1017c5..accf996d7c 100644 --- a/fpu/softfloat-parts-addsub.c.inc +++ b/fpu/softfloat-parts-addsub.c.inc @@ -20,14 +20,14 @@ static void partsN(add_normal)(FloatPartsN *a, FloatPar= tsN *b) int exp_diff =3D a->exp - b->exp; =20 if (exp_diff > 0) { - frac_shrjam(b, exp_diff); + fracN(shrjam)(b, exp_diff); } else if (exp_diff < 0) { - frac_shrjam(a, -exp_diff); + fracN(shrjam)(a, -exp_diff); a->exp =3D b->exp; } =20 - if (frac_add(a, a, b)) { - frac_shrjam(a, 1); + if (fracN(add)(a, a, b)) { + fracN(shrjam)(a, 1); a->frac_hi |=3D DECOMPOSED_IMPLICIT_BIT; a->exp +=3D 1; } @@ -39,20 +39,20 @@ static bool partsN(sub_normal)(FloatPartsN *a, FloatPar= tsN *b) int shift; =20 if (exp_diff > 0) { - frac_shrjam(b, exp_diff); - frac_sub(a, a, b); + fracN(shrjam)(b, exp_diff); + fracN(sub)(a, a, b); } else if (exp_diff < 0) { a->exp =3D b->exp; a->sign ^=3D 1; - frac_shrjam(a, -exp_diff); - frac_sub(a, b, a); - } else if (frac_sub(a, a, b)) { + fracN(shrjam)(a, -exp_diff); + fracN(sub)(a, b, a); + } else if (fracN(sub)(a, a, b)) { /* Overflow means that A was less than B. */ - frac_neg(a); + fracN(neg)(a); a->sign ^=3D 1; } =20 - shift =3D frac_normalize(a); + shift =3D fracN(normalize)(a); if (likely(shift < N)) { a->exp -=3D shift; return true; diff --git a/fpu/softfloat-parts.c.inc b/fpu/softfloat-parts.c.inc index 5f27efd288..5d344f9afe 100644 --- a/fpu/softfloat-parts.c.inc +++ b/fpu/softfloat-parts.c.inc @@ -98,7 +98,7 @@ static FloatPartsN *partsN(pick_nan)(FloatPartsN *a, Floa= tPartsN *b, ret =3D b; break; } - cmp =3D frac_cmp(a, b); + cmp =3D fracN(cmp)(a, b); if (cmp =3D=3D 0) { cmp =3D a->sign < b->sign; } @@ -215,14 +215,14 @@ static void partsN(canonicalize)(FloatPartsN *p, floa= t_status *status, (status->floatx80_behaviour & floatx80_pseudo_denormal_valid); =20 if (unlikely(p->exp =3D=3D 0)) { - if (likely(frac_eqz(p))) { + if (likely(fracN(eqz)(p))) { p->cls =3D float_class_zero; } else if (status->flush_inputs_to_zero) { float_raise(float_flag_input_denormal_flushed, status); p->cls =3D float_class_zero; - frac_clear(p); + fracN(clear)(p); } else { - int shift =3D frac_normalize(p); + int shift =3D fracN(normalize)(p); p->cls =3D float_class_denormal; p->exp =3D fmt->frac_shift - fmt->exp_bias - shift + !has_pseudo_denormals; @@ -232,10 +232,10 @@ static void partsN(canonicalize)(FloatPartsN *p, floa= t_status *status, if (unlikely(p->exp =3D=3D fmt->exp_max)) { switch (fmt->exp_max_kind) { case float_expmax_ieee: - if (likely(frac_eqz(p))) { + if (likely(fracN(eqz)(p))) { p->cls =3D float_class_inf; } else { - frac_shl(p, fmt->frac_shift); + fracN(shl)(p, fmt->frac_shift); p->cls =3D (parts_is_snan_frac(p->frac_hi, status) ? float_class_snan : float_class_qnan); } @@ -244,7 +244,7 @@ static void partsN(canonicalize)(FloatPartsN *p, float_= status *status, break; case float_expmax_e4m3: if (p->frac_hi =3D=3D 0b111) { - frac_shl(p, fmt->frac_shift); + fracN(shl)(p, fmt->frac_shift); p->cls =3D (parts_is_snan_frac(p->frac_hi, status) ? float_class_snan : float_class_qnan); return; @@ -258,7 +258,7 @@ static void partsN(canonicalize)(FloatPartsN *p, float_= status *status, =20 p->cls =3D float_class_normal; p->exp -=3D fmt->exp_bias; - frac_shl(p, fmt->frac_shift); + fracN(shl)(p, fmt->frac_shift); p->frac_hi |=3D DECOMPOSED_IMPLICIT_BIT; } =20 @@ -344,8 +344,8 @@ static void partsN(uncanon_normal)(FloatPartsN *p, floa= t_status *s, if (likely(exp > 0)) { if (p->frac_lo & round_mask) { flags |=3D float_flag_inexact; - if (frac_addi(p, p, inc)) { - frac_shr(p, 1); + if (fracN(addi)(p, p, inc)) { + fracN(shr)(p, 1); p->frac_hi |=3D DECOMPOSED_IMPLICIT_BIT; exp++; } @@ -361,13 +361,13 @@ static void partsN(uncanon_normal)(FloatPartsN *p, fl= oat_status *s, } else if (overflow_norm) { flags |=3D float_flag_inexact; exp =3D exp_max - 1; - frac_allones(p); + fracN(allones)(p); p->frac_lo &=3D ~round_mask; } else { flags |=3D float_flag_inexact; p->cls =3D float_class_inf; exp =3D exp_max; - frac_clear(p); + fracN(clear)(p); } break; =20 @@ -378,7 +378,7 @@ static void partsN(uncanon_normal)(FloatPartsN *p, floa= t_status *s, ? float_flag_invalid : float_flag_overflow | float_flag_inexact); exp =3D exp_max; - frac_allones(p); + fracN(allones)(p); p->frac_lo &=3D ~round_mask; } break; @@ -395,26 +395,26 @@ static void partsN(uncanon_normal)(FloatPartsN *p, fl= oat_status *s, g_assert_not_reached(); } } - frac_shr(p, frac_shift); + fracN(shr)(p, frac_shift); } else if (unlikely(s->rebias_underflow)) { flags |=3D float_flag_underflow; exp +=3D fmt->exp_re_bias; if (p->frac_lo & round_mask) { flags |=3D float_flag_inexact; - if (frac_addi(p, p, inc)) { - frac_shr(p, 1); + if (fracN(addi)(p, p, inc)) { + fracN(shr)(p, 1); p->frac_hi |=3D DECOMPOSED_IMPLICIT_BIT; exp++; } p->frac_lo &=3D ~round_mask; } - frac_shr(p, frac_shift); + fracN(shr)(p, frac_shift); } else if (s->flush_to_zero && s->ftz_detection =3D=3D float_ftz_before_rounding) { flags |=3D float_flag_output_denormal_flushed; p->cls =3D float_class_zero; exp =3D 0; - frac_clear(p); + fracN(clear)(p); } else { bool is_tiny =3D s->tininess_before_rounding || exp < 0; bool has_pseudo_denormals =3D fmt->has_explicit_bit && @@ -422,10 +422,10 @@ static void partsN(uncanon_normal)(FloatPartsN *p, fl= oat_status *s, =20 if (!is_tiny) { FloatPartsN discard; - is_tiny =3D !frac_addi(&discard, p, inc); + is_tiny =3D !fracN(addi)(&discard, p, inc); } =20 - frac_shrjam(p, !has_pseudo_denormals - exp); + fracN(shrjam)(p, !has_pseudo_denormals - exp); =20 if (p->frac_lo & round_mask) { /* Need to recompute round-to-even/round-to-odd. */ @@ -452,12 +452,12 @@ static void partsN(uncanon_normal)(FloatPartsN *p, fl= oat_status *s, break; } flags |=3D float_flag_inexact; - frac_addi(p, p, inc); + fracN(addi)(p, p, inc); p->frac_lo &=3D ~round_mask; } =20 exp =3D (p->frac_hi & DECOMPOSED_IMPLICIT_BIT) && !has_pseudo_deno= rmals; - frac_shr(p, frac_shift); + fracN(shr)(p, frac_shift); =20 if (is_tiny) { if (s->flush_to_zero) { @@ -465,11 +465,11 @@ static void partsN(uncanon_normal)(FloatPartsN *p, fl= oat_status *s, flags |=3D float_flag_output_denormal_flushed; p->cls =3D float_class_zero; exp =3D 0; - frac_clear(p); + fracN(clear)(p); } else if (flags & float_flag_inexact) { flags |=3D float_flag_underflow; } - if (exp =3D=3D 0 && frac_eqz(p)) { + if (exp =3D=3D 0 && fracN(eqz)(p)) { p->cls =3D float_class_zero; } } @@ -487,17 +487,17 @@ static void partsN(uncanon)(FloatPartsN *p, float_sta= tus *s, switch (p->cls) { case float_class_zero: p->exp =3D 0; - frac_clear(p); + fracN(clear)(p); return; case float_class_inf: switch (fmt->exp_max_kind) { case float_expmax_ieee: p->exp =3D fmt->exp_max; - frac_clear(p); + fracN(clear)(p); break; case float_expmax_e4m3: partsN(uncanon_e4m3_overflow)(p, s, fmt, saturate); - frac_shr(p, fmt->frac_shift); + fracN(shr)(p, fmt->frac_shift); break; case float_expmax_normal: default: @@ -508,7 +508,7 @@ static void partsN(uncanon)(FloatPartsN *p, float_statu= s *s, case float_class_snan: assert(fmt->exp_max_kind !=3D float_expmax_normal); p->exp =3D fmt->exp_max; - frac_shr(p, fmt->frac_shift); + fracN(shr)(p, fmt->frac_shift); return; default: break; @@ -625,12 +625,12 @@ static FloatPartsN *partsN(mul)(FloatPartsN *a, Float= PartsN *b, float_raise(float_flag_input_denormal_used, s); } =20 - frac_mulw(&tmp, a, b); - frac_truncjam(a, &tmp); + fracN(mulw)(&tmp, a, b); + fracN(truncjam)(a, &tmp); =20 a->exp +=3D b->exp + 1; if (!(a->frac_hi & DECOMPOSED_IMPLICIT_BIT)) { - frac_add(a, a, a); + fracN(add)(a, a, a); a->exp -=3D 1; } =20 @@ -747,16 +747,16 @@ static FloatPartsN *partsN(muladd_scalbn)(FloatPartsN= *a, FloatPartsN *b, /* Perform the multiplication step. */ p_widen.sign =3D a->sign; p_widen.exp =3D a->exp + b->exp + 1; - frac_mulw(&p_widen, a, b); + fracN(mulw)(&p_widen, a, b); if (!(p_widen.frac_hi & DECOMPOSED_IMPLICIT_BIT)) { - frac_add(&p_widen, &p_widen, &p_widen); + fracW(add)(&p_widen, &p_widen, &p_widen); p_widen.exp -=3D 1; } =20 /* Perform the addition step. */ if (c->cls !=3D float_class_zero) { /* Zero-extend C to less significant bits. */ - frac_widen(&c_widen, c); + fracN(widen)(&c_widen, c); c_widen.exp =3D c->exp; =20 if (a->sign =3D=3D c->sign) { @@ -767,7 +767,7 @@ static FloatPartsN *partsN(muladd_scalbn)(FloatPartsN *= a, FloatPartsN *b, } =20 /* Narrow with sticky bit, for proper rounding later. */ - frac_truncjam(a, &p_widen); + fracN(truncjam)(a, &p_widen); a->sign =3D p_widen.sign; a->exp =3D p_widen.exp; =20 @@ -816,7 +816,7 @@ static FloatPartsN *partsN(div)(FloatPartsN *a, FloatPa= rtsN *b, float_raise(float_flag_input_denormal_used, s); } a->sign =3D sign; - a->exp -=3D b->exp + frac_div(a, b); + a->exp -=3D b->exp + fracN(div)(a, b); return a; } =20 @@ -880,7 +880,7 @@ static FloatPartsN *partsN(modrem)(FloatPartsN *a, Floa= tPartsN *b, if (ab_mask & float_cmask_denormal) { float_raise(float_flag_input_denormal_used, s); } - frac_modrem(a, b, mod_quot); + fracN(modrem)(a, b, mod_quot); return a; } =20 @@ -969,7 +969,7 @@ static void partsN(sqrt)(FloatPartsN *a, float_status *= status, exp_odd =3D a->exp & 1; index =3D extract64(a->frac_hi, 57, 6) | (!exp_odd << 6); if (!exp_odd) { - frac_shr(a, 1); + fracN(shr)(a, 1); } =20 /* @@ -1110,7 +1110,7 @@ static void partsN(sqrt)(FloatPartsN *a, float_status= *status, /* Convert back from base 4 to base 2. */ a->exp >>=3D 1; if (!(a->frac_hi & DECOMPOSED_IMPLICIT_BIT)) { - frac_add(a, a, a); + fracN(add)(a, a, a); } else { a->exp +=3D 1; } @@ -1150,9 +1150,9 @@ static bool partsN(round_to_int_normal)(FloatPartsN *= a, FloatRoundMode rmode, if (a->exp =3D=3D -1) { FloatPartsN tmp; /* Shift left one, discarding DECOMPOSED_IMPLICIT_BIT */ - frac_add(&tmp, a, a); + fracN(add)(&tmp, a, a); /* Anything remaining means frac > 0.5. */ - one =3D !frac_eqz(&tmp); + one =3D !fracN(eqz)(&tmp); } break; case float_round_ties_away: @@ -1174,7 +1174,7 @@ static bool partsN(round_to_int_normal)(FloatPartsN *= a, FloatRoundMode rmode, g_assert_not_reached(); } =20 - frac_clear(a); + fracN(clear)(a); a->exp =3D 0; if (one) { a->frac_hi =3D DECOMPOSED_IMPLICIT_BIT; @@ -1190,7 +1190,7 @@ static bool partsN(round_to_int_normal)(FloatPartsN *= a, FloatRoundMode rmode, * which leaves room for sticky and rounding bit. */ shift_adj =3D (N - 1) - (a->exp + 2); - frac_shrjam(a, shift_adj); + fracN(shrjam)(a, shift_adj); frac_lsb =3D 1 << 2; } else { /* @@ -1208,7 +1208,7 @@ static bool partsN(round_to_int_normal)(FloatPartsN *= a, FloatRoundMode rmode, =20 if (!(a->frac_lo & rnd_mask)) { /* Fractional bits already clear, undo the shift above. */ - frac_shl(a, shift_adj); + fracN(shl)(a, shift_adj); return false; } =20 @@ -1236,21 +1236,21 @@ static bool partsN(round_to_int_normal)(FloatPartsN= *a, FloatRoundMode rmode, } =20 if (shift_adj =3D=3D 0) { - if (frac_addi(a, a, inc)) { - frac_shr(a, 1); + if (fracN(addi)(a, a, inc)) { + fracN(shr)(a, 1); a->frac_hi |=3D DECOMPOSED_IMPLICIT_BIT; a->exp++; } a->frac_lo &=3D ~rnd_mask; } else { - frac_addi(a, a, inc); + fracN(addi)(a, a, inc); a->frac_lo &=3D ~rnd_mask; /* Be careful shifting back, not to overflow */ - frac_shl(a, shift_adj - 1); + fracN(shl)(a, shift_adj - 1); if (a->frac_hi & DECOMPOSED_IMPLICIT_BIT) { a->exp++; } else { - frac_add(a, a, a); + fracN(add)(a, a, a); } } return true; @@ -1555,7 +1555,7 @@ static FloatPartsN *partsN(minmax)(FloatPartsN *a, Fl= oatPartsN *b, /* Compare magnitudes. */ cmp =3D a_exp - b_exp; if (cmp =3D=3D 0) { - cmp =3D frac_cmp(a, b); + cmp =3D fracN(cmp)(a, b); } =20 /* @@ -1597,7 +1597,7 @@ static FloatRelation partsN(compare)(FloatPartsN *a, = FloatPartsN *b, goto a_sign; } if (a->exp =3D=3D b->exp) { - cmp =3D frac_cmp(a, b); + cmp =3D fracN(cmp)(a, b); } else if (a->exp < b->exp) { cmp =3D float_relation_less; } else { --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501726; cv=none; d=zohomail.com; s=zohoarc; b=TLBIsh/lKB7fT6TAiZUz6MXj+7lk7Vx/TAWMO30Rrmk/+oOjR+GGlwaevW0gJziNdnspszRitom5dbqfEJCNifFyPnoaw+LdhZXF9SmFKG4uDbrlhActdrc/KAXA+lUD5NiMZ5LxKDojQeSgEFRgQZdwa0F5pwTigZXWbvtD9mM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501726; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=HWZQajC/tHGSK7fSPh9L60VVX/n9t/233b4QjeCHzU4=; b=Xv0xoy9HCqleUuP7Y22ZBNf1H2x32nel79N/2rM3Jn4c5uaOJj7IeL/VQgPjByhUNmUtL6AqAyXI4psekcCEMJKcz5FINBhXXake4k4kch90p79LgTcbQz0GynBO9yqPV/1mv0N4Sl/MMLID39uXSbanmAQ9HlmHK10bbgbusDA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501726392534.9832576066507; Wed, 29 Apr 2026 15:28:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDMH-0002W7-PT; Wed, 29 Apr 2026 18:26:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDME-000228-LT for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:14 -0400 Received: from mail-pj1-x1035.google.com ([2607:f8b0:4864:20::1035]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDMB-0005EN-UG for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:14 -0400 Received: by mail-pj1-x1035.google.com with SMTP id 98e67ed59e1d1-35fb16e56efso133352a91.2 for ; Wed, 29 Apr 2026 15:26:11 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.26.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:26:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501570; x=1778106370; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=HWZQajC/tHGSK7fSPh9L60VVX/n9t/233b4QjeCHzU4=; b=cWyqMfJUGzwFAzmTWQQiJ5u8Gm3FKMyRushEXl49SyNBo4MFXVflr/9QNoH60DCoZJ uk3zEdtgFvHQiGSyqC38LfoTgJDb7sUE2Wi/m1hPNvlA0r7JrF0/MKcqn0zd9TpobgWS KMU5tPxruUeIUiOEeBH8dbY/I2xxague1L4ZR0k9jHc7Cvw8uS/t5k30DWiCzAqmluUt gAjBwrr8Ud+v+AkuThV81ibWc4B/SxIp6SUCrUTN/IzrxWj6GYPb9wiO71wKOuWo0tRZ i5GT49paIJwyFSSMzmWclHdHW3B4B2qXwxw3i9/eG9Mk934XBb7Fg72ynEWErgVap2Jq eBJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501570; x=1778106370; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=HWZQajC/tHGSK7fSPh9L60VVX/n9t/233b4QjeCHzU4=; b=MxkVgSgxEG6iFgZx+uGhKy/uqkNgW/N7RkOHKMimZuRYbkP3oepboCQknaGwT/hV+C ukhWydTPwT8ML4KUDM113pAkdv9esEeZr1LnmZMF3tIGfGnhazqAhSwSohX4yTAjWydB 4Jm+50bJsfprqrB69R59CCisjtuOOLOa2DdgL2cGo6c41uooLTDDj1I+mYqRbFgbiAEo hWmxOM4ryYP4LbsFiJLe4Lc0BmXrEziu548/B0cUbbBoVIQDTZPEw7/gwyewZKswJKXS 9AqKfuP2R3RlKoFL4Z57mixVU2KvUdy+0OR59UoOjojPY8k1O1LOH9VMuSeG+m1QXT+Z WlzA== X-Gm-Message-State: AOJu0YxkPRaThOb3FLgWm5sqwmZWAG7guDfMv0wyPCd6Xjmi+ENxPr0n VmhoQsmkOQGqDM+O3B5q86KNpLnX2mc9/yT4TURK2FiBNMvmOMwvrUjlBEmphgkSHH+FCHsTE6m dngu1nGI= X-Gm-Gg: AeBDieupqZurzwcIYRySccx7b+1giognfYapvB0xHxUbWvS08ONGE7QmFjFwr48prv+ d9+/n4NZPuZx0RQi2ybUEiyrrMBrpnYkCrOEC36rPsV7kwrDvhlz7Rabc5RQ0VYr8xt+dQTwy4G /DcUzTlXbMr97Z2sF8JmmTqJAj90qbtxrbG4OJOBquFDzSDqZEz0ZhtXkThxR52BnJp968CnEEM 0nBW9t6HmstAKwJXmy+o/Aerbpog2vuFAYFm9m7F5QcwkHKgS4NhB7CWdKSFsHaZYnEzkJ++M0r O7rxnyaE384mv3G9Kr6hDS+1lyE789NWPSfISW6GbVAfQyoQtq67qDcP0/2vPURt4K7GrLd3EaQ qlWn12JSb5m0dHqLBC7/K1fSrlslDgReayuPo5Npb5ioRQpL9GJHxiQbzUnuJZX8ccgmCYWIIUj 0yFfipkMWP+gOaBuOAi8DcVLA+kBma6EsKprm6WWYj X-Received: by 2002:a17:90b:270b:b0:359:f43d:4a6e with SMTP id 98e67ed59e1d1-364c2d88673mr235815a91.0.1777501570359; Wed, 29 Apr 2026 15:26:10 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 31/48] fpu: Constify frac{64,128,256}_* inputs Date: Thu, 30 Apr 2026 08:24:28 +1000 Message-ID: <20260429222445.26301-32-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1035; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1035.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501728038158500 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 53 +++++++++++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index e462fb7d74..6cca31af30 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -774,12 +774,14 @@ static float128 QEMU_FLATTEN float128_pack_raw(const = FloatParts128 *p) * Helper functions for softfloat-parts.c.inc, per-size operations. */ =20 -static bool frac64_add(FloatParts64 *r, FloatParts64 *a, FloatParts64 *b) +static bool frac64_add(FloatParts64 *r, + const FloatParts64 *a, const FloatParts64 *b) { return uadd64_overflow(a->frac, b->frac, &r->frac); } =20 -static bool frac128_add(FloatParts128 *r, FloatParts128 *a, FloatParts128 = *b) +static bool frac128_add(FloatParts128 *r, + const FloatParts128 *a, const FloatParts128 *b) { bool c =3D 0; r->frac_lo =3D uadd64_carry(a->frac_lo, b->frac_lo, &c); @@ -787,7 +789,8 @@ static bool frac128_add(FloatParts128 *r, FloatParts128= *a, FloatParts128 *b) return c; } =20 -static bool frac256_add(FloatParts256 *r, FloatParts256 *a, FloatParts256 = *b) +static bool frac256_add(FloatParts256 *r, + const FloatParts256 *a, const FloatParts256 *b) { bool c =3D 0; r->frac_lo =3D uadd64_carry(a->frac_lo, b->frac_lo, &c); @@ -797,12 +800,12 @@ static bool frac256_add(FloatParts256 *r, FloatParts2= 56 *a, FloatParts256 *b) return c; } =20 -static bool frac64_addi(FloatParts64 *r, FloatParts64 *a, uint64_t c) +static bool frac64_addi(FloatParts64 *r, const FloatParts64 *a, uint64_t c) { return uadd64_overflow(a->frac, c, &r->frac); } =20 -static bool frac128_addi(FloatParts128 *r, FloatParts128 *a, uint64_t c) +static bool frac128_addi(FloatParts128 *r, const FloatParts128 *a, uint64_= t c) { c =3D uadd64_overflow(a->frac_lo, c, &r->frac_lo); return uadd64_overflow(a->frac_hi, c, &r->frac_hi); @@ -818,14 +821,14 @@ static void frac128_allones(FloatParts128 *a) a->frac_hi =3D a->frac_lo =3D -1; } =20 -static FloatRelation frac64_cmp(FloatParts64 *a, FloatParts64 *b) +static FloatRelation frac64_cmp(const FloatParts64 *a, const FloatParts64 = *b) { return (a->frac =3D=3D b->frac ? float_relation_equal : a->frac < b->frac ? float_relation_less : float_relation_greater); } =20 -static FloatRelation frac128_cmp(FloatParts128 *a, FloatParts128 *b) +static FloatRelation frac128_cmp(const FloatParts128 *a, const FloatParts1= 28 *b) { uint64_t ta =3D a->frac_hi, tb =3D b->frac_hi; if (ta =3D=3D tb) { @@ -847,7 +850,7 @@ static void frac128_clear(FloatParts128 *a) a->frac_hi =3D a->frac_lo =3D 0; } =20 -static bool frac64_div(FloatParts64 *a, FloatParts64 *b) +static bool frac64_div(FloatParts64 *a, const FloatParts64 *b) { uint64_t n1, n0, r, q; bool ret; @@ -879,7 +882,7 @@ static bool frac64_div(FloatParts64 *a, FloatParts64 *b) return ret; } =20 -static bool frac128_div(FloatParts128 *a, FloatParts128 *b) +static bool frac128_div(FloatParts128 *a, const FloatParts128 *b) { uint64_t q0, q1, a0, a1, b0, b1; uint64_t r0, r1, r2, r3, t0, t1, t2, t3; @@ -926,22 +929,24 @@ static bool frac128_div(FloatParts128 *a, FloatParts1= 28 *b) return ret; } =20 -static bool frac64_eqz(FloatParts64 *a) +static bool frac64_eqz(const FloatParts64 *a) { return a->frac =3D=3D 0; } =20 -static bool frac128_eqz(FloatParts128 *a) +static bool frac128_eqz(const FloatParts128 *a) { return (a->frac_hi | a->frac_lo) =3D=3D 0; } =20 -static void frac64_mulw(FloatParts128 *r, FloatParts64 *a, FloatParts64 *b) +static void frac64_mulw(FloatParts128 *r, + const FloatParts64 *a, const FloatParts64 *b) { mulu64(&r->frac_lo, &r->frac_hi, a->frac, b->frac); } =20 -static void frac128_mulw(FloatParts256 *r, FloatParts128 *a, FloatParts128= *b) +static void frac128_mulw(FloatParts256 *r, + const FloatParts128 *a, const FloatParts128 *b) { mul128To256(a->frac_hi, a->frac_lo, b->frac_hi, b->frac_lo, &r->frac_hi, &r->frac_hm, &r->frac_lm, &r->frac_lo); @@ -1041,7 +1046,8 @@ static int frac256_normalize(FloatParts256 *a) return ret; } =20 -static void frac64_modrem(FloatParts64 *a, FloatParts64 *b, uint64_t *mod_= quot) +static void frac64_modrem(FloatParts64 *a, const FloatParts64 *b, + uint64_t *mod_quot) { uint64_t a0, a1, b0, t0, t1, q, quot; int exp_diff =3D a->exp - b->exp; @@ -1124,7 +1130,7 @@ static void frac64_modrem(FloatParts64 *a, FloatParts= 64 *b, uint64_t *mod_quot) a->frac =3D a0 | (a1 !=3D 0); } =20 -static void frac128_modrem(FloatParts128 *a, FloatParts128 *b, +static void frac128_modrem(FloatParts128 *a, const FloatParts128 *b, uint64_t *mod_quot) { uint64_t a0, a1, a2, b0, b1, t0, t1, t2, q, quot; @@ -1353,12 +1359,14 @@ static void frac256_shrjam(FloatParts256 *a, int c) a->frac_hi =3D a0; } =20 -static bool frac64_sub(FloatParts64 *r, FloatParts64 *a, FloatParts64 *b) +static bool frac64_sub(FloatParts64 *r, + const FloatParts64 *a, const FloatParts64 *b) { return usub64_overflow(a->frac, b->frac, &r->frac); } =20 -static bool frac128_sub(FloatParts128 *r, FloatParts128 *a, FloatParts128 = *b) +static bool frac128_sub(FloatParts128 *r, + const FloatParts128 *a, const FloatParts128 *b) { bool c =3D 0; r->frac_lo =3D usub64_borrow(a->frac_lo, b->frac_lo, &c); @@ -1366,7 +1374,8 @@ static bool frac128_sub(FloatParts128 *r, FloatParts1= 28 *a, FloatParts128 *b) return c; } =20 -static bool frac256_sub(FloatParts256 *r, FloatParts256 *a, FloatParts256 = *b) +static bool frac256_sub(FloatParts256 *r, + const FloatParts256 *a, const FloatParts256 *b) { bool c =3D 0; r->frac_lo =3D usub64_borrow(a->frac_lo, b->frac_lo, &c); @@ -1376,24 +1385,24 @@ static bool frac256_sub(FloatParts256 *r, FloatPart= s256 *a, FloatParts256 *b) return c; } =20 -static void frac64_truncjam(FloatParts64 *r, FloatParts128 *a) +static void frac64_truncjam(FloatParts64 *r, const FloatParts128 *a) { r->frac =3D a->frac_hi | (a->frac_lo !=3D 0); } =20 -static void frac128_truncjam(FloatParts128 *r, FloatParts256 *a) +static void frac128_truncjam(FloatParts128 *r, const FloatParts256 *a) { r->frac_hi =3D a->frac_hi; r->frac_lo =3D a->frac_hm | ((a->frac_lm | a->frac_lo) !=3D 0); } =20 -static void frac64_widen(FloatParts128 *r, FloatParts64 *a) +static void frac64_widen(FloatParts128 *r, const FloatParts64 *a) { r->frac_hi =3D a->frac; r->frac_lo =3D 0; } =20 -static void frac128_widen(FloatParts256 *r, FloatParts128 *a) +static void frac128_widen(FloatParts256 *r, const FloatParts128 *a) { r->frac_hi =3D a->frac_hi; r->frac_hm =3D a->frac_lo; --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501610; cv=none; d=zohomail.com; s=zohoarc; b=dp0nuv2JBXKhjOiUnJRsc7rKdgH4Xq/MDFy5ffMMV9ADuxZbmFkTxg+hCO5Z6FRLDOxlMSVTWgojiE8r96oZfeBHwba7u2aCah4F0frd0lbo9u7iLRygOpDAbRgXHLLQUmdK6LuRlxQQr+Cov+CqnJfufx5CrivLut2e8YGyUI8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501610; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=1EDICl4zi0jKkBOag4nGdDAB1IPyCIs8h1kJ1Hhds8k=; b=GeFc2R1n0eUIsEXrHnHiTZUckObbdTaYCAjXZZJ6Jz6au5Sq6F2cCbZSWxQTn2SJr8KYjkAbudHIAiLJ/UGkjTvQOx7QiS1jNdfpX20gfp2cPXyrelSbzoGB5H6hnBeNHbFVAeMSD7GMsA3Yfa7m40TacKkKr88MhVHmG91K0Ck= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501610282526.7755313368106; Wed, 29 Apr 2026 15:26:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDMI-0002dT-Bx; Wed, 29 Apr 2026 18:26:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDMG-0002LB-JD for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:16 -0400 Received: from mail-pj1-x1036.google.com ([2607:f8b0:4864:20::1036]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDME-0005Es-S7 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:16 -0400 Received: by mail-pj1-x1036.google.com with SMTP id 98e67ed59e1d1-35da1af3e10so200300a91.3 for ; Wed, 29 Apr 2026 15:26:14 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.26.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:26:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501573; x=1778106373; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1EDICl4zi0jKkBOag4nGdDAB1IPyCIs8h1kJ1Hhds8k=; b=ZrtkvfbwqPxs4glDMZtT+I6aLQWIRBxKgOGk0rwV0rNhp5l3FdJNE+2UHDdyACMOLn RiX9TSVdCZGO0EOPSfodxo4LCAUw3Un9I1QJ4B0x37i9qnIpdgYiv/BlD/sjJjNLyFi/ b4x4bAh6Urku5DP9rmDZat4vVgxAtzQhLs0NuC6p3c8FQEM3Dl3tpP/nvEemZ8oT1UCr ML2Fwn+LH99OLQ9wl5o16hmoCmQOtwdCd+csqfI8QuR9uSaCPVIq8AhY8c5IGLvKgkSu hMmATOQkAp/eti63NCf62GYq11+8qOX5qPYjEAbAx//AouyhZTvfRPwjhlEyrOn0hPxq pcCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501573; x=1778106373; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=1EDICl4zi0jKkBOag4nGdDAB1IPyCIs8h1kJ1Hhds8k=; b=ADsAvOgK2nSAXLEXDrj3ANz4zgeUsjn2putcn/nznBxZA+6rJ7wNIdcYsk6mKj7Q7A oCGRvpQjUKTt6xb1RIpsYEjtzSVMzni1ox4gpKOxXJKva7hljpHFmyamY+40+anYCmgt 6UDoyfu6m3osFi3ONzpKviwTZe/nRzTcoBTvr+7zWMv8ElrqUQKC63H31h4PpcQQtuUN C9l+BX8huTmbsqVwZDWCQnDbjO7YFbdAv32DxQU9XBft31AePNQEWD2m81cleYrbY/bj ka61NE22A9C7sSuEI+sZ+I4Qcw9fChM0KoejHOpAOcUOPjX5EOXNUNmf+kOXsozrW6rl TjwA== X-Gm-Message-State: AOJu0Yx2Mn+JwQ3mn1ICYDb7UfrysW5s3QKnyHdWezFghREvnzIr2gMm 1oAZTG6+bF1qk1BxtEcReVKeG/htAPMR/eavZCXmoYjpiUk28CXiYq1DGjQ4SBH9VcZWgomuiV4 oMPXFWxY= X-Gm-Gg: AeBDietETEF7epkJLQVadugQstmLHApxKBWwOEgrxdMO7oi8a4qo30WfHAUgbwrnvS0 kLi/wnLMK6JiLyqglAy4H4ScjBZ9qFcdvXZAKGfUq28Gv89AFKVAYrnki1hTIaXk9PijXy03cOq 893Vlmt2TX4+nCEAdnfI4/f0DVjPXUVbQtuLk3vFiWrY8RGtmgymw1ossP810yMgzrnIsvJM+sW BPp99WUY+wWH84c1MaahkTO5t8eRW6hgxJ/EolT68YxgOWcHu/qS7u58aMOz/b7b2NqA/zGmrb0 D7iJnqr6TFkoGcx3SdwyAanGkct40a/XBt0fiS2/LOkMlM9runTdNtLE68wqN2pXJoOpsa7aPFg iyLt9BzNmZa3nz4Zk7xFbxuMlLenzEGBcU+j4ptes3FRj+jj3xO/eCht4t5pYqeAW8FMHCR1FlK UcJgvHLEAviyhtvUWNByDxI8qScpzbzVT+MKxq+9gw X-Received: by 2002:a17:90b:4a51:b0:35f:ba8e:150d with SMTP id 98e67ed59e1d1-364c312dcc8mr159451a91.14.1777501572952; Wed, 29 Apr 2026 15:26:12 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 32/48] fpu: Return structure from unpack_raw64 Date: Thu, 30 Apr 2026 08:24:29 +1000 Message-ID: <20260429222445.26301-33-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1036; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1036.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501611806158500 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 6cca31af30..99b1cce894 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -633,12 +633,12 @@ static const FloatFmt floatx80_params[3] =3D { }; =20 /* Unpack a float to parts, but do not canonicalize. */ -static void unpack_raw64(FloatParts64 *r, const FloatFmt *fmt, uint64_t ra= w) +static FloatParts64 unpack_raw64(const FloatFmt *fmt, uint64_t raw) { const int f_size =3D fmt->frac_size; const int e_size =3D fmt->exp_size; =20 - *r =3D (FloatParts64) { + return (FloatParts64) { .cls =3D float_class_unclassified, .sign =3D extract64(raw, f_size + e_size, 1), .exp =3D extract64(raw, f_size, e_size), @@ -648,37 +648,37 @@ static void unpack_raw64(FloatParts64 *r, const Float= Fmt *fmt, uint64_t raw) =20 static void QEMU_FLATTEN float4_e2m1_unpack_raw(FloatParts64 *p, float4_e2= m1 f) { - unpack_raw64(p, &float4_e2m1_params, f); + *p =3D unpack_raw64(&float4_e2m1_params, f); } =20 static void QEMU_FLATTEN float8_e4m3_unpack_raw(FloatParts64 *p, float8_e4= m3 f) { - unpack_raw64(p, &float8_e4m3_params, f); + *p =3D unpack_raw64(&float8_e4m3_params, f); } =20 static void QEMU_FLATTEN float8_e5m2_unpack_raw(FloatParts64 *p, float8_e5= m2 f) { - unpack_raw64(p, &float8_e5m2_params, f); + *p =3D unpack_raw64(&float8_e5m2_params, f); } =20 static void QEMU_FLATTEN float16_unpack_raw(FloatParts64 *p, float16 f) { - unpack_raw64(p, &float16_params, f); + *p =3D unpack_raw64(&float16_params, f); } =20 static void QEMU_FLATTEN bfloat16_unpack_raw(FloatParts64 *p, bfloat16 f) { - unpack_raw64(p, &bfloat16_params, f); + *p =3D unpack_raw64(&bfloat16_params, f); } =20 static void QEMU_FLATTEN float32_unpack_raw(FloatParts64 *p, float32 f) { - unpack_raw64(p, &float32_params, f); + *p =3D unpack_raw64(&float32_params, f); } =20 static void QEMU_FLATTEN float64_unpack_raw(FloatParts64 *p, float64 f) { - unpack_raw64(p, &float64_params, f); + *p =3D unpack_raw64(&float64_params, f); } =20 static void QEMU_FLATTEN floatx80_unpack_raw(FloatParts128 *p, floatx80 f) --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501737; cv=none; d=zohomail.com; s=zohoarc; b=Q8Lcl7sjImQLQrsMG9FRjEEDXQTrU6YCzUFSshS4hDiXJ4Vf8B4vy2+F7S+TIGyb3MM3/lYJ3umW6J8sr8ZJ3x+qzMmhiW6dd+cq2MARV3u5THEVRs1Xxz1S+lwZbSqQIfyF9IYvjT09Yvvywuq7kHL2wLFLxVUWR9EeDXpYecA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501737; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=7O4hKnrM8IFMNxLNYNqBPp5uIxhITOfd/CNA0UapkwA=; b=PJppwTUQK8VYEenz3KdkJSqn1fzRJ9Le0cv2RGRz+VfC7bNQtKBt1gsgKlFx5i0kOtsz1eC/fCsd6NpOZJKFF40EglusW+UhMCLE9wvHgPCmuzmWVJWnCa2rHRNNi6nAMeKkZ8nkoUepVkbddDXzJjRsGrWucu5/VpFU2XhuPEo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501737694968.6270655791307; Wed, 29 Apr 2026 15:28:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDMK-0002w7-6x; Wed, 29 Apr 2026 18:26:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDMI-0002hJ-Jv for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:18 -0400 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDMG-0005Gp-Vq for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:18 -0400 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-35fb166b0c6so737194a91.0 for ; Wed, 29 Apr 2026 15:26:16 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.26.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:26:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501575; x=1778106375; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7O4hKnrM8IFMNxLNYNqBPp5uIxhITOfd/CNA0UapkwA=; b=c+Qls06mKIvA6OKpaUIGg9JSLpqCtAeQP9eerTgp5Memp2Qnb0Y6MWWXmyfGxdJgiY Uz25IZ760ePGskruOvr7y5IvfW7MHGzL6y07/xRB9o1F6jd6xA6v9INctzVIaGWd0Emq rFIo1v1k+uj4ayrqiqG0mBqN14ysYvTN+gw//righnPMMEATxCA6joEF+e6BFa8vWez/ TK9B9MB36zATxij3Ur1oKrby2fVSV+S5kU0hnhXXj5IJFP9VSZs5b3jkftkCmhzGaTyI 59jiyH2Jrs2ky+PEh3qFVKd5lkFlahZUIOOgd3N7B13pCoCBbZTbpxIHk3oAF+wn380Y 3oTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501575; x=1778106375; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=7O4hKnrM8IFMNxLNYNqBPp5uIxhITOfd/CNA0UapkwA=; b=KcaO0YWtOJJhM45T8XGdPeIFzaxSgbWaYVtgC2Z0pxdBEOYP4lSFaBY1YaEIsRyizs IbTQznp/+OgvAu5zrU0ZQW+ErjbUNfy1p/2ef5Zq5P/fDZ6uCOD8WhzAwMVDI60WjZ9L KgYfdViFPZQrTZtU++XESSTHORtAqbDtQKr63AY/VTHwefXTDre29+IVF4SvyWIuZIqn f3/uk931G0B6lt87rEA3OztOyZ+wCLlitC3y86D/39XrVHuB8Pv63b3XVH+fPcR0mzOk MsL2yFSMl45f4i9U01RnwCGbYza8IRbWzrATS2py2euaSTLSt4FrnxMG5eldBZOBwoGq 0Fbw== X-Gm-Message-State: AOJu0Yz287gL1z8vh00hNom9zDExkOmtotsuzshu8isjTc/FsB/fsFQN VrwQTiBRiF0B6f0vNfpoWExbw8hOiHh3Eq+wMGoBUZtD/CDRBPPhdBDMaHI6lQN+d2uuk1OGQsX lmUudnOA= X-Gm-Gg: AeBDievgZ2mpdfDRH8S5kD1ymzEu9++AgkzBOSILpp61AaOB8XdFG9K1yzJUmQNx6tW uhJh8CoJeRwPPI3rvEDKGFe4uRSzIBvKwqgGPNcCU5vyMqPWoMlYPWhhjAts0n5kMkRIR2RQfgJ 28z/KExwx5DqmsQnKoreNAq5IC8gne/V15AFsOjLGwRM+oOhp3kENl+XLQ3TM8oiwbcUdwTGhXM NR0LC68dvHXkTDdRSfnAogAhj9PWP91PUwHfwK4HeR3CQ3LV6OB3vIpc+4ALodGSCPLJU+UWnMF gf0dvtrQ2AFwq5dI2K2J0rGkofS8A1zTIEFtiqkQUVBHYC0f80aA7aXWn0cXqFS0KfZ07ecDRib Tk+PqmnnToUyruKAb8t4lmAMdC2pOcGfXD8gCm+Cm6KzmB7THtmpz52UMi17wJLNos9iZtMBpX/ zhB9jOrSeeY2QYT19+llCpzXFJpbCbuiAFMIycz5nx X-Received: by 2002:a17:90b:52:b0:35d:a31e:6b04 with SMTP id 98e67ed59e1d1-364c44b5c8bmr8676a91.3.1777501575367; Wed, 29 Apr 2026 15:26:15 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 33/48] fpu: Return struct from float4_e2m1_unpack_canonical Date: Thu, 30 Apr 2026 08:24:30 +1000 Message-ID: <20260429222445.26301-34-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102a; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501738137154100 Inline float4_e2m1_unpack_raw at the same time. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 99b1cce894..c1d0140484 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -646,11 +646,6 @@ static FloatParts64 unpack_raw64(const FloatFmt *fmt, = uint64_t raw) }; } =20 -static void QEMU_FLATTEN float4_e2m1_unpack_raw(FloatParts64 *p, float4_e2= m1 f) -{ - *p =3D unpack_raw64(&float4_e2m1_params, f); -} - static void QEMU_FLATTEN float8_e4m3_unpack_raw(FloatParts64 *p, float8_e4= m3 f) { *p =3D unpack_raw64(&float8_e4m3_params, f); @@ -1473,11 +1468,11 @@ static const uint16_t rsqrt_tab[128] =3D { * Pack/unpack routines with a specific FloatFmt. */ =20 -static void float4_e2m1_unpack_canonical(FloatParts64 *p, float4_e2m1 f, - float_status *s) +static FloatParts64 float4_e2m1_unpack_canonical(float4_e2m1 f, float_stat= us *s) { - float4_e2m1_unpack_raw(p, f); - parts64_canonicalize(p, s, &float4_e2m1_params); + FloatParts64 p =3D unpack_raw64(&float4_e2m1_params, f); + parts64_canonicalize(&p, s, &float4_e2m1_params); + return p; } =20 static void float8_e4m3_unpack_canonical(FloatParts64 *p, float8_e4m3 f, @@ -2699,9 +2694,7 @@ static void parts_float_to_float_widen(FloatParts128 = *a, FloatParts64 *b, =20 float8_e4m3 float4_e2m1_to_float8_e4m3(float4_e2m1 a, float_status *s) { - FloatParts64 p; - - float4_e2m1_unpack_canonical(&p, a, s); + FloatParts64 p =3D float4_e2m1_unpack_canonical(a, s); parts64_float_to_float(&p, s); return float8_e4m3_round_pack_canonical(&p, s, false); } --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501697; cv=none; d=zohomail.com; s=zohoarc; b=PrVQbyQFlRiC0JtwLYUTfp357pDCJap9dyYN7kSdFGQvsC/SJeNOyVZUF/QTx3vftljf/PnhYmphY/lvfQ5D2kYHUa9jo4rofrFuZZFbnFQEnxMjeMvwaQE623ooXeclMk2Bek2OFHmuFtgecJxATKarKhLX/UcMmiQL6N5K6KM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501697; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=uJ1do9xAZzfPr/mA/oklSBCs4qcpkKXJzAzKJ9HmEZ0=; b=kL2WSpSPYOulVz6c1GlPPVOb59ssQfQs3ISE5CIzVr6YsWsf9MRtEm+YRHUqSNUmHbXQmAEqAG4P3fOWroKobf0cxRZgdqJMoNuuDO6GtMLOWEKYxnWTNI+81QyZQY/eCq1qc/gNx9lozeozL3/x7NFPD2VeLCdbY0XdVsPQQ+8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501697334566.8784267459677; Wed, 29 Apr 2026 15:28:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDMM-0003Do-Cs; Wed, 29 Apr 2026 18:26:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDMK-00031m-Tb for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:20 -0400 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDMJ-0005J8-88 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:20 -0400 Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-35f9ab079bdso151356a91.2 for ; Wed, 29 Apr 2026 15:26:18 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.26.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:26:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501578; x=1778106378; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=uJ1do9xAZzfPr/mA/oklSBCs4qcpkKXJzAzKJ9HmEZ0=; b=ek1jnIUM5iYZ3u1ewmxXbb8NgRCU2b3v/aDlHSZh/GOZdqMwPUbL2WyaPMFn3dhWQE 6HUt+XAAcyqaBA5H3d94jOCFgvOMjNQfse1rgKJfQzfLCMTzaXQko3a08iKGkZe0d4aZ 0bfeQe8KuwTbouAl6N3Wn2DhZMbPbTQDOamH0g22Brzv9R0NyN/qinkdhOU+P7B7gtOT F6jNJaDC5PHBptFMIyFMZYgJdoPfHB58tnw9i5tQnoQ89uwdeTOYk94q5nrLbtaoWQab i9ILsdVrPh1vgg96/EYcJef9JYMVHN7DxFkdMi/fmlbe+wPPyTuh8Sthkm+hy7uFhFo6 P7aA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501578; x=1778106378; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=uJ1do9xAZzfPr/mA/oklSBCs4qcpkKXJzAzKJ9HmEZ0=; b=O9eHJOQZCcRg38qb6Mt3Gvz6Y0fJcKNIF6gF4FDF8F0oS0YQxykil1hltECka7zDbY ZhyqOockiYH6ekIH7G0v1tf/6ehYLIPQJb+3f4XgtJ7gesGiNpjIR0gWC1cY/ysict0l SEG54+KYPMU1oX9/KTHesImqLyVctmtj6TX+9k+bDf9v8X1t4t3raTzTkqK8LIFcOLuy 5uzK2rV6YAO/PGWYO0iD5Lk+4yviUGJGCYXEOb86Z86IncdSDAX6/iZ9U/p/lbDnw1Ew 4fWotRYRoYQgTchwMNb5BhqZr99Wq/we1nX6nKv+GC6AoMWXkofoGSRZeEplLb7OQEZ+ /0KQ== X-Gm-Message-State: AOJu0YxqDJlDowTziirgiUQtUgo+HXpts6MARs4iFHOC1C3hCIRDK/K7 TM1N1fzJIKn/vdeDLvsXN2IYNDi4+HBEpMdvxUYtJW74ivzT3ii4b9+wEOy+MTQXwoBEeRUoudj kT5GT02E= X-Gm-Gg: AeBDieu3M4MqRG3EX3IosuG5WYJXem6WHrKT4vPJ8xGYq7ZHcdSTDt7ez/1+hNIPesO JDgRVxkiS9wP++Z/DugT8oPCVxqy3hK4OktQ4hz+mfAwEtWwGKkzjgmw/C9IrH8apYClsLvY826 aPjvZZAQkFANhcPZva5rxLW2xpSzduU5BBK0isxQeB0macn6BvQ32ahxf+sz4tGbcJSGl8Edrh/ rO2nntj3ubgClR4NHSqeeyE083jTmpXxMt0OCucp9Xu20p7lzVIXDN/kIfIY7WI0NVeHOyIEfYb FKQHHO6v1aafSX3u6gDICeEZNZTSlhw1CUWuy5QcDjcRwxLbxT9G9XQq9/pXJjHM4aToANDZtG4 qcS4iDNa7F6l2Ii/TAVyHyzOFKsDNsdevY5sOVW0gu7i/klBA2YO/iyjZZXZKpIspqzZWMkMWBH KsMqnMsvbtq6VF/7huQvjJzdwJNJrRsmksAY9+ivvI X-Received: by 2002:a17:90b:2e42:b0:35f:b9ea:8fa5 with SMTP id 98e67ed59e1d1-364c30e2dc9mr161346a91.20.1777501577871; Wed, 29 Apr 2026 15:26:17 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 34/48] fpu: Return struct from float8_e4m3_unpack_canonical Date: Thu, 30 Apr 2026 08:24:31 +1000 Message-ID: <20260429222445.26301-35-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102b; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501697903158500 Inline float8_e4m3_unpack_raw at the same time. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index c1d0140484..c1b03f30ab 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -646,11 +646,6 @@ static FloatParts64 unpack_raw64(const FloatFmt *fmt, = uint64_t raw) }; } =20 -static void QEMU_FLATTEN float8_e4m3_unpack_raw(FloatParts64 *p, float8_e4= m3 f) -{ - *p =3D unpack_raw64(&float8_e4m3_params, f); -} - static void QEMU_FLATTEN float8_e5m2_unpack_raw(FloatParts64 *p, float8_e5= m2 f) { *p =3D unpack_raw64(&float8_e5m2_params, f); @@ -1475,11 +1470,11 @@ static FloatParts64 float4_e2m1_unpack_canonical(fl= oat4_e2m1 f, float_status *s) return p; } =20 -static void float8_e4m3_unpack_canonical(FloatParts64 *p, float8_e4m3 f, - float_status *s) +static FloatParts64 float8_e4m3_unpack_canonical(float8_e4m3 f, float_stat= us *s) { - float8_e4m3_unpack_raw(p, f); - parts64_canonicalize(p, s, &float8_e4m3_params); + FloatParts64 p =3D unpack_raw64(&float8_e4m3_params, f); + parts64_canonicalize(&p, s, &float8_e4m3_params); + return p; } =20 static void float8_e5m2_unpack_canonical(FloatParts64 *p, float8_e5m2 f, @@ -2701,9 +2696,7 @@ float8_e4m3 float4_e2m1_to_float8_e4m3(float4_e2m1 a,= float_status *s) =20 bfloat16 float8_e4m3_to_bfloat16(float8_e4m3 a, float_status *s) { - FloatParts64 p; - - float8_e4m3_unpack_canonical(&p, a, s); + FloatParts64 p =3D float8_e4m3_unpack_canonical(a, s); parts64_float_to_float(&p, s); return bfloat16_round_pack_canonical(&p, s); } --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501669; cv=none; d=zohomail.com; s=zohoarc; b=I82UpFSyZudoKN3pGP1UNJ2O27b75E8aB0LkSC+6udQJMJX7URmxeiIVmJl3nY6Q9/59FbnfaUrilxejWvAyXDx9s62aZ5CAXM7m1tclT5NHQHGatWv2obUCeD/WOcVqjqwR4IDMinjMsDLUYhUqkhCNVLmHeFJKpvBcF+I4Cqo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501669; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=1ooM4YOoPsN++vQGnPI3dfYk4TOv337raCoMBlIHrQM=; b=HnU+SSo+yMJ7fHDCLCSt6t61XPHYvFJVcZg2NfR/nHSJFrNuLoaLLegZX8L+OM6XGm5XwYclvwy4nxmVKS0zLgKX6+fUajDu/QMM5BwMbPrMswM47ab/UpC1iHZfkbEw2UY+J8iAUVYWWoGtQ+N2q2JCjNOxfhcq/LUOKvsmyHw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501669654563.7231233875973; Wed, 29 Apr 2026 15:27:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDMO-0003UQ-HM; Wed, 29 Apr 2026 18:26:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDMN-0003N6-AT for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:23 -0400 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDML-0005Jp-Mj for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:23 -0400 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-35691a231a7so132104a91.3 for ; Wed, 29 Apr 2026 15:26:21 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.26.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:26:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501580; x=1778106380; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1ooM4YOoPsN++vQGnPI3dfYk4TOv337raCoMBlIHrQM=; b=x8FaUl9Lov6mSIof7IqE1gCtFRXS+eKnI4ZwjIXS3YQuIR1+WRMEPpPobMDwHOX7rp zzgJZ4qFGbI0QFOWuQi2FpQfEe4cxdLuiGXpqRymQnst+Obv9v91Thioaif4dcad+vu0 XaOW6kNaW4OoQyoWJbd7+kLERIfi7/umzon7jMs3u0jwuq9j353sAhCQryuRqloYCfcy HyOUlA4GMpUJAdv4tTxmwMJ/r/IbMNF6LDnA12d0GiaA8OcpMtd1b/LNAb2IleVSAPL5 iF74ibRQ7EijiooOe0DUmXFvVYYj12F33uIwTgdEMIU6Jek0Pm4ESsA5L1AGn0/7TdOh 8zDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501580; x=1778106380; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=1ooM4YOoPsN++vQGnPI3dfYk4TOv337raCoMBlIHrQM=; b=L5ivIAkKJS05ST+H+vWzu0/vgfpINjsgfPLwIdBlkxasrHppgDdvWgctfjatrHd9S4 rC8C/D+jCqMQ4At0A+YJ59vri5ZcczcvEE2ZYpOOZVjD0mEeJPviVGGSDLN6HnvxWgFS 9f4diB+oXlRpzlT1zom6Y8PUSa+HvwYEpilPHOKPE6cTA0JDXVjTiV4nxzG498hEm0MC qkYx+Sm7LE/sdgRGX6DPn4eyeRVsL9JuCmlxU37XzhXHUZaUTN0b9Fnq4hPP8uF7WaiD fyLVfa11y+Zd6ZsvVB/OWwF0x5mU01+7xHU8gBS4TbcinmYt1eEV7K2jsaBSrGIV779g oKpg== X-Gm-Message-State: AOJu0Yx7rj3RnXkn+zHlG4hLf0hKK4JgrAAhXB8rxhjCjeYomjYMjA4q V2oqOYr9M4J1TcEMDO/uDb4OdqRDO2DjCeYRYb5exz0HUMJF11YnNhwBrLCCxYZhCcx/6yfVGiv OsU9EZe4= X-Gm-Gg: AeBDievx5sLE81lXA5cJhqgG1ujh7MJ0cVF/CUXXAcdBrlUl0Dkx9p0t0rEQTCVfW4c bS41/j8XTFh/jCi79LgirB3mUe7Z9EAuHqy0hBsSPSArq4uwIkz7mY6QJVWjTlXebXIx7BusyqP AW38arQ3ZFrCYycm2GrtujqBYWZHaqa0i2zTA2WoIumSCWl9o+ikRBHsuZ407ZkIOEPWZ3SlcG+ 1oswGYAIioFIYHB2ydGRBN5X2GpgROPyzw1SRcHYdlxraFSL074Hanxl1o0yvksb073jEEvaBL8 9yAofzKD3kRPgnId6OUdFG0veXbvDCdNySVOVKwMG0F8HhHgdHAkGGxrsFavn2YuitwoTOg7Lxx 8xNQEXiKZI/CXLVt44ZK0dKeXX8XZRn1yw5Q8FdijuRWLBwx8Ij6z7to6hUBFmaF5/m3ljc4Lqv nbIIUxCquErKUQMyFlmfS2nTecA2c/4B4pZ3WB0s7+ X-Received: by 2002:a17:90b:54cb:b0:356:22ef:57ba with SMTP id 98e67ed59e1d1-364c2fcaca8mr177796a91.7.1777501580396; Wed, 29 Apr 2026 15:26:20 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 35/48] fpu: Return struct from float8_e5m2_unpack_canonical Date: Thu, 30 Apr 2026 08:24:32 +1000 Message-ID: <20260429222445.26301-36-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1032; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1032.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501671249154100 Inline float8_e5m2_unpack_raw at the same time. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index c1b03f30ab..bc6450954e 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -646,11 +646,6 @@ static FloatParts64 unpack_raw64(const FloatFmt *fmt, = uint64_t raw) }; } =20 -static void QEMU_FLATTEN float8_e5m2_unpack_raw(FloatParts64 *p, float8_e5= m2 f) -{ - *p =3D unpack_raw64(&float8_e5m2_params, f); -} - static void QEMU_FLATTEN float16_unpack_raw(FloatParts64 *p, float16 f) { *p =3D unpack_raw64(&float16_params, f); @@ -1477,11 +1472,11 @@ static FloatParts64 float8_e4m3_unpack_canonical(fl= oat8_e4m3 f, float_status *s) return p; } =20 -static void float8_e5m2_unpack_canonical(FloatParts64 *p, float8_e5m2 f, - float_status *s) +static FloatParts64 float8_e5m2_unpack_canonical(float8_e5m2 f, float_stat= us *s) { - float8_e5m2_unpack_raw(p, f); - parts64_canonicalize(p, s, &float8_e5m2_params); + FloatParts64 p =3D unpack_raw64(&float8_e5m2_params, f); + parts64_canonicalize(&p, s, &float8_e5m2_params); + return p; } =20 static void float16a_unpack_canonical(FloatParts64 *p, float16 f, @@ -2703,9 +2698,7 @@ bfloat16 float8_e4m3_to_bfloat16(float8_e4m3 a, float= _status *s) =20 bfloat16 float8_e5m2_to_bfloat16(float8_e5m2 a, float_status *s) { - FloatParts64 p; - - float8_e5m2_unpack_canonical(&p, a, s); + FloatParts64 p =3D float8_e5m2_unpack_canonical(a, s); parts64_float_to_float(&p, s); return bfloat16_round_pack_canonical(&p, s); } --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501625; cv=none; d=zohomail.com; s=zohoarc; b=BpLIOqx0KArk8D84dAia5B9F511BU2/ip3qiLYZ92WIBlc98tfDy6enu2UVATQIGCqyu0aqDDgOlOyJl26dCxlQq+BADFothOWmdWt7Xkr5zEmW0ESzGyr5hZFfiJPmWb0lUw21ukEXo4wAKDbz6PuNvJ5khgu2Pbdgc0NqN3XA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501625; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=wOo9Ej8oauL+yt74QGsLK9i6wkNOq1Wi6G6vU7WjjcY=; b=PjANwDWLHWmA/BFK6T/SfgUstHyU+z1MLHRNLLa5xdnmHG+FL1iII0pgmsARJTjnZ2Cwv4pHeoPxPqLJPA/rDYRqznfLCYZBgW3Wz08NIYgufql3yFMPZV9QA/mVtcogsS6rU2T/51/VgaYFDgQvjzqH6KzW9ex7XiX2IxqFX2Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501625931521.0961136510043; Wed, 29 Apr 2026 15:27:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDMR-0003tM-Te; Wed, 29 Apr 2026 18:26:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDMQ-0003jc-GL for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:26 -0400 Received: from mail-pj1-x102e.google.com ([2607:f8b0:4864:20::102e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDMO-0005KF-7y for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:26 -0400 Received: by mail-pj1-x102e.google.com with SMTP id 98e67ed59e1d1-36146ae9dd4so179267a91.3 for ; Wed, 29 Apr 2026 15:26:23 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.26.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:26:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501583; x=1778106383; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=wOo9Ej8oauL+yt74QGsLK9i6wkNOq1Wi6G6vU7WjjcY=; b=fS38waavuCzF0kaJ6YJyia83JbU8OpJ7cFTaQnNQ3dSzsaqmaVetL3q9CCHhA3t8/F 649z5emO8Ejaewn6/l3m62pZ+6yJfTSDlLyhPLflk+N4PXgOqC/J42AMt8/uWb+6BdN2 +Br7WRxbq7caPSk09V8oYkXTgJ7PdEg2P71gI9JPT+GzC4zdDz8z9VPerttdTg3TxWRz +csaeQbmKj0sJwEHaqPl42ugTgMZnMtnHroxLLigHwAIeLP2v3jhIMeZrO30zA/HXS2x +dqkTD6KJul7j/ZyvRLhbu81C+YhXnqnlnLFVWwTnDOyscMT/h3i4+pBGSLoZp9L/Kj4 SWQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501583; x=1778106383; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=wOo9Ej8oauL+yt74QGsLK9i6wkNOq1Wi6G6vU7WjjcY=; b=nx4oH8koUNaARcK4RbHCokPM4TxAeOHsP+JNnpO5lKKTT+AmwGdALNF1v9xUMdLFOt cC20Dlr+RTxw03mTm0Wjnn59f8B5goIPTSXPARVBz2uhrYf/6rR/Alr2wsIkGuZOT9Re 3g3a/nefy2JncDZvuwRN9AR4i0SAqSMhC98g7U9n36BsA67kxalNvH9jr38M/0USzwUT S+APdZ15yR3t37PtemGZXWMH528io6y0+Jftvtp5RS5grtqKUDxP7p3e5E+0FIxxWXki d3vDpUBN2MOovfhN584qDfpSLzQhPnRhSBxasvV1luglh8kyfBv/22BtKiKM/C3uLqwT C+Dg== X-Gm-Message-State: AOJu0Yyanktg4Xy4A+XzdXgxIyodSmuhtC7rhm3jVRXnImthbhA6OEcZ GPFubEfp7+q+5MDJncnFd0lu2lzb/aPAC6ickXEiiYjpE4zrjUPi4rGIVzqWbvLGz+UpmHX+K9S yNp3Tk8o= X-Gm-Gg: AeBDietvGSJfYcBuEuwjh2FgXsiZchqQj28XHTwYKdLxi3TFFssk/Y1TdVtcqXUKxJg CeBaN3v/Nezocj3lrqnbXohpiiEBKUEO9+TmoT1Gq4B++qU8B5qDJt8DGGa+eqGYtGXiNYUuBmX nZT6xg0bmaCXhwXqQ4Qnfr6QRfPJth5kWPTBsdrceY0qqI2ftLk+hySPgZRla59/GE9ehHFV5+x gv/ESKCv0l/+NmD0Y9nJ35isRVdbYoVq6l4YWSjMU1MZpqAl/Bz/sgle5mIx9g9zdmn6HGKILX3 VdcaXXu+DWL+JkOJqUIuMvuFJ0uPU59LQgYktrmaOHE2mMEBDeGLoQOtl9JF8ZPyu5xtdWf+xcs cKXKjB1XvuI5/0MgOWnwCYJEUmemymdxnO+dbkc7pbRMM/WV9hY4YqB3JuBI9JoHyNBV9kCMrd5 h7z0N630d0vJ9qpupV/LTGyghe3DMhdYjMcVYY1se8 X-Received: by 2002:a17:90b:4fcc:b0:35f:b75e:fff5 with SMTP id 98e67ed59e1d1-364c30ae79dmr222844a91.22.1777501582886; Wed, 29 Apr 2026 15:26:22 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 36/48] fpu: Inline float16_unpack_raw into callers Date: Thu, 30 Apr 2026 08:24:33 +1000 Message-ID: <20260429222445.26301-37-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102e; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501627678158500 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index bc6450954e..cdf95a8517 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -646,11 +646,6 @@ static FloatParts64 unpack_raw64(const FloatFmt *fmt, = uint64_t raw) }; } =20 -static void QEMU_FLATTEN float16_unpack_raw(FloatParts64 *p, float16 f) -{ - *p =3D unpack_raw64(&float16_params, f); -} - static void QEMU_FLATTEN bfloat16_unpack_raw(FloatParts64 *p, bfloat16 f) { *p =3D unpack_raw64(&bfloat16_params, f); @@ -1482,7 +1477,7 @@ static FloatParts64 float8_e5m2_unpack_canonical(floa= t8_e5m2 f, float_status *s) static void float16a_unpack_canonical(FloatParts64 *p, float16 f, float_status *s, const FloatFmt *par= ams) { - float16_unpack_raw(p, f); + *p =3D unpack_raw64(&float16_params, f); parts64_canonicalize(p, s, params); } =20 @@ -4978,9 +4973,8 @@ bfloat16 bfloat16_default_nan(float_status *status) =20 float16 float16_silence_nan(float16 a, float_status *status) { - FloatParts64 p; + FloatParts64 p =3D unpack_raw64(&float16_params, a); =20 - float16_unpack_raw(&p, a); p.frac <<=3D float16_params.frac_shift; parts64_silence_nan(&p, status); p.frac >>=3D float16_params.frac_shift; @@ -5049,9 +5043,8 @@ static bool parts_squash_denormal(FloatParts64 p, flo= at_status *status) float16 float16_squash_input_denormal(float16 a, float_status *status) { if (status->flush_inputs_to_zero) { - FloatParts64 p; + FloatParts64 p =3D unpack_raw64(&float16_params, a); =20 - float16_unpack_raw(&p, a); if (parts_squash_denormal(p, status)) { return float16_set_sign(float16_zero, p.sign); } --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501720; cv=none; d=zohomail.com; s=zohoarc; b=Sta2nmBSxhmfPpSb4m/LRwH46zPtZsmhSvy+fvzGAp0IWh8OKOfk66Vj3ibqsnt6dSAcHpLbJ3tYtFod9JFYErv4cBnqd1KEcAapOofbz3LQ0qtrMQjVbrsE8mCk6dt3P2w5UgsMa/C4sa7RT8P2IC27imvvwz5B7vSdZIXXx3A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501720; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=jv5RFKdPLv46ih/w2n/zKnqzkDwNcWDPMIdbZftxxbA=; b=ZEqEgLTIFoULDXcOwTDl/q7NNKxtjpUHkIHpz6mWhzhSE4FzY/kZ3ClQT/7jxF8VKDyEEUVDzMPsrg07ww8AGIutXepnQGSCramTmOOMdxux+97cEjpTeC7upJfPwxB6LhDB3Kg0xXofjy003Q7EhCm42LqMvHk5lkKdGDcBy7s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501720717775.5468548730075; Wed, 29 Apr 2026 15:28:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDMU-000421-1m; Wed, 29 Apr 2026 18:26:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDMS-0003wA-DC for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:28 -0400 Received: from mail-pj1-x1033.google.com ([2607:f8b0:4864:20::1033]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDMQ-0005Kp-Si for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:28 -0400 Received: by mail-pj1-x1033.google.com with SMTP id 98e67ed59e1d1-362bb3260f1so144333a91.2 for ; Wed, 29 Apr 2026 15:26:26 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.26.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:26:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501585; x=1778106385; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jv5RFKdPLv46ih/w2n/zKnqzkDwNcWDPMIdbZftxxbA=; b=WnDVjkcg7W5a4+gLxXdbwUpl9S6+53e/vp6l3zx8zswAb9om4UzuIEd/h6+2bLEmqZ LHY3OONhiWlZ8DGtti8aO95NAVTEFdfY7uTesSJ3o1gXHagRtSrEUhSIXKv1u9ciSCYs V313KJAwwBh2f8sod5Q4SKSykwFcFpxRS2BsTCJfdGuLhly7e4ogplV2O43ctz77nmWH 0/A6uC4rfVJhPUtE6/wE4wvhOfux3uYPsM4J6B9GeZAyeWFxyeVNM4qNNCo7kGVNNyvV VxWs34ikO283jIH+VdsNacqPFigtLu64MSRG1xtsuk1i4sw/IOEZyhx2CwTZ2Hpqpnxu cfPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501585; x=1778106385; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=jv5RFKdPLv46ih/w2n/zKnqzkDwNcWDPMIdbZftxxbA=; b=UEyQPPJ+bDckSNfDtlihI2PMfwoOuMSszQ92FZ7tribuylHvy3oaRRYyJM2cgDdGtR 49K41Ydm6uFXbfnymSQUf3HDWxMRIEvw7FoGb68IWUUqJYpHOnqAFtRF7xSFQYvsV/jz g4lP75KWtYUT5Fe/jJUK1NKcCwgRJSWjs80qlPCUxByzxD1CGGU5qqK54+F1t9UTnFDV SUnubMPyPCVLBjee9ps7f/pHzryWjKqYVbd2PakmqMQPGXEWORngTKI7758D9QhTKvMU MfyS5ICyl1skuCAt0nTNl5EPCY7697FkFOd//EU80DD+L/36qLCm0W25nJ53gbJxnSw6 6isA== X-Gm-Message-State: AOJu0YwCwKY2MGxfVm3Nw3Qx2fPfwmYtm5wem8gC9YwLATCWnziOs1TR 6SOvvUHbDGaC3+Pokq/1c0YmZsc/mrg8y03PGPzhskh47eoY4wKUoD5hC9SK//WYbmdFjQoolxC xEkgp8as= X-Gm-Gg: AeBDieuCHMX40qD7nKCbVioyy5lQgE7YmNmPyvNSZoicvnER8tIuJCCAGNriJ0anvNZ ySSNSyGoT0UDBCMdD6hT9OVPHsFASw75J6GQaPYwGpxUiZoIUI/t1RAKIrCzDLr4ttN6EQmcgVM dQP/uN6RFwwNS1r5sdQIpgyQwjLZRb4H5I86MkEkJbxw1Rm3+PwSOrsUv8IbeJl7PrHG2WCxC+3 V64/yaxT/ZI1REFxOYx1mo18K1/jwDH/rDHpo2P9iJmiwN1xdDLW/SUnTLCMDXeu+KtaHcZh6A5 wo73mOz+FEcUDl3lFAbGk9vOleQSM4raBVva3I0wAGgrDc9a9NvRQ7VuorC0vH7o9DT+sya1RrZ syz21T2MkT6cRx9Tgy4igxeZVvgMrP00ddf/6hb8mTX3hhhh5A/ikqXfaBefjyZiAW8Azlf0kXT wMLsa8AE2+aFC+Uvhrx7c98WTe6BQpS4dPcIIlO2Un X-Received: by 2002:a17:90b:4b04:b0:35f:b1ad:fdfc with SMTP id 98e67ed59e1d1-364c3189552mr177313a91.27.1777501585355; Wed, 29 Apr 2026 15:26:25 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 37/48] fpu: Return struct from float16a_unpack_canonical Date: Thu, 30 Apr 2026 08:24:34 +1000 Message-ID: <20260429222445.26301-38-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1033; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1033.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501721999158500 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index cdf95a8517..dee5dcd0d2 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -1474,17 +1474,18 @@ static FloatParts64 float8_e5m2_unpack_canonical(fl= oat8_e5m2 f, float_status *s) return p; } =20 -static void float16a_unpack_canonical(FloatParts64 *p, float16 f, - float_status *s, const FloatFmt *par= ams) +static FloatParts64 float16a_unpack_canonical(float16 f, float_status *s, + const FloatFmt *params) { - *p =3D unpack_raw64(&float16_params, f); - parts64_canonicalize(p, s, params); + FloatParts64 p =3D unpack_raw64(&float16_params, f); + parts64_canonicalize(&p, s, params); + return p; } =20 static void float16_unpack_canonical(FloatParts64 *p, float16 f, float_status *s) { - float16a_unpack_canonical(p, f, s, &float16_params); + *p =3D float16a_unpack_canonical(f, s, &float16_params); } =20 static void bfloat16_unpack_canonical(FloatParts64 *p, bfloat16 f, @@ -2701,9 +2702,8 @@ bfloat16 float8_e5m2_to_bfloat16(float8_e5m2 a, float= _status *s) float32 float16_to_float32(float16 a, bool ieee, float_status *s) { const FloatFmt *fmt16 =3D ieee ? &float16_params : &float16_params_ahp; - FloatParts64 p; + FloatParts64 p =3D float16a_unpack_canonical(a, s, fmt16); =20 - float16a_unpack_canonical(&p, a, s, fmt16); parts64_float_to_float(&p, s); return float32_round_pack_canonical(&p, s); } @@ -2711,9 +2711,8 @@ float32 float16_to_float32(float16 a, bool ieee, floa= t_status *s) float64 float16_to_float64(float16 a, bool ieee, float_status *s) { const FloatFmt *fmt16 =3D ieee ? &float16_params : &float16_params_ahp; - FloatParts64 p; + FloatParts64 p =3D float16a_unpack_canonical(a, s, fmt16); =20 - float16a_unpack_canonical(&p, a, s, fmt16); parts64_float_to_float(&p, s); return float64_round_pack_canonical(&p, s); } --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501742; cv=none; d=zohomail.com; s=zohoarc; b=O/MZAOGa1hNsAHhImb4k3vUKiDnVF8YhrnUVgMaljpqeTan/iOkvhi6eUr1lQ2ZpbbNe51ZMKBYr3Z/jUJGX/DiS6fdXmXZOMWFw20G0BWO1EAROTBX9xEWt9ijBkw3Ng5xvjwdv9COaSUgPzLZM/JOs9iiCGZm7wYmbYYwAFFw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501742; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ojbOEJ4Rn7hHdYGTXtFboDzmC4fpMqkcvECa+YSsNfY=; b=TSFw9L+hAKI3inDl4Ay2RJRvfKSC/APOQag/weSV82obSu/WewdvQ1SuOD3ZAiVeu01MUEXb3/gpzbRpmDxD4Bv7Q21gRZTYjtosJwcGk02nJB5qc/DKdz9aWDxxxdmkv9u9dElQIw6qYf6lrxITAD7XWV3qzmfyDSxxjYLE7ok= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501742545699.7607375298489; Wed, 29 Apr 2026 15:29:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDMX-0004PW-Aw; Wed, 29 Apr 2026 18:26:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDMV-0004BT-78 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:31 -0400 Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDMT-0005Lk-4a for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:30 -0400 Received: by mail-pj1-x1031.google.com with SMTP id 98e67ed59e1d1-35fc2b18363so262146a91.0 for ; Wed, 29 Apr 2026 15:26:28 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.26.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:26:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501588; x=1778106388; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ojbOEJ4Rn7hHdYGTXtFboDzmC4fpMqkcvECa+YSsNfY=; b=GQlzE3cWGSe6N1jsYL1UQ2LhXmQVkoKN35PtWhw+bxGBiAq1YPCI5y0xKRCDG9YUP5 aYlZP+CRqxL/zdeHqi24aBdx4RH6NkhGaNpdLfS6RHqzOnVrQ8+Y8y1G0MHigZqNYrbb DtFTLxNdygcOgFOWM4zBOu1u8mMsgCNBQqVuSaGqqR0pgdBIqT2Lg6fuOism/XCqH/2v lwYIvWGMVZabuW2/YUDvDuhrouXa6gK8qrokpW32BkfRavwV17tfS/vWvEcSTCCI1whi BI5mSVHfERICPJFF/Ow6UxIWuqQ9Ge229UYbySATVT2bnOza8Ttpo2nWg/SL6+Z988jG S/xw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501588; x=1778106388; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ojbOEJ4Rn7hHdYGTXtFboDzmC4fpMqkcvECa+YSsNfY=; b=Bah6L5cE0DWrLKENcVzhstTSfEkmc6Oi11st1p+XXyu5cVLz/7viQY8XGlHeVjMJdp TOCu3ERHVCLj4jjAV9tolDWjAe43knw80IiJcEAaYvqepu4gWylwSGI5TcCDIDVpdaA7 1o9dnR3aQWGdKF+x/l/cN0NyqBzleO2IuteZFneVjj8zFytdK3dVN/DK7vjiAtnQ4kjT mw6vWfGyCLbjS/K8UOgPZCwPrl/NGg+roBhHk8mFUwXS+nw42bysQV/1QmsH35lOgIXa 0crlEfSEli3ukY84djuTJXTrDTFsnwkvT4g7dAD7qOWtsbkkJUMU+7L+e6wz6g5mXxvk FdFQ== X-Gm-Message-State: AOJu0YyOuMV4tv6t4yr+Xa6Ijk1RB+RXNDFSSVZ/MxCnpnqur3vikE2c dyn/7//n4wJ6RMmbW06/jmQtbBD58Sls157Go3hiMSzSoX5tTdYPuPOwfLd0NUq6urRBlsHbjLp Oyf+qpMM= X-Gm-Gg: AeBDietVFcap4t2BmgEis/O8A7WmLPEC2d+dVykTXzgtiUf6/s4/MrbqbAM80nEBPtz L6RwkJqCM5RJ0wPh3oGFaWhvR4rXYWgHVtP12OJwjCgIHSosEfrJRY281uIn4AjuB3+kLzu6NmU yhFduvuy3SAeSMFHMLPLaigWe273dUF9JmyTGrMjLjfJ+Op06sEAsA8LweuaLo8aEpWEBFsonTa YEYUoPrNSgDxpkq/CBC5efontICj7Oeub6kENd/8VJOW61rN5EOrWhxSAFPSDIu0Axu8/QYZVPU c2/UarqV+vOcxT8ZmRrdJrqPeq49fQRiLmeX+4lGyeTk3nKMZjG2ch1lC9FtAfQhCB8AgZiPRaf iHtyeyKQ1ZvTf2qD5K8rwgFo6DyoxgSlPyURA26wdC416TbIT8JPH+S7fylOyY/TWMzWBfc7kfz DsbbJZoWg3WlWMeBm+2XFCJHy45R3YWsrs+OwQKBFl X-Received: by 2002:a17:90b:4ac7:b0:35f:b306:5d47 with SMTP id 98e67ed59e1d1-364c2f14e9emr190855a91.1.1777501587745; Wed, 29 Apr 2026 15:26:27 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 38/48] fpu: Return struct from float16_unpack_canonical Date: Thu, 30 Apr 2026 08:24:35 +1000 Message-ID: <20260429222445.26301-39-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1031; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1031.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501744121158500 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 94 +++++++++++++++++-------------------------------- 1 file changed, 32 insertions(+), 62 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index dee5dcd0d2..3612d2fceb 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -1482,10 +1482,9 @@ static FloatParts64 float16a_unpack_canonical(float1= 6 f, float_status *s, return p; } =20 -static void float16_unpack_canonical(FloatParts64 *p, float16 f, - float_status *s) +static FloatParts64 float16_unpack_canonical(float16 f, float_status *s) { - *p =3D float16a_unpack_canonical(f, s, &float16_params); + return float16a_unpack_canonical(f, s, &float16_params); } =20 static void bfloat16_unpack_canonical(FloatParts64 *p, bfloat16 f, @@ -1718,11 +1717,9 @@ static floatx80 floatx80_round_pack_canonical(FloatP= arts128 *p, static float16 QEMU_FLATTEN float16_addsub(float16 a, float16 b, float_status *status, bool subtract) { - FloatParts64 pa, pb, *pr; - - float16_unpack_canonical(&pa, a, status); - float16_unpack_canonical(&pb, b, status); - pr =3D parts64_addsub(&pa, &pb, status, subtract); + FloatParts64 pa =3D float16_unpack_canonical(a, status); + FloatParts64 pb =3D float16_unpack_canonical(b, status); + FloatParts64 *pr =3D parts64_addsub(&pa, &pb, status, subtract); =20 return float16_round_pack_canonical(pr, status); } @@ -1952,11 +1949,9 @@ floatx80 floatx80_sub(floatx80 a, floatx80 b, float_= status *status) =20 float16 QEMU_FLATTEN float16_mul(float16 a, float16 b, float_status *statu= s) { - FloatParts64 pa, pb, *pr; - - float16_unpack_canonical(&pa, a, status); - float16_unpack_canonical(&pb, b, status); - pr =3D parts64_mul(&pa, &pb, status); + FloatParts64 pa =3D float16_unpack_canonical(a, status); + FloatParts64 pb =3D float16_unpack_canonical(b, status); + FloatParts64 *pr =3D parts64_mul(&pa, &pb, status); =20 return float16_round_pack_canonical(pr, status); } @@ -2066,12 +2061,11 @@ float16 QEMU_FLATTEN float16_muladd_scalbn(float16 a, float16 b, float16 c, int scale, int flags, float_status *status) { - FloatParts64 pa, pb, pc, *pr; - - float16_unpack_canonical(&pa, a, status); - float16_unpack_canonical(&pb, b, status); - float16_unpack_canonical(&pc, c, status); - pr =3D parts64_muladd_scalbn(&pa, &pb, &pc, scale, flags, status); + FloatParts64 pa =3D float16_unpack_canonical(a, status); + FloatParts64 pb =3D float16_unpack_canonical(b, status); + FloatParts64 pc =3D float16_unpack_canonical(c, status); + FloatParts64 *pr =3D + parts64_muladd_scalbn(&pa, &pb, &pc, scale, flags, status); =20 /* Round before applying negate result. */ parts64_uncanon(pr, status, &float16_params, false); @@ -2326,11 +2320,9 @@ float128 QEMU_FLATTEN float128_muladd(float128 a, fl= oat128 b, float128 c, =20 float16 float16_div(float16 a, float16 b, float_status *status) { - FloatParts64 pa, pb, *pr; - - float16_unpack_canonical(&pa, a, status); - float16_unpack_canonical(&pb, b, status); - pr =3D parts64_div(&pa, &pb, status); + FloatParts64 pa =3D float16_unpack_canonical(a, status); + FloatParts64 pb =3D float16_unpack_canonical(b, status); + FloatParts64 *pr =3D parts64_div(&pa, &pb, status); =20 return float16_round_pack_canonical(pr, status); } @@ -2969,9 +2961,8 @@ floatx80 float128_to_floatx80(float128 a, float_statu= s *s) =20 float16 float16_round_to_int(float16 a, float_status *s) { - FloatParts64 p; + FloatParts64 p =3D float16_unpack_canonical(a, s); =20 - float16_unpack_canonical(&p, a, s); parts64_round_to_int(&p, s->float_rounding_mode, 0, s, &float16_params= ); return float16_round_pack_canonical(&p, s); } @@ -3032,36 +3023,28 @@ floatx80 floatx80_round_to_int(floatx80 a, float_st= atus *status) int8_t float16_to_int8_scalbn(float16 a, FloatRoundMode rmode, int scale, float_status *s) { - FloatParts64 p; - - float16_unpack_canonical(&p, a, s); + FloatParts64 p =3D float16_unpack_canonical(a, s); return parts64_float_to_sint(&p, rmode, scale, INT8_MIN, INT8_MAX, s); } =20 int16_t float16_to_int16_scalbn(float16 a, FloatRoundMode rmode, int scale, float_status *s) { - FloatParts64 p; - - float16_unpack_canonical(&p, a, s); + FloatParts64 p =3D float16_unpack_canonical(a, s); return parts64_float_to_sint(&p, rmode, scale, INT16_MIN, INT16_MAX, s= ); } =20 int32_t float16_to_int32_scalbn(float16 a, FloatRoundMode rmode, int scale, float_status *s) { - FloatParts64 p; - - float16_unpack_canonical(&p, a, s); + FloatParts64 p =3D float16_unpack_canonical(a, s); return parts64_float_to_sint(&p, rmode, scale, INT32_MIN, INT32_MAX, s= ); } =20 int64_t float16_to_int64_scalbn(float16 a, FloatRoundMode rmode, int scale, float_status *s) { - FloatParts64 p; - - float16_unpack_canonical(&p, a, s); + FloatParts64 p =3D float16_unpack_canonical(a, s); return parts64_float_to_sint(&p, rmode, scale, INT64_MIN, INT64_MAX, s= ); } =20 @@ -3530,36 +3513,28 @@ int64_t float64_to_int64_modulo(float64 a, FloatRou= ndMode rmode, uint8_t float16_to_uint8_scalbn(float16 a, FloatRoundMode rmode, int scale, float_status *s) { - FloatParts64 p; - - float16_unpack_canonical(&p, a, s); + FloatParts64 p =3D float16_unpack_canonical(a, s); return parts64_float_to_uint(&p, rmode, scale, UINT8_MAX, s); } =20 uint16_t float16_to_uint16_scalbn(float16 a, FloatRoundMode rmode, int sca= le, float_status *s) { - FloatParts64 p; - - float16_unpack_canonical(&p, a, s); + FloatParts64 p =3D float16_unpack_canonical(a, s); return parts64_float_to_uint(&p, rmode, scale, UINT16_MAX, s); } =20 uint32_t float16_to_uint32_scalbn(float16 a, FloatRoundMode rmode, int sca= le, float_status *s) { - FloatParts64 p; - - float16_unpack_canonical(&p, a, s); + FloatParts64 p =3D float16_unpack_canonical(a, s); return parts64_float_to_uint(&p, rmode, scale, UINT32_MAX, s); } =20 uint64_t float16_to_uint64_scalbn(float16 a, FloatRoundMode rmode, int sca= le, float_status *s) { - FloatParts64 p; - - float16_unpack_canonical(&p, a, s); + FloatParts64 p =3D float16_unpack_canonical(a, s); return parts64_float_to_uint(&p, rmode, scale, UINT64_MAX, s); } =20 @@ -4316,11 +4291,9 @@ float128 uint128_to_float128(Int128 a, float_status = *status) =20 static float16 float16_minmax(float16 a, float16 b, float_status *s, int f= lags) { - FloatParts64 pa, pb, *pr; - - float16_unpack_canonical(&pa, a, s); - float16_unpack_canonical(&pb, b, s); - pr =3D parts64_minmax(&pa, &pb, s, flags); + FloatParts64 pa =3D float16_unpack_canonical(a, s); + FloatParts64 pb =3D float16_unpack_canonical(b, s); + FloatParts64 *pr =3D parts64_minmax(&pa, &pb, s, flags); =20 return float16_round_pack_canonical(pr, s); } @@ -4401,10 +4374,9 @@ MINMAX_2(float128) static FloatRelation QEMU_FLATTEN float16_do_compare(float16 a, float16 b, float_status *s, bool is_quiet) { - FloatParts64 pa, pb; + FloatParts64 pa =3D float16_unpack_canonical(a, s); + FloatParts64 pb =3D float16_unpack_canonical(b, s); =20 - float16_unpack_canonical(&pa, a, s); - float16_unpack_canonical(&pb, b, s); return parts64_compare(&pa, &pb, s, is_quiet); } =20 @@ -4594,9 +4566,8 @@ FloatRelation floatx80_compare_quiet(floatx80 a, floa= tx80 b, float_status *s) =20 float16 float16_scalbn(float16 a, int n, float_status *status) { - FloatParts64 p; + FloatParts64 p =3D float16_unpack_canonical(a, status); =20 - float16_unpack_canonical(&p, a, status); parts64_scalbn(&p, n, status); return float16_round_pack_canonical(&p, status); } @@ -4654,9 +4625,8 @@ floatx80 floatx80_scalbn(floatx80 a, int n, float_sta= tus *status) =20 float16 QEMU_FLATTEN float16_sqrt(float16 a, float_status *status) { - FloatParts64 p; + FloatParts64 p =3D float16_unpack_canonical(a, status); =20 - float16_unpack_canonical(&p, a, status); parts64_sqrt(&p, status, &float16_params); return float16_round_pack_canonical(&p, status); } --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501708; cv=none; d=zohomail.com; s=zohoarc; b=IIfsMuGNDyOlQNEJpMQJHrVGBUDJFltcj0FdOQWqdJrg4DRCVu/L0OOfdZDVT68YpvLBr6/4Lo2zEMw/iMUKxntBircPaLGk/GcZHzuvLN7DdaBD6oHopnGGgfUjn/0dj+pjw4PJlXaGTbHoTJQ/T9nun6K21cxi0cNGSeBIf2Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501708; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Ic5R2ez4UqOiDOUr1K1unDFT8fxnIMY+Ht6D+IglkAg=; b=QnzYsu4/pesT33OuLzhZJndXkFPdpVmD68hmckQ+notPn7ya6xmQbpWfVxUxMMTTcYOJTwCC/K10iPq+blOO4fsW4MtgfPUurxw7GVZdq7AWdOrL2pkhw/gU+lUCO9X0q9WuoFOvk6I0W3ePGsjgL/dOmQsj52cvtN48pgK1rsE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501708492835.9135066719401; Wed, 29 Apr 2026 15:28:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDMY-0004YH-II; Wed, 29 Apr 2026 18:26:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDMX-0004Pj-7g for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:33 -0400 Received: from mail-pj1-x1030.google.com ([2607:f8b0:4864:20::1030]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDMV-0005M8-MD for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:26:32 -0400 Received: by mail-pj1-x1030.google.com with SMTP id 98e67ed59e1d1-35f9ab079bdso151416a91.2 for ; Wed, 29 Apr 2026 15:26:31 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364a2732502sm1888471a91.3.2026.04.29.15.26.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:26:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501590; x=1778106390; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Ic5R2ez4UqOiDOUr1K1unDFT8fxnIMY+Ht6D+IglkAg=; b=jz/XAYXYZy8+ixhV2bfvkGKN9H92/HHYaLCBcScaA9kuFGX+A/aeyfd5Y2RPHiAgQA y/K//Q1T7Ad2yJhaJeKbjAFX+AGM+XT9WtPXK0zLZHZLrvLi3/E6jCNx4IkrYjrmkeSr cV/7j9HmL6/RiXuM5vgxnTVgYToEXCjJz6WKKL2o9wFNLHh02lEES/LurdJaKyqtrgSQ XZ0x/AELXMy3EDc5ZBtGb/jGdeT9bRsIxPVhzxIvVf/Sd99UsgDtVWpuC07TPuYnfXRS 6p9txJSfwtg0GgmSKqpTkJD9F1sJEcWP2Y8yvYC5rlcTT97aTq/kqbVH08sgM2GWpXJc QLYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501590; x=1778106390; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Ic5R2ez4UqOiDOUr1K1unDFT8fxnIMY+Ht6D+IglkAg=; b=mJbLqLKpWh9Txk7EpL1Mx7Pta1f++31cCEQ4TwsNWruWXl/9x0eOx+BjYdyOehVhGM DJQq5wKCaBgbV/ekRGiaQet3slJ1C4IwZG2E4WeWTPsibTdw+zcUI7RsuBdMJye4O27x hR3OxOYXqmpl2lrSaVQA8PCo49WQGd4oumWO9JOKtukMwHEFnWUZoGbJJ2Ed71jPJ08N KtmfBd4Q/B5/oF/efjo7+AWppmNIb9VYajeUTmVynXVUktOSWk54wfArLBSJgqy8mQyL OifsFed06JRAUWtLhlkRVRy7bce02Q6st6YwE7HXgRJuX3sZPXjUYqyDcr+YGbMDVt8F SMpw== X-Gm-Message-State: AOJu0YwJH5TTcpWkzNsgWy5D53W4u0SaG6H4QiGpn7PQMvdEOqsA4wGo 6TIT+aB1nWFDABU0UvDQBLSoB+OifmzlmHv04OLspeJsiCX4wN+55Mkz8R1ShBwxejuiXu2Inwv m+oP2OjU= X-Gm-Gg: AeBDiesx3YRq+a0Ys1r5GQ9dy/u5bcqE751sE6/zIhOi19F7MDUfpiWcgXl+Nu2VEsS Sm4AYNXByhv4f2t9DyADI+73CjMayRA/klQ2dMEjXextipAFgaOApmrGRQwbpre/r+Gbt3XVT2X BMuw+Wz+nDkeN4PuJ7mnYFu/JDBGnQXycN/UFpdCYXbjmx08KWyaZ4z3jjFiq9DwImGTSpINsH2 AA7gAZPfDnIH1hiuRGpeJEnHn4bpS5edgcSRpC0F3G7RV726PkTgtoPIz108cUfFC50Yuvg1jvE 7dMdDZGbO2++5SIFoziORY2skXzJqOj9XEmfDPnT57pCxn2Jc8DCvZ1MIpgSUO2kCnIKb/qXQyk 2I4mHop3tseLH77PuY76UBPsT6aql2zdyVjyvOY9IYdBSCsi0nEsDLhMmTcsQSq2CIMELIcVF0k iwKSjzlTARNybKfMT1C3QgJ29tHulzVA7h8SJL1s1U X-Received: by 2002:a17:90b:2f03:b0:362:bb93:f25e with SMTP id 98e67ed59e1d1-364c312f38amr149536a91.23.1777501590264; Wed, 29 Apr 2026 15:26:30 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 39/48] fpu: Inline bfloat16_unpack_raw into callers Date: Thu, 30 Apr 2026 08:24:36 +1000 Message-ID: <20260429222445.26301-40-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1030; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1030.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501709954158500 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 3612d2fceb..566154a729 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -646,11 +646,6 @@ static FloatParts64 unpack_raw64(const FloatFmt *fmt, = uint64_t raw) }; } =20 -static void QEMU_FLATTEN bfloat16_unpack_raw(FloatParts64 *p, bfloat16 f) -{ - *p =3D unpack_raw64(&bfloat16_params, f); -} - static void QEMU_FLATTEN float32_unpack_raw(FloatParts64 *p, float32 f) { *p =3D unpack_raw64(&float32_params, f); @@ -1490,7 +1485,7 @@ static FloatParts64 float16_unpack_canonical(float16 = f, float_status *s) static void bfloat16_unpack_canonical(FloatParts64 *p, bfloat16 f, float_status *s) { - bfloat16_unpack_raw(p, f); + *p =3D unpack_raw64(&bfloat16_params, f); parts64_canonicalize(p, s, &bfloat16_params); } =20 @@ -4974,9 +4969,8 @@ float64 float64_silence_nan(float64 a, float_status *= status) =20 bfloat16 bfloat16_silence_nan(bfloat16 a, float_status *status) { - FloatParts64 p; + FloatParts64 p =3D unpack_raw64(&bfloat16_params, a); =20 - bfloat16_unpack_raw(&p, a); p.frac <<=3D bfloat16_params.frac_shift; parts64_silence_nan(&p, status); p.frac >>=3D bfloat16_params.frac_shift; @@ -5050,9 +5044,8 @@ float64 float64_squash_input_denormal(float64 a, floa= t_status *status) bfloat16 bfloat16_squash_input_denormal(bfloat16 a, float_status *status) { if (status->flush_inputs_to_zero) { - FloatParts64 p; + FloatParts64 p =3D unpack_raw64(&bfloat16_params, a); =20 - bfloat16_unpack_raw(&p, a); if (parts_squash_denormal(p, status)) { return bfloat16_set_sign(bfloat16_zero, p.sign); } --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501788; cv=none; d=zohomail.com; s=zohoarc; b=gr2Xc25ViiRvfHXNQ6UPqPDBZUCm9+Wk0L9ZeDX9Vtta9Pl/6z/VkYNbDasmnRMhw8uhzMMOZpnwhube7PQox87EjUyUhsWL/Pt5AfKkjzUTVIMVuYEzuzPNx9ldARjFv+Tzmizmq2s78BKAi8Gms4Yxn1kOLGcNVJTcivuSh2c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501788; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=+UyziKzBm03O+Tx0BBBbP2Rb+m5xqlSSla/fD7HN85E=; b=JCf1nlczwvWQYt+EJwF3l980EHUMB4i1oklyOJR16iZisFR8JG8uMXYm5XPdKexd0nhcekU0SBEGoZ/jX0pDItppHVj+F2teu478wCx6ciqOVcpTAFQyP+HZ68MuGqUyk7QfLTU98c8ZmXzkqqZgcSfkBOAa2MaB7VY72npHi2w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501787927589.0936766351381; Wed, 29 Apr 2026 15:29:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDPe-0005ot-FH; Wed, 29 Apr 2026 18:29:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDPY-0005SB-Ov for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:29:41 -0400 Received: from mail-pj1-x1029.google.com ([2607:f8b0:4864:20::1029]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDPW-0006yi-Mj for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:29:40 -0400 Received: by mail-pj1-x1029.google.com with SMTP id 98e67ed59e1d1-3567e2b4159so152557a91.0 for ; Wed, 29 Apr 2026 15:29:38 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364bdf54203sm630479a91.7.2026.04.29.15.29.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:29:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501777; x=1778106577; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+UyziKzBm03O+Tx0BBBbP2Rb+m5xqlSSla/fD7HN85E=; b=F25TZMH8SbiIFOb+BpsJNMrL052bxpIossI9FjmugdQ0ko8JpGj2J+ECbcZoBaN/ks oeNXccehubFM4HTsGXYDLEzoPE/w6vrsQUzUDN6ic937q56ELR6CE0IYMapbK8zSFqSK 1Dk/YOrTK9NzgAlNSbvDuQH/W/BTkpQ87r7Ol9+9lTr5Zj4tVjAYDD94h24LvhrHn9pH emw0+mz/+3eJuaEemsVzsYtHI/nncDpg1wHw4E0JcXaKDfhrYlKDfz1zTpbD6Cx9HuMJ K7hj2PAq/+WOGfHmrXBy9gFzY8jvY6pp8TQ7O3cDYuDHz/WlxVTSpJeRBnND5IdU6OBd NR5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501777; x=1778106577; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=+UyziKzBm03O+Tx0BBBbP2Rb+m5xqlSSla/fD7HN85E=; b=l7iIlTEOpAZAlzpzfY8k/oDCI9DLKEiA83/GYHlbGcjB2jpA7G0ie5B7vEqo2GLMYX jM9WuUQzs7iySwzShGRhIZq+QSdcAMaaeoZeLs2fWZkzQnjQtfCTXXCX6q8ozUsUxccL qgCg5ya2HViP7oecfOuIrzak5TeNffIRVFwzghKFJ2Ru0hTb2PBRbpqK4C8u4Zx9WcWI MHVx9vQTqSPyVf8nc70oK9MI3eGMGb+4sXqBKWMG2lyPquLyN6kcuUTlNm1yC9DsBR0X ybORqF/jLjCVfjJTxotSLDiEjxtjj3xYZozmO9SpZtAu5uIor5+JdjUM9BvjA9NhCVbe /uag== X-Gm-Message-State: AOJu0YwJ+wtiv66q1S/ddRwTJ0E6KqZCJen8WXNmp1Yk9BeS8ORJ5YUs dO6uB474PgbrXDDwp+SQsPFmMxTnHGDsCAJPZnWAz4on3nKPGmK4Q/La1QN3ir90/VhKRaFxIT0 m1J2Y8EE= X-Gm-Gg: AeBDiest7I48N8F+gSGH8/Alu93+hAIIknVP7oUx0Kk+nr8xf5Zn2PhfgKv8pG7ElwD 5Kk3tZ5FPsY+79H3yu+3Zdt0xGigumAzHYA/LCTPs5PHUwQKDGQ1gArGrnFmLivi7duNkR6h51i xOpvz/ZNg7ZW+durBv16+qaUa5ztafXX23Kij7SvzUQVUnIKQgYtBnTywMq+19DOqM6ZmUVuHhJ /bxoCS1cMn7/ncyZh81+KRPGQqzbHOhgJIWziBMg5IQlFy6anT25KeygY8wcX+WyFrQfL54j/i9 l4Q7Z0mZAxBbFz5oaFLqstwF8e/rIPMG8AvS4I+OApLYhGFqzqG0Rtd+21bMHrjNBfUu9MpPIDP 57dnVQxonWDOqP/HSzc6r2KQIIWL+x2hG4/ViM6EnoJWB2X7/Koodzlp/or3xBHkiCOBTOn6dYl nYOpDjFiPCbZ468WQ1IyjIzq7TPkbSjD63jnqNTCBy X-Received: by 2002:a17:90b:584c:b0:35d:a38a:a117 with SMTP id 98e67ed59e1d1-364c308ef0bmr168723a91.15.1777501776770; Wed, 29 Apr 2026 15:29:36 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 40/48] fpu: Return struct from bfloat16_unpack_canonical Date: Thu, 30 Apr 2026 08:24:37 +1000 Message-ID: <20260429222445.26301-41-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1029; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1029.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501789053154100 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 108 +++++++++++++++++------------------------------- 1 file changed, 37 insertions(+), 71 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 566154a729..19cca8fb85 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -1482,11 +1482,11 @@ static FloatParts64 float16_unpack_canonical(float1= 6 f, float_status *s) return float16a_unpack_canonical(f, s, &float16_params); } =20 -static void bfloat16_unpack_canonical(FloatParts64 *p, bfloat16 f, - float_status *s) +static FloatParts64 bfloat16_unpack_canonical(bfloat16 f, float_status *s) { - *p =3D unpack_raw64(&bfloat16_params, f); - parts64_canonicalize(p, s, &bfloat16_params); + FloatParts64 p =3D unpack_raw64(&bfloat16_params, f); + parts64_canonicalize(&p, s, &bfloat16_params); + return p; } =20 static float8_e4m3 float8_e4m3_round_pack_canonical(FloatParts64 *p, @@ -1873,11 +1873,9 @@ float64 float64r32_sub(float64 a, float64 b, float_s= tatus *status) static bfloat16 QEMU_FLATTEN bfloat16_addsub(bfloat16 a, bfloat16 b, float_status *status, bool subtrac= t) { - FloatParts64 pa, pb, *pr; - - bfloat16_unpack_canonical(&pa, a, status); - bfloat16_unpack_canonical(&pb, b, status); - pr =3D parts64_addsub(&pa, &pb, status, subtract); + FloatParts64 pa =3D bfloat16_unpack_canonical(a, status); + FloatParts64 pb =3D bfloat16_unpack_canonical(b, status); + FloatParts64 *pr =3D parts64_addsub(&pa, &pb, status, subtract); =20 return bfloat16_round_pack_canonical(pr, status); } @@ -2013,11 +2011,9 @@ float64 float64r32_mul(float64 a, float64 b, float_s= tatus *status) bfloat16 QEMU_FLATTEN bfloat16_mul(bfloat16 a, bfloat16 b, float_status *status) { - FloatParts64 pa, pb, *pr; - - bfloat16_unpack_canonical(&pa, a, status); - bfloat16_unpack_canonical(&pb, b, status); - pr =3D parts64_mul(&pa, &pb, status); + FloatParts64 pa =3D bfloat16_unpack_canonical(a, status); + FloatParts64 pb =3D bfloat16_unpack_canonical(b, status); + FloatParts64 *pr =3D parts64_mul(&pa, &pb, status); =20 return bfloat16_round_pack_canonical(pr, status); } @@ -2276,12 +2272,10 @@ float64 float64r32_muladd(float64 a, float64 b, flo= at64 c, bfloat16 QEMU_FLATTEN bfloat16_muladd(bfloat16 a, bfloat16 b, bfloat16 c, int flags, float_status *status) { - FloatParts64 pa, pb, pc, *pr; - - bfloat16_unpack_canonical(&pa, a, status); - bfloat16_unpack_canonical(&pb, b, status); - bfloat16_unpack_canonical(&pc, c, status); - pr =3D parts64_muladd_scalbn(&pa, &pb, &pc, 0, flags, status); + FloatParts64 pa =3D bfloat16_unpack_canonical(a, status); + FloatParts64 pb =3D bfloat16_unpack_canonical(b, status); + FloatParts64 pc =3D bfloat16_unpack_canonical(c, status); + FloatParts64 *pr =3D parts64_muladd_scalbn(&pa, &pb, &pc, 0, flags, st= atus); =20 /* Round before applying negate result. */ parts64_uncanon(pr, status, &bfloat16_params, false); @@ -2418,11 +2412,9 @@ float64 float64r32_div(float64 a, float64 b, float_s= tatus *status) bfloat16 QEMU_FLATTEN bfloat16_div(bfloat16 a, bfloat16 b, float_status *status) { - FloatParts64 pa, pb, *pr; - - bfloat16_unpack_canonical(&pa, a, status); - bfloat16_unpack_canonical(&pb, b, status); - pr =3D parts64_div(&pa, &pb, status); + FloatParts64 pa =3D bfloat16_unpack_canonical(a, status); + FloatParts64 pb =3D bfloat16_unpack_canonical(b, status); + FloatParts64 *pr =3D parts64_div(&pa, &pb, status); =20 return bfloat16_round_pack_canonical(pr, status); } @@ -2791,36 +2783,32 @@ float32 float64_to_float32(float64 a, float_status = *s) =20 float8_e4m3 bfloat16_to_float8_e4m3(bfloat16 a, bool saturate, float_statu= s *s) { - FloatParts64 p; + FloatParts64 p =3D bfloat16_unpack_canonical(a, s); =20 - bfloat16_unpack_canonical(&p, a, s); parts64_float_to_float(&p, s); return float8_e4m3_round_pack_canonical(&p, s, saturate); } =20 float8_e5m2 bfloat16_to_float8_e5m2(bfloat16 a, bool saturate, float_statu= s *s) { - FloatParts64 p; + FloatParts64 p =3D bfloat16_unpack_canonical(a, s); =20 - bfloat16_unpack_canonical(&p, a, s); parts_float_to_e5m2(&p, s, saturate); return float8_e5m2_round_pack_canonical(&p, s, saturate); } =20 float32 bfloat16_to_float32(bfloat16 a, float_status *s) { - FloatParts64 p; + FloatParts64 p =3D bfloat16_unpack_canonical(a, s); =20 - bfloat16_unpack_canonical(&p, a, s); parts64_float_to_float(&p, s); return float32_round_pack_canonical(&p, s); } =20 float64 bfloat16_to_float64(bfloat16 a, float_status *s) { - FloatParts64 p; + FloatParts64 p =3D bfloat16_unpack_canonical(a, s); =20 - bfloat16_unpack_canonical(&p, a, s); parts64_float_to_float(&p, s); return float64_round_pack_canonical(&p, s); } @@ -2982,9 +2970,8 @@ float64 float64_round_to_int(float64 a, float_status = *s) =20 bfloat16 bfloat16_round_to_int(bfloat16 a, float_status *s) { - FloatParts64 p; + FloatParts64 p =3D bfloat16_unpack_canonical(a, s); =20 - bfloat16_unpack_canonical(&p, a, s); parts64_round_to_int(&p, s->float_rounding_mode, 0, s, &bfloat16_param= s); return bfloat16_round_pack_canonical(&p, s); } @@ -3100,36 +3087,28 @@ int64_t float64_to_int64_scalbn(float64 a, FloatRou= ndMode rmode, int scale, int8_t bfloat16_to_int8_scalbn(bfloat16 a, FloatRoundMode rmode, int scale, float_status *s) { - FloatParts64 p; - - bfloat16_unpack_canonical(&p, a, s); + FloatParts64 p =3D bfloat16_unpack_canonical(a, s); return parts64_float_to_sint(&p, rmode, scale, INT8_MIN, INT8_MAX, s); } =20 int16_t bfloat16_to_int16_scalbn(bfloat16 a, FloatRoundMode rmode, int sca= le, float_status *s) { - FloatParts64 p; - - bfloat16_unpack_canonical(&p, a, s); + FloatParts64 p =3D bfloat16_unpack_canonical(a, s); return parts64_float_to_sint(&p, rmode, scale, INT16_MIN, INT16_MAX, s= ); } =20 int32_t bfloat16_to_int32_scalbn(bfloat16 a, FloatRoundMode rmode, int sca= le, float_status *s) { - FloatParts64 p; - - bfloat16_unpack_canonical(&p, a, s); + FloatParts64 p =3D bfloat16_unpack_canonical(a, s); return parts64_float_to_sint(&p, rmode, scale, INT32_MIN, INT32_MAX, s= ); } =20 int64_t bfloat16_to_int64_scalbn(bfloat16 a, FloatRoundMode rmode, int sca= le, float_status *s) { - FloatParts64 p; - - bfloat16_unpack_canonical(&p, a, s); + FloatParts64 p =3D bfloat16_unpack_canonical(a, s); return parts64_float_to_sint(&p, rmode, scale, INT64_MIN, INT64_MAX, s= ); } =20 @@ -3590,36 +3569,28 @@ uint64_t float64_to_uint64_scalbn(float64 a, FloatR= oundMode rmode, int scale, uint8_t bfloat16_to_uint8_scalbn(bfloat16 a, FloatRoundMode rmode, int scale, float_status *s) { - FloatParts64 p; - - bfloat16_unpack_canonical(&p, a, s); + FloatParts64 p =3D bfloat16_unpack_canonical(a, s); return parts64_float_to_uint(&p, rmode, scale, UINT8_MAX, s); } =20 uint16_t bfloat16_to_uint16_scalbn(bfloat16 a, FloatRoundMode rmode, int scale, float_status *s) { - FloatParts64 p; - - bfloat16_unpack_canonical(&p, a, s); + FloatParts64 p =3D bfloat16_unpack_canonical(a, s); return parts64_float_to_uint(&p, rmode, scale, UINT16_MAX, s); } =20 uint32_t bfloat16_to_uint32_scalbn(bfloat16 a, FloatRoundMode rmode, int scale, float_status *s) { - FloatParts64 p; - - bfloat16_unpack_canonical(&p, a, s); + FloatParts64 p =3D bfloat16_unpack_canonical(a, s); return parts64_float_to_uint(&p, rmode, scale, UINT32_MAX, s); } =20 uint64_t bfloat16_to_uint64_scalbn(bfloat16 a, FloatRoundMode rmode, int scale, float_status *s) { - FloatParts64 p; - - bfloat16_unpack_canonical(&p, a, s); + FloatParts64 p =3D bfloat16_unpack_canonical(a, s); return parts64_float_to_uint(&p, rmode, scale, UINT64_MAX, s); } =20 @@ -4296,11 +4267,9 @@ static float16 float16_minmax(float16 a, float16 b, = float_status *s, int flags) static bfloat16 bfloat16_minmax(bfloat16 a, bfloat16 b, float_status *s, int flags) { - FloatParts64 pa, pb, *pr; - - bfloat16_unpack_canonical(&pa, a, s); - bfloat16_unpack_canonical(&pb, b, s); - pr =3D parts64_minmax(&pa, &pb, s, flags); + FloatParts64 pa =3D bfloat16_unpack_canonical(a, s); + FloatParts64 pb =3D bfloat16_unpack_canonical(b, s); + FloatParts64 *pr =3D parts64_minmax(&pa, &pb, s, flags); =20 return bfloat16_round_pack_canonical(pr, s); } @@ -4496,10 +4465,9 @@ FloatRelation float64_compare_quiet(float64 a, float= 64 b, float_status *s) static FloatRelation QEMU_FLATTEN bfloat16_do_compare(bfloat16 a, bfloat16 b, float_status *s, bool is_quiet) { - FloatParts64 pa, pb; + FloatParts64 pa =3D bfloat16_unpack_canonical(a, s); + FloatParts64 pb =3D bfloat16_unpack_canonical(b, s); =20 - bfloat16_unpack_canonical(&pa, a, s); - bfloat16_unpack_canonical(&pb, b, s); return parts64_compare(&pa, &pb, s, is_quiet); } =20 @@ -4587,9 +4555,8 @@ float64 float64_scalbn(float64 a, int n, float_status= *status) =20 bfloat16 bfloat16_scalbn(bfloat16 a, int n, float_status *status) { - FloatParts64 p; + FloatParts64 p =3D bfloat16_unpack_canonical(a, status); =20 - bfloat16_unpack_canonical(&p, a, status); parts64_scalbn(&p, n, status); return bfloat16_round_pack_canonical(&p, status); } @@ -4711,9 +4678,8 @@ float64 float64r32_sqrt(float64 a, float_status *stat= us) =20 bfloat16 QEMU_FLATTEN bfloat16_sqrt(bfloat16 a, float_status *status) { - FloatParts64 p; + FloatParts64 p =3D bfloat16_unpack_canonical(a, status); =20 - bfloat16_unpack_canonical(&p, a, status); parts64_sqrt(&p, status, &bfloat16_params); return bfloat16_round_pack_canonical(&p, status); } --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501796; cv=none; d=zohomail.com; s=zohoarc; b=CW1cbR85UcyFAZjWm5yQwSdNWVkpVq+2ihO0ZUkBkSxRjeR3ZycjzqaZzqEaalBQVaTvctxIxkfC0e2YY26msS7ea3qcOgZ5PNmqXS844wAle6zfKnje+0Nb2ZMkOeVb6Ezlah9wXuk7KlsEkvgAdziAOcnFe2pON2fD+tYQh+A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501796; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=vEWBRKXT+wTqFRocOYKh1ix69RRmR5W8WvHkSkFeDvA=; b=RJbPtLjbmyILDpx/cGUC2viqxspiclZoKbfieje9o3eZo6cBG2/6zxc9QkehMo5P6ZA8Fu4oPd3nj4tCrcT9L9qvi4id/QSF6Yi4DcTfcEj9gl1xzzKGJg0LjJI3hArYdsj9BZKIwtRg7zuyV54XRrbki3UE9LWna8+INKHQkoM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501796701770.2099111294909; Wed, 29 Apr 2026 15:29:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDPf-0005xJ-9q; Wed, 29 Apr 2026 18:29:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDPa-0005ZO-B5 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:29:42 -0400 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDPY-0006yw-P0 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:29:42 -0400 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-35fb7c1a455so72552a91.3 for ; Wed, 29 Apr 2026 15:29:40 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364bdf54203sm630479a91.7.2026.04.29.15.29.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:29:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501779; x=1778106579; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=vEWBRKXT+wTqFRocOYKh1ix69RRmR5W8WvHkSkFeDvA=; b=hX/QORtSSRe1kQq3L+754t8FFq67VialxoKddTEXOJdYVonfy7/F94LWnHdnn2Hpyv 8/DWX0hKA0t6hmkmWjYE+lIYorNiFkg156iwfm61ceJHqOP6W8HM4TzUNyGupAsj1U3D Ue5K1RHSLJbD+MV7DMr09RWU6zb7KXAFxl4q2qYH5Nl4DeuwokOt9ENU3Rk/jl8wFj91 bVR9XFP+AYFJ+9FIJKkufoMn2Ddvag3gmUTfj6w98+vbD1nNIZJFuxOFZey6WpGBydNj YIlH1dl82VnSNZ4GeLiycsQe9/AaPA90sd8yAJ+W42upRmDg0OCvHyTwXAQSm5eOyBGT QWNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501779; x=1778106579; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=vEWBRKXT+wTqFRocOYKh1ix69RRmR5W8WvHkSkFeDvA=; b=kRzX9clawW+ZPmkhc8lC/o/czKGhrj62TcoFUSevcQizcgdAy+waEGkCbZUsn+Fbll 7dFKlZTB4hXPDVgqPW2DB9Df97974zmc6HCHgeMMwvam6IMAgz1LmacPCzN7K7W4SSBk 3lBUlWinVz8N5Ts2tyDfHuMFCQqoLwQhfcayQvx514kz345dPJ0il9kA8XqYiypEO67q MtuF8eAncsxFBfstPxuT2TccAlEvgYi63CsJZq2wU9P8zSD6akf6XZD6GMSUz0evgrfO A01W6FroCFmWl8cxojEnKLX7/8JCj8QNWv6FspkI66jQ8LipCG6Vsx4aWddIBfn1aFXI 4AfA== X-Gm-Message-State: AOJu0YwOtAwSxz16LU7ziZ18QjMFdnvBWoI6Z/S7gN1spv6lDt/9HDDP hOQuBc2bwnq3ZuMKVVz1FYSAXJt94nwwG9yKsEtXEaLfVun25XcgViPnE0xhtCFAcw+tcrBv7ro oqhR/c+o= X-Gm-Gg: AeBDieu/+FJtHVxeN/qLqebehRFEGAgH9y9TnXVWWtIsE8f4VGbAGmCGTj/1Z6/FLQt jZI2Tnh0KuxcRRLvYXQQXmQ++CkZCAEmyLW+/tYtohZDr3IEs5GaMb/vlcmJ4Qa/E9qtkhzkNK2 xFqoCTAlgAUANOmFUnUF6ZvLR8mImzobkjRL4sSQB7K8WZP7PAWeyMdhiDA2QXawLAelJMTWlb0 Dz6t0hA1+yrQLYw216vesiA8hc4uSNFUqwfWsvX2dIGLZeMwEoaJP3AGi2m5wemyo4vp+SkzisV 46CQji1mLfXbtZHg8p7Ydz1kQAIbGjAL61PA43HrtCxGK+T5/4rfwD+5aKhKtxrAO6FQRBKNRB+ khdbLDH4qZLRIa71oXeS2F3pIomIcxpHskts0rBv7KXa73wsTdWtdMXk9LLJsBTYjSzYILI/W32 E38qC3cDvNlOg5knz9WI9ZdFKKxGDtS3tGtQDG9mPF X-Received: by 2002:a17:90b:3dc8:b0:35d:a4c0:a0ac with SMTP id 98e67ed59e1d1-364c2f97d11mr183904a91.3.1777501779293; Wed, 29 Apr 2026 15:29:39 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 41/48] fpu: Inline float32_unpack_raw into callers Date: Thu, 30 Apr 2026 08:24:38 +1000 Message-ID: <20260429222445.26301-42-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501798302158500 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 19cca8fb85..5e33eab8d5 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -646,11 +646,6 @@ static FloatParts64 unpack_raw64(const FloatFmt *fmt, = uint64_t raw) }; } =20 -static void QEMU_FLATTEN float32_unpack_raw(FloatParts64 *p, float32 f) -{ - *p =3D unpack_raw64(&float32_params, f); -} - static void QEMU_FLATTEN float64_unpack_raw(FloatParts64 *p, float64 f) { *p =3D unpack_raw64(&float64_params, f); @@ -1529,7 +1524,7 @@ static bfloat16 bfloat16_round_pack_canonical(FloatPa= rts64 *p, static void float32_unpack_canonical(FloatParts64 *p, float32 f, float_status *s) { - float32_unpack_raw(p, f); + *p =3D unpack_raw64(&float32_params, f); parts64_canonicalize(p, s, &float32_params); } =20 @@ -4913,9 +4908,8 @@ float16 float16_silence_nan(float16 a, float_status *= status) =20 float32 float32_silence_nan(float32 a, float_status *status) { - FloatParts64 p; + FloatParts64 p =3D unpack_raw64(&float32_params, a); =20 - float32_unpack_raw(&p, a); p.frac <<=3D float32_params.frac_shift; parts64_silence_nan(&p, status); p.frac >>=3D float32_params.frac_shift; @@ -4984,9 +4978,8 @@ float16 float16_squash_input_denormal(float16 a, floa= t_status *status) float32 float32_squash_input_denormal(float32 a, float_status *status) { if (status->flush_inputs_to_zero) { - FloatParts64 p; + FloatParts64 p =3D unpack_raw64(&float32_params, a); =20 - float32_unpack_raw(&p, a); if (parts_squash_denormal(p, status)) { return float32_set_sign(float32_zero, p.sign); } --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501792; cv=none; d=zohomail.com; s=zohoarc; b=EXKCMa8q/1ujjZ9BSEcI4o9A6jtIgU9gmOeTngqOiVuZ0xigWIYXdVynARe89Vrpc4/qe5VMZuVcTsScbaXCgKtp5FKdZqmWtTfoNjvmrMQlHm7L+84NbOunZgF3pcyKAhtR+AEoFt0GAnCEqvjXKkhjSKpGxAQDDhK16UksImk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501792; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=MHmOg59hKNCh0zEzhXicgb+EWPS1IYr49yABmIu3FaQ=; b=AHWOg3fNu8srmOsDTEXVcGNHKuczvpKccteBajKlCzQypR1GTm+OloVJqYVx3zZ/oiixHaSLKsswRfNjTD1CJfDjEeoz5+zniN5XDqr+U6ciZgX2ySVV37rR2adVV9NaI8329yypmSq+DII3mAclzfRVbeUVjAUhGNL8lTXgFbc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501792717457.96545994986707; Wed, 29 Apr 2026 15:29:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDPg-000612-RH; Wed, 29 Apr 2026 18:29:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDPd-0005oE-8D for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:29:46 -0400 Received: from mail-pj1-x102f.google.com ([2607:f8b0:4864:20::102f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDPb-0006zF-6S for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:29:44 -0400 Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-3567e2b4159so152575a91.0 for ; Wed, 29 Apr 2026 15:29:42 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364bdf54203sm630479a91.7.2026.04.29.15.29.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:29:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501782; x=1778106582; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=MHmOg59hKNCh0zEzhXicgb+EWPS1IYr49yABmIu3FaQ=; b=mHVAsW/gXC35/3Aardh6MpqDej/tmxjZeOOUYG7ALt4P1tZVoF3JrTq1rDUBVmdy9W j1nSJYA1BGGEg1Hzf0SRdEr6NuGRF1dP2pSCJgwr6z3Dtht8QddPSCMLPyF5Yzdkzpau Cg3WwxFxwZu9sQk8NVN69yzQl8/spjUj/Yaci+APlf0uUYWGGp+ef3RRvn5pWDsXophu zQxl8OcNU2hXAW6erhq6sISRmu96KFb+DQ5N5DBnvu7M/YxMPhgJH+NDHIEWPSYSFUAo bEsrZsPynefS+nFJbEG1C34mqW9Q3O+qRhec4KKHH28BAiyZ9/0B8yv+KiyeDqgxTt7S RQYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501782; x=1778106582; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=MHmOg59hKNCh0zEzhXicgb+EWPS1IYr49yABmIu3FaQ=; b=e0neuyyLU/h17gPz/INip8IxnVeD5Jkd6LVybuFGUc7frTj0At8IXOZ8o+Gn08mXoM tbAVBU2h1VbxHnyqZC/8TamLCGe7dF1VEXKjqo9L6AhxK2HLFawr1unD/BbryhdTEAFP G/Rd2YqcZLiHhm+Bw2DQqTdzoAzsGF+w8VB5lNHVG6oNx5J6ic5dBnlx0hyf6trDlEaX hw9WfVjXTx2oKbetqskexILfFXcdJRKlWn7YZZAGko1g82XDUMg6bj884fHEHo9C6El7 BEFfZ/SsfpwK8YaGCryyicmZFCfWpORYpoAk7SkIkSmcHHSSJz7JrNruJx0Vz+1qQtpb NjKg== X-Gm-Message-State: AOJu0YyQzs0RK7DAuI0959XyfxH0/90LS/vNO0VEp/t12Ghqi8btIE1W NF9zdZSyHAKy4YioiJaws7fE0ALDnpSGDMs8OiZTwgitZirTBmO8wZRXW8FBNPp3Q/og/wR7VwY 19zSexNs= X-Gm-Gg: AeBDiet/QZ3Jqoph3U1rQgoCCJTM5jfZYdfwSbrJYZu730Z8m8ZRHaUBpZgXHR/bX5h 7t0fM5cRwoG1jwJNhyV+KH9D2EmOmD51lHPtXLRc8g07eQgWwBiPqqAttsTgwuOb/9iDDrO+FQy EkaThiW1NKrgXwf+Pn9uNsmXgnibXuOtYEGgfqMhyxXUbGdqH5S9/2uqBFxp+ghVdXTWLQ+QL+x zF65jwEEXUr8SlNNwR1OiPXUSiSxlb4FpodTGX3JNB1MVI2swRZhXmMbzNTddfVte2ddO9piZoZ Tc6inwi7Ghb21qFQOSIHP4yxSpfCgY2fSrm9jdBAYMcCRhHoR2O/krRyX9ue3V7fTY5B1WEEUXk UwEZAbwIuffEEkOuMTkLOGVWAmTMn9hVy9hUS1EZJItRunXSOnqehddEJqy3hJvtgrK+xd2iZo3 r0uQQsAKx2IxYpF5fmKnzr18R31s4DCRwbi9BEIP5d X-Received: by 2002:a17:90b:524f:b0:35d:93ff:2854 with SMTP id 98e67ed59e1d1-364c2f6cdf8mr195128a91.8.1777501781760; Wed, 29 Apr 2026 15:29:41 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 42/48] fpu: Inline float64_unpack_raw into callers Date: Thu, 30 Apr 2026 08:24:39 +1000 Message-ID: <20260429222445.26301-43-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102f; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501795000154100 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 5e33eab8d5..e1b92b38b6 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -646,11 +646,6 @@ static FloatParts64 unpack_raw64(const FloatFmt *fmt, = uint64_t raw) }; } =20 -static void QEMU_FLATTEN float64_unpack_raw(FloatParts64 *p, float64 f) -{ - *p =3D unpack_raw64(&float64_params, f); -} - static void QEMU_FLATTEN floatx80_unpack_raw(FloatParts128 *p, floatx80 f) { *p =3D (FloatParts128) { @@ -1538,7 +1533,7 @@ static float32 float32_round_pack_canonical(FloatPart= s64 *p, static void float64_unpack_canonical(FloatParts64 *p, float64 f, float_status *s) { - float64_unpack_raw(p, f); + *p =3D unpack_raw64(&float64_params, f); parts64_canonicalize(p, s, &float64_params); } =20 @@ -4918,9 +4913,8 @@ float32 float32_silence_nan(float32 a, float_status *= status) =20 float64 float64_silence_nan(float64 a, float_status *status) { - FloatParts64 p; + FloatParts64 p =3D unpack_raw64(&float64_params, a); =20 - float64_unpack_raw(&p, a); p.frac <<=3D float64_params.frac_shift; parts64_silence_nan(&p, status); p.frac >>=3D float64_params.frac_shift; @@ -4990,9 +4984,8 @@ float32 float32_squash_input_denormal(float32 a, floa= t_status *status) float64 float64_squash_input_denormal(float64 a, float_status *status) { if (status->flush_inputs_to_zero) { - FloatParts64 p; + FloatParts64 p =3D unpack_raw64(&float64_params, a); =20 - float64_unpack_raw(&p, a); if (parts_squash_denormal(p, status)) { return float64_set_sign(float64_zero, p.sign); } --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501795; cv=none; d=zohomail.com; s=zohoarc; b=hwwq3d9VVuEgnvnTz8/wufg24/L5fQHISBT7Q5Vhl97o1BhLTSZucgW4j82fvHDWjx9+doOdrlqooNB9r2tGYDByKQk5NM+sATvrkvUvz303sg1yNk6ouupIRMsIbFzvNGz5ZCCEVJJo/Ng+/Jsl1Ds9WbeW7UiNCNH8xjrXrIs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501795; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=CUmpIM4LfmrIkEEZVNZic3Yz4otW5xM8jl90p7Wz+D4=; b=YgEjT1JPRPWiGnzVPyPfWJtDv8KiyVh8Pz410HOV9mKwly3rikQd0VCBFL5ozDKoGNrH3CkwojRg9uTFzMIGYYM/oBWgDa3EzV/PfZM0PQNGLUp3okc5lwE39s4+SdU9tGNwmxvFBHaOwT/YCHz3JEwSltWect9Y16ngmxFaZGg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501795286363.10232303651503; Wed, 29 Apr 2026 15:29:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDPl-0006cJ-0w; Wed, 29 Apr 2026 18:29:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDPg-00062w-To for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:29:48 -0400 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDPd-0006zO-Sf for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:29:48 -0400 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-35d965648a2so244999a91.0 for ; Wed, 29 Apr 2026 15:29:45 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364bdf54203sm630479a91.7.2026.04.29.15.29.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:29:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501784; x=1778106584; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=CUmpIM4LfmrIkEEZVNZic3Yz4otW5xM8jl90p7Wz+D4=; b=OG8n12mlI9bQVj1Ns5cogYdE/StXflV8iJB4NxFFEJikOIG6eCD/nxnizSmMxHWKZm /zhvRo7EtAP5G06GMqi7mzE0BVE+bmqwcgTttZi2B8qbLtUCPCwEmH7Q5/4+yNEWMSsR Oclyrvq8Z2xtn0rcDGeBmCoEWigc5R9Aq9ahBPBZ9aGV3spyGX9C2190swpDCDepcz/O JDT9llEjqDbsYjAwZmV/rqwFIUikjcR3VN1ZAd7GNnbwdbJm47IMOJqEbgHEXdZyaAL/ qfJ/E8WDgKkzC31i/CgwtIjy13Z6xvR62QmCfx3yeRwFmPg4OY1DU/1/+z6gTphW2hXU x6lA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501784; x=1778106584; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=CUmpIM4LfmrIkEEZVNZic3Yz4otW5xM8jl90p7Wz+D4=; b=N8XTW1yfKjhYq2T4Jk+UmeO+Oa7N9hupMBcp8/XvidCj3yS/h+XHAl3ELZQ2wc1VQ0 6hoU6uhFddFPgWY1/AAKVqIk4ruYWOLlNFzEQGjQFw6qaqXrwk3Em0O6K/T2bZgrRvMD VdtfymIuITHodMSg1t+yTbowjrLZgEYHU0fcN/m4uWRRYfipEaoevNcSYJmwy2Mtx/LC e38PDeXGlscIsLQpu+UZzJGKKaGldWLY3LM+RsTGsT1kTqgs/C1+ODIyCLWXfB6hTDG5 lAEndfgA5Qm3xUSGx+yvo0Bz9CTABc+e/jmb2zEe15HxBcPzjpVGdmPDLIrGj4/KRAbM DN7A== X-Gm-Message-State: AOJu0YzuqmGpKAOJECctWGBLW95xelU1YZKxVWgSsZdGgIqWVbrwbl9q 5jWWFvpYqzriKgAtBmVzWapZClFfmamqzYWUhgRmQ5HK/1SMXwC09p0fCGI3PAqTuUrxZJ4qy0H I1NQEhpM= X-Gm-Gg: AeBDiesv9EMHhdpb05CS5EIevNWfKaAGdjKw1LraLGyKv8FZ4Q8JiBO1ng99sf6DuD4 35RCQUeoUOm/FVoVvBJg8J2DiFf8TFJcYZhCBOlJRUxy9t7y2VbNnqs/M9CpQNBp11t47eAg7t3 RiqtoZMP5R8/nC5G9DT61uSqCn7DLhALrCjz73XoxX7JY9xndhrtOwRygGKwVdespsg9ejpXMgI PpVNjWWz8UDilgc/xiGHOQPWRNYY32U4FzBlvMUtGUyAfqylDq2F91/FYYAn26zypbwXBndT9cp KUN736gzVVrDe8p13Shuq1p4NQSowil9F9/vuvj8LlKHkp1/0GzW1W/uQRf0+t+Dv/5F/zIA7dB AdAlHf7GrSWdzeov3n8KtMuIyliPK28A0HiT92sYFWmYEjed5v7usv2uM7iaJYzLwFkt4E6Ig6+ FgvqAT7V57debhCcnjWI+4b1DnilbvCkwZO94jjlZZ X-Received: by 2002:a17:90b:3cc3:b0:35f:b784:d3bf with SMTP id 98e67ed59e1d1-364c2f0b457mr197691a91.1.1777501784342; Wed, 29 Apr 2026 15:29:44 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 43/48] fpu: Return struct from float{32,64}_unpack_canonical Date: Thu, 30 Apr 2026 08:24:40 +1000 Message-ID: <20260429222445.26301-44-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501796398158500 We must change float32 and float64 at once because of the DEFINE_S390_DIVIDE_TO_INTEGER macro. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 300 +++++++++++++++++------------------------------- 1 file changed, 107 insertions(+), 193 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index e1b92b38b6..b3208c1891 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -1516,11 +1516,11 @@ static bfloat16 bfloat16_round_pack_canonical(Float= Parts64 *p, return bfloat16_pack_raw(p); } =20 -static void float32_unpack_canonical(FloatParts64 *p, float32 f, - float_status *s) +static FloatParts64 float32_unpack_canonical(float32 f, float_status *s) { - *p =3D unpack_raw64(&float32_params, f); - parts64_canonicalize(p, s, &float32_params); + FloatParts64 p =3D unpack_raw64(&float32_params, f); + parts64_canonicalize(&p, s, &float32_params); + return p; } =20 static float32 float32_round_pack_canonical(FloatParts64 *p, @@ -1530,11 +1530,11 @@ static float32 float32_round_pack_canonical(FloatPa= rts64 *p, return float32_pack_raw(p); } =20 -static void float64_unpack_canonical(FloatParts64 *p, float64 f, - float_status *s) +static FloatParts64 float64_unpack_canonical(float64 f, float_status *s) { - *p =3D unpack_raw64(&float64_params, f); - parts64_canonicalize(p, s, &float64_params); + FloatParts64 p =3D unpack_raw64(&float64_params, f); + parts64_canonicalize(&p, s, &float64_params); + return p; } =20 static float64 float64_round_pack_canonical(FloatParts64 *p, @@ -1722,11 +1722,9 @@ float16 float16_sub(float16 a, float16 b, float_stat= us *status) static float32 QEMU_SOFTFLOAT_ATTR soft_f32_addsub(float32 a, float32 b, float_status *status, bool subtract) { - FloatParts64 pa, pb, *pr; - - float32_unpack_canonical(&pa, a, status); - float32_unpack_canonical(&pb, b, status); - pr =3D parts64_addsub(&pa, &pb, status, subtract); + FloatParts64 pa =3D float32_unpack_canonical(a, status); + FloatParts64 pb =3D float32_unpack_canonical(b, status); + FloatParts64 *pr =3D parts64_addsub(&pa, &pb, status, subtract); =20 return float32_round_pack_canonical(pr, status); } @@ -1744,11 +1742,9 @@ static float32 soft_f32_sub(float32 a, float32 b, fl= oat_status *status) static float64 QEMU_SOFTFLOAT_ATTR soft_f64_addsub(float64 a, float64 b, float_status *status, bool subtract) { - FloatParts64 pa, pb, *pr; - - float64_unpack_canonical(&pa, a, status); - float64_unpack_canonical(&pb, b, status); - pr =3D parts64_addsub(&pa, &pb, status, subtract); + FloatParts64 pa =3D float64_unpack_canonical(a, status); + FloatParts64 pb =3D float64_unpack_canonical(b, status); + FloatParts64 *pr =3D parts64_addsub(&pa, &pb, status, subtract); =20 return float64_round_pack_canonical(pr, status); } @@ -1841,11 +1837,9 @@ float64_sub(float64 a, float64 b, float_status *s) static float64 float64r32_addsub(float64 a, float64 b, float_status *statu= s, bool subtract) { - FloatParts64 pa, pb, *pr; - - float64_unpack_canonical(&pa, a, status); - float64_unpack_canonical(&pb, b, status); - pr =3D parts64_addsub(&pa, &pb, status, subtract); + FloatParts64 pa =3D float64_unpack_canonical(a, status); + FloatParts64 pb =3D float64_unpack_canonical(b, status); + FloatParts64 *pr =3D parts64_addsub(&pa, &pb, status, subtract); =20 return float64r32_round_pack_canonical(pr, status); } @@ -1942,11 +1936,9 @@ float16 QEMU_FLATTEN float16_mul(float16 a, float16 = b, float_status *status) static float32 QEMU_SOFTFLOAT_ATTR soft_f32_mul(float32 a, float32 b, float_status *status) { - FloatParts64 pa, pb, *pr; - - float32_unpack_canonical(&pa, a, status); - float32_unpack_canonical(&pb, b, status); - pr =3D parts64_mul(&pa, &pb, status); + FloatParts64 pa =3D float32_unpack_canonical(a, status); + FloatParts64 pb =3D float32_unpack_canonical(b, status); + FloatParts64 *pr =3D parts64_mul(&pa, &pb, status); =20 return float32_round_pack_canonical(pr, status); } @@ -1954,11 +1946,9 @@ soft_f32_mul(float32 a, float32 b, float_status *sta= tus) static float64 QEMU_SOFTFLOAT_ATTR soft_f64_mul(float64 a, float64 b, float_status *status) { - FloatParts64 pa, pb, *pr; - - float64_unpack_canonical(&pa, a, status); - float64_unpack_canonical(&pb, b, status); - pr =3D parts64_mul(&pa, &pb, status); + FloatParts64 pa =3D float64_unpack_canonical(a, status); + FloatParts64 pb =3D float64_unpack_canonical(b, status); + FloatParts64 *pr =3D parts64_mul(&pa, &pb, status); =20 return float64_round_pack_canonical(pr, status); } @@ -1989,11 +1979,9 @@ float64_mul(float64 a, float64 b, float_status *s) =20 float64 float64r32_mul(float64 a, float64 b, float_status *status) { - FloatParts64 pa, pb, *pr; - - float64_unpack_canonical(&pa, a, status); - float64_unpack_canonical(&pb, b, status); - pr =3D parts64_mul(&pa, &pb, status); + FloatParts64 pa =3D float64_unpack_canonical(a, status); + FloatParts64 pb =3D float64_unpack_canonical(b, status); + FloatParts64 *pr =3D parts64_mul(&pa, &pb, status); =20 return float64r32_round_pack_canonical(pr, status); } @@ -2066,12 +2054,10 @@ float32 QEMU_SOFTFLOAT_ATTR float32_muladd_scalbn(float32 a, float32 b, float32 c, int scale, int flags, float_status *status) { - FloatParts64 pa, pb, pc, *pr; - - float32_unpack_canonical(&pa, a, status); - float32_unpack_canonical(&pb, b, status); - float32_unpack_canonical(&pc, c, status); - pr =3D parts64_muladd_scalbn(&pa, &pb, &pc, scale, flags, status); + FloatParts64 pa =3D float32_unpack_canonical(a, status); + FloatParts64 pb =3D float32_unpack_canonical(b, status); + FloatParts64 pc =3D float32_unpack_canonical(c, status); + FloatParts64 *pr =3D parts64_muladd_scalbn(&pa, &pb, &pc, scale, flags= , status); =20 /* Round before applying negate result. */ parts64_uncanon(pr, status, &float32_params, false); @@ -2085,12 +2071,10 @@ float64 QEMU_SOFTFLOAT_ATTR float64_muladd_scalbn(float64 a, float64 b, float64 c, int scale, int flags, float_status *status) { - FloatParts64 pa, pb, pc, *pr; - - float64_unpack_canonical(&pa, a, status); - float64_unpack_canonical(&pb, b, status); - float64_unpack_canonical(&pc, c, status); - pr =3D parts64_muladd_scalbn(&pa, &pb, &pc, scale, flags, status); + FloatParts64 pa =3D float64_unpack_canonical(a, status); + FloatParts64 pb =3D float64_unpack_canonical(b, status); + FloatParts64 pc =3D float64_unpack_canonical(c, status); + FloatParts64 *pr =3D parts64_muladd_scalbn(&pa, &pb, &pc, scale, flags= , status); =20 /* Round before applying negate result. */ parts64_uncanon(pr, status, &float64_params, false); @@ -2244,12 +2228,10 @@ float64_muladd(float64 xa, float64 xb, float64 xc, = int flags, float_status *s) float64 float64r32_muladd(float64 a, float64 b, float64 c, int flags, float_status *status) { - FloatParts64 pa, pb, pc, *pr; - - float64_unpack_canonical(&pa, a, status); - float64_unpack_canonical(&pb, b, status); - float64_unpack_canonical(&pc, c, status); - pr =3D parts64_muladd_scalbn(&pa, &pb, &pc, 0, flags, status); + FloatParts64 pa =3D float64_unpack_canonical(a, status); + FloatParts64 pb =3D float64_unpack_canonical(b, status); + FloatParts64 pc =3D float64_unpack_canonical(c, status); + FloatParts64 *pr =3D parts64_muladd_scalbn(&pa, &pb, &pc, 0, flags, st= atus); =20 /* Round before applying negate result. */ parts64_uncanon(pr, status, &float32_params, false); @@ -2309,11 +2291,9 @@ float16 float16_div(float16 a, float16 b, float_stat= us *status) static float32 QEMU_SOFTFLOAT_ATTR soft_f32_div(float32 a, float32 b, float_status *status) { - FloatParts64 pa, pb, *pr; - - float32_unpack_canonical(&pa, a, status); - float32_unpack_canonical(&pb, b, status); - pr =3D parts64_div(&pa, &pb, status); + FloatParts64 pa =3D float32_unpack_canonical(a, status); + FloatParts64 pb =3D float32_unpack_canonical(b, status); + FloatParts64 *pr =3D parts64_div(&pa, &pb, status); =20 return float32_round_pack_canonical(pr, status); } @@ -2321,11 +2301,9 @@ soft_f32_div(float32 a, float32 b, float_status *sta= tus) static float64 QEMU_SOFTFLOAT_ATTR soft_f64_div(float64 a, float64 b, float_status *status) { - FloatParts64 pa, pb, *pr; - - float64_unpack_canonical(&pa, a, status); - float64_unpack_canonical(&pb, b, status); - pr =3D parts64_div(&pa, &pb, status); + FloatParts64 pa =3D float64_unpack_canonical(a, status); + FloatParts64 pb =3D float64_unpack_canonical(b, status); + FloatParts64 *pr =3D parts64_div(&pa, &pb, status); =20 return float64_round_pack_canonical(pr, status); } @@ -2390,11 +2368,9 @@ float64_div(float64 a, float64 b, float_status *s) =20 float64 float64r32_div(float64 a, float64 b, float_status *status) { - FloatParts64 pa, pb, *pr; - - float64_unpack_canonical(&pa, a, status); - float64_unpack_canonical(&pb, b, status); - pr =3D parts64_div(&pa, &pb, status); + FloatParts64 pa =3D float64_unpack_canonical(a, status); + FloatParts64 pb =3D float64_unpack_canonical(b, status); + FloatParts64 *pr =3D parts64_div(&pa, &pb, status); =20 return float64r32_round_pack_canonical(pr, status); } @@ -2440,22 +2416,18 @@ floatx80 floatx80_div(floatx80 a, floatx80 b, float= _status *status) =20 float32 float32_rem(float32 a, float32 b, float_status *status) { - FloatParts64 pa, pb, *pr; - - float32_unpack_canonical(&pa, a, status); - float32_unpack_canonical(&pb, b, status); - pr =3D parts64_modrem(&pa, &pb, NULL, status); + FloatParts64 pa =3D float32_unpack_canonical(a, status); + FloatParts64 pb =3D float32_unpack_canonical(b, status); + FloatParts64 *pr =3D parts64_modrem(&pa, &pb, NULL, status); =20 return float32_round_pack_canonical(pr, status); } =20 float64 float64_rem(float64 a, float64 b, float_status *status) { - FloatParts64 pa, pb, *pr; - - float64_unpack_canonical(&pa, a, status); - float64_unpack_canonical(&pb, b, status); - pr =3D parts64_modrem(&pa, &pb, NULL, status); + FloatParts64 pa =3D float64_unpack_canonical(a, status); + FloatParts64 pb =3D float64_unpack_canonical(b, status); + FloatParts64 *pr =3D parts64_modrem(&pa, &pb, NULL, status); =20 return float64_round_pack_canonical(pr, status); } @@ -2688,28 +2660,25 @@ float64 float16_to_float64(float16 a, bool ieee, fl= oat_status *s) =20 float8_e4m3 float32_to_float8_e4m3(float32 a, bool saturate, float_status = *s) { - FloatParts64 p; + FloatParts64 p =3D float32_unpack_canonical(a, s); =20 - float32_unpack_canonical(&p, a, s); parts64_float_to_float(&p, s); return float8_e4m3_round_pack_canonical(&p, s, saturate); } =20 float8_e5m2 float32_to_float8_e5m2(float32 a, bool saturate, float_status = *s) { - FloatParts64 p; + FloatParts64 p =3D float32_unpack_canonical(a, s); =20 - float32_unpack_canonical(&p, a, s); parts_float_to_e5m2(&p, s, saturate); return float8_e5m2_round_pack_canonical(&p, s, saturate); } =20 float16 float32_to_float16(float32 a, bool ieee, float_status *s) { - FloatParts64 p; + FloatParts64 p =3D float32_unpack_canonical(a, s); const FloatFmt *fmt; =20 - float32_unpack_canonical(&p, a, s); if (ieee) { parts64_float_to_float(&p, s); fmt =3D &float16_params; @@ -2723,9 +2692,8 @@ float16 float32_to_float16(float32 a, bool ieee, floa= t_status *s) static float64 QEMU_SOFTFLOAT_ATTR soft_float32_to_float64(float32 a, float_status *s) { - FloatParts64 p; + FloatParts64 p =3D float32_unpack_canonical(a, s); =20 - float32_unpack_canonical(&p, a, s); parts64_float_to_float(&p, s); return float64_round_pack_canonical(&p, s); } @@ -2748,10 +2716,9 @@ float64 float32_to_float64(float32 a, float_status *= s) =20 float16 float64_to_float16(float64 a, bool ieee, float_status *s) { - FloatParts64 p; + FloatParts64 p =3D float64_unpack_canonical(a, s); const FloatFmt *fmt; =20 - float64_unpack_canonical(&p, a, s); if (ieee) { parts64_float_to_float(&p, s); fmt =3D &float16_params; @@ -2764,9 +2731,8 @@ float16 float64_to_float16(float64 a, bool ieee, floa= t_status *s) =20 float32 float64_to_float32(float64 a, float_status *s) { - FloatParts64 p; + FloatParts64 p =3D float64_unpack_canonical(a, s); =20 - float64_unpack_canonical(&p, a, s); parts64_float_to_float(&p, s); return float32_round_pack_canonical(&p, s); } @@ -2805,18 +2771,16 @@ float64 bfloat16_to_float64(bfloat16 a, float_statu= s *s) =20 bfloat16 float32_to_bfloat16(float32 a, float_status *s) { - FloatParts64 p; + FloatParts64 p =3D float32_unpack_canonical(a, s); =20 - float32_unpack_canonical(&p, a, s); parts64_float_to_float(&p, s); return bfloat16_round_pack_canonical(&p, s); } =20 bfloat16 float64_to_bfloat16(float64 a, float_status *s) { - FloatParts64 p; + FloatParts64 p =3D float64_unpack_canonical(a, s); =20 - float64_unpack_canonical(&p, a, s); parts64_float_to_float(&p, s); return bfloat16_round_pack_canonical(&p, s); } @@ -2843,20 +2807,18 @@ float64 float128_to_float64(float128 a, float_statu= s *s) =20 float128 float32_to_float128(float32 a, float_status *s) { - FloatParts64 p64; + FloatParts64 p64 =3D float32_unpack_canonical(a, s); FloatParts128 p128; =20 - float32_unpack_canonical(&p64, a, s); parts_float_to_float_widen(&p128, &p64, s); return float128_round_pack_canonical(&p128, s); } =20 float128 float64_to_float128(float64 a, float_status *s) { - FloatParts64 p64; + FloatParts64 p64 =3D float64_unpack_canonical(a, s); FloatParts128 p128; =20 - float64_unpack_canonical(&p64, a, s); parts_float_to_float_widen(&p128, &p64, s); return float128_round_pack_canonical(&p128, s); } @@ -2901,20 +2863,18 @@ float128 floatx80_to_float128(floatx80 a, float_sta= tus *s) =20 floatx80 float32_to_floatx80(float32 a, float_status *s) { - FloatParts64 p64; + FloatParts64 p64 =3D float32_unpack_canonical(a, s); FloatParts128 p128; =20 - float32_unpack_canonical(&p64, a, s); parts_float_to_float_widen(&p128, &p64, s); return floatx80_round_pack_canonical(&p128, s); } =20 floatx80 float64_to_floatx80(float64 a, float_status *s) { - FloatParts64 p64; + FloatParts64 p64 =3D float64_unpack_canonical(a, s); FloatParts128 p128; =20 - float64_unpack_canonical(&p64, a, s); parts_float_to_float_widen(&p128, &p64, s); return floatx80_round_pack_canonical(&p128, s); } @@ -2942,18 +2902,16 @@ float16 float16_round_to_int(float16 a, float_statu= s *s) =20 float32 float32_round_to_int(float32 a, float_status *s) { - FloatParts64 p; + FloatParts64 p =3D float32_unpack_canonical(a, s); =20 - float32_unpack_canonical(&p, a, s); parts64_round_to_int(&p, s->float_rounding_mode, 0, s, &float32_params= ); return float32_round_pack_canonical(&p, s); } =20 float64 float64_round_to_int(float64 a, float_status *s) { - FloatParts64 p; + FloatParts64 p =3D float64_unpack_canonical(a, s); =20 - float64_unpack_canonical(&p, a, s); parts64_round_to_int(&p, s->float_rounding_mode, 0, s, &float64_params= ); return float64_round_pack_canonical(&p, s); } @@ -3023,54 +2981,42 @@ int64_t float16_to_int64_scalbn(float16 a, FloatRou= ndMode rmode, int scale, int16_t float32_to_int16_scalbn(float32 a, FloatRoundMode rmode, int scale, float_status *s) { - FloatParts64 p; - - float32_unpack_canonical(&p, a, s); + FloatParts64 p =3D float32_unpack_canonical(a, s); return parts64_float_to_sint(&p, rmode, scale, INT16_MIN, INT16_MAX, s= ); } =20 int32_t float32_to_int32_scalbn(float32 a, FloatRoundMode rmode, int scale, float_status *s) { - FloatParts64 p; - - float32_unpack_canonical(&p, a, s); + FloatParts64 p =3D float32_unpack_canonical(a, s); return parts64_float_to_sint(&p, rmode, scale, INT32_MIN, INT32_MAX, s= ); } =20 int64_t float32_to_int64_scalbn(float32 a, FloatRoundMode rmode, int scale, float_status *s) { - FloatParts64 p; - - float32_unpack_canonical(&p, a, s); + FloatParts64 p =3D float32_unpack_canonical(a, s); return parts64_float_to_sint(&p, rmode, scale, INT64_MIN, INT64_MAX, s= ); } =20 int16_t float64_to_int16_scalbn(float64 a, FloatRoundMode rmode, int scale, float_status *s) { - FloatParts64 p; - - float64_unpack_canonical(&p, a, s); + FloatParts64 p =3D float64_unpack_canonical(a, s); return parts64_float_to_sint(&p, rmode, scale, INT16_MIN, INT16_MAX, s= ); } =20 int32_t float64_to_int32_scalbn(float64 a, FloatRoundMode rmode, int scale, float_status *s) { - FloatParts64 p; - - float64_unpack_canonical(&p, a, s); + FloatParts64 p =3D float64_unpack_canonical(a, s); return parts64_float_to_sint(&p, rmode, scale, INT32_MIN, INT32_MAX, s= ); } =20 int64_t float64_to_int64_scalbn(float64 a, FloatRoundMode rmode, int scale, float_status *s) { - FloatParts64 p; - - float64_unpack_canonical(&p, a, s); + FloatParts64 p =3D float64_unpack_canonical(a, s); return parts64_float_to_sint(&p, rmode, scale, INT64_MIN, INT64_MAX, s= ); } =20 @@ -3455,18 +3401,14 @@ static int64_t parts64_float_to_sint_modulo(FloatPa= rts64 *p, int32_t float64_to_int32_modulo(float64 a, FloatRoundMode rmode, float_status *s) { - FloatParts64 p; - - float64_unpack_canonical(&p, a, s); + FloatParts64 p =3D float64_unpack_canonical(a, s); return parts64_float_to_sint_modulo(&p, rmode, 31, s); } =20 int64_t float64_to_int64_modulo(float64 a, FloatRoundMode rmode, float_status *s) { - FloatParts64 p; - - float64_unpack_canonical(&p, a, s); + FloatParts64 p =3D float64_unpack_canonical(a, s); return parts64_float_to_sint_modulo(&p, rmode, 63, s); } =20 @@ -3505,54 +3447,42 @@ uint64_t float16_to_uint64_scalbn(float16 a, FloatR= oundMode rmode, int scale, uint16_t float32_to_uint16_scalbn(float32 a, FloatRoundMode rmode, int sca= le, float_status *s) { - FloatParts64 p; - - float32_unpack_canonical(&p, a, s); + FloatParts64 p =3D float32_unpack_canonical(a, s); return parts64_float_to_uint(&p, rmode, scale, UINT16_MAX, s); } =20 uint32_t float32_to_uint32_scalbn(float32 a, FloatRoundMode rmode, int sca= le, float_status *s) { - FloatParts64 p; - - float32_unpack_canonical(&p, a, s); + FloatParts64 p =3D float32_unpack_canonical(a, s); return parts64_float_to_uint(&p, rmode, scale, UINT32_MAX, s); } =20 uint64_t float32_to_uint64_scalbn(float32 a, FloatRoundMode rmode, int sca= le, float_status *s) { - FloatParts64 p; - - float32_unpack_canonical(&p, a, s); + FloatParts64 p =3D float32_unpack_canonical(a, s); return parts64_float_to_uint(&p, rmode, scale, UINT64_MAX, s); } =20 uint16_t float64_to_uint16_scalbn(float64 a, FloatRoundMode rmode, int sca= le, float_status *s) { - FloatParts64 p; - - float64_unpack_canonical(&p, a, s); + FloatParts64 p =3D float64_unpack_canonical(a, s); return parts64_float_to_uint(&p, rmode, scale, UINT16_MAX, s); } =20 uint32_t float64_to_uint32_scalbn(float64 a, FloatRoundMode rmode, int sca= le, float_status *s) { - FloatParts64 p; - - float64_unpack_canonical(&p, a, s); + FloatParts64 p =3D float64_unpack_canonical(a, s); return parts64_float_to_uint(&p, rmode, scale, UINT32_MAX, s); } =20 uint64_t float64_to_uint64_scalbn(float64 a, FloatRoundMode rmode, int sca= le, float_status *s) { - FloatParts64 p; - - float64_unpack_canonical(&p, a, s); + FloatParts64 p =3D float64_unpack_canonical(a, s); return parts64_float_to_uint(&p, rmode, scale, UINT64_MAX, s); } =20 @@ -4266,22 +4196,18 @@ static bfloat16 bfloat16_minmax(bfloat16 a, bfloat1= 6 b, =20 static float32 float32_minmax(float32 a, float32 b, float_status *s, int f= lags) { - FloatParts64 pa, pb, *pr; - - float32_unpack_canonical(&pa, a, s); - float32_unpack_canonical(&pb, b, s); - pr =3D parts64_minmax(&pa, &pb, s, flags); + FloatParts64 pa =3D float32_unpack_canonical(a, s); + FloatParts64 pb =3D float32_unpack_canonical(b, s); + FloatParts64 *pr =3D parts64_minmax(&pa, &pb, s, flags); =20 return float32_round_pack_canonical(pr, s); } =20 static float64 float64_minmax(float64 a, float64 b, float_status *s, int f= lags) { - FloatParts64 pa, pb, *pr; - - float64_unpack_canonical(&pa, a, s); - float64_unpack_canonical(&pb, b, s); - pr =3D parts64_minmax(&pa, &pb, s, flags); + FloatParts64 pa =3D float64_unpack_canonical(a, s); + FloatParts64 pb =3D float64_unpack_canonical(b, s); + FloatParts64 *pr =3D parts64_minmax(&pa, &pb, s, flags); =20 return float64_round_pack_canonical(pr, s); } @@ -4347,10 +4273,9 @@ FloatRelation float16_compare_quiet(float16 a, float= 16 b, float_status *s) static FloatRelation QEMU_SOFTFLOAT_ATTR float32_do_compare(float32 a, float32 b, float_status *s, bool is_quiet) { - FloatParts64 pa, pb; + FloatParts64 pa =3D float32_unpack_canonical(a, s); + FloatParts64 pb =3D float32_unpack_canonical(b, s); =20 - float32_unpack_canonical(&pa, a, s); - float32_unpack_canonical(&pb, b, s); return parts64_compare(&pa, &pb, s, is_quiet); } =20 @@ -4401,10 +4326,9 @@ FloatRelation float32_compare_quiet(float32 a, float= 32 b, float_status *s) static FloatRelation QEMU_SOFTFLOAT_ATTR float64_do_compare(float64 a, float64 b, float_status *s, bool is_quiet) { - FloatParts64 pa, pb; + FloatParts64 pa =3D float64_unpack_canonical(a, s); + FloatParts64 pb =3D float64_unpack_canonical(b, s); =20 - float64_unpack_canonical(&pa, a, s); - float64_unpack_canonical(&pb, b, s); return parts64_compare(&pa, &pb, s, is_quiet); } =20 @@ -4527,18 +4451,16 @@ float16 float16_scalbn(float16 a, int n, float_stat= us *status) =20 float32 float32_scalbn(float32 a, int n, float_status *status) { - FloatParts64 p; + FloatParts64 p =3D float32_unpack_canonical(a, status); =20 - float32_unpack_canonical(&p, a, status); parts64_scalbn(&p, n, status); return float32_round_pack_canonical(&p, status); } =20 float64 float64_scalbn(float64 a, int n, float_status *status) { - FloatParts64 p; + FloatParts64 p =3D float64_unpack_canonical(a, status); =20 - float64_unpack_canonical(&p, a, status); parts64_scalbn(&p, n, status); return float64_round_pack_canonical(&p, status); } @@ -4586,9 +4508,8 @@ float16 QEMU_FLATTEN float16_sqrt(float16 a, float_st= atus *status) static float32 QEMU_SOFTFLOAT_ATTR soft_f32_sqrt(float32 a, float_status *status) { - FloatParts64 p; + FloatParts64 p =3D float32_unpack_canonical(a, status); =20 - float32_unpack_canonical(&p, a, status); parts64_sqrt(&p, status, &float32_params); return float32_round_pack_canonical(&p, status); } @@ -4596,9 +4517,8 @@ soft_f32_sqrt(float32 a, float_status *status) static float64 QEMU_SOFTFLOAT_ATTR soft_f64_sqrt(float64 a, float_status *status) { - FloatParts64 p; + FloatParts64 p =3D float64_unpack_canonical(a, status); =20 - float64_unpack_canonical(&p, a, status); parts64_sqrt(&p, status, &float64_params); return float64_round_pack_canonical(&p, status); } @@ -4659,9 +4579,8 @@ float64 QEMU_FLATTEN float64_sqrt(float64 xa, float_s= tatus *s) =20 float64 float64r32_sqrt(float64 a, float_status *status) { - FloatParts64 p; + FloatParts64 p =3D float64_unpack_canonical(a, status); =20 - float64_unpack_canonical(&p, a, status); parts64_sqrt(&p, status, &float64_params); return float64r32_round_pack_canonical(&p, status); } @@ -4822,18 +4741,16 @@ static void parts64_log2(FloatParts64 *a, float_sta= tus *s, const FloatFmt *fmt) =20 float32 float32_log2(float32 a, float_status *status) { - FloatParts64 p; + FloatParts64 p =3D float32_unpack_canonical(a, status); =20 - float32_unpack_canonical(&p, a, status); parts64_log2(&p, status, &float32_params); return float32_round_pack_canonical(&p, status); } =20 float64 float64_log2(float64 a, float_status *status) { - FloatParts64 p; + FloatParts64 p =3D float64_unpack_canonical(a, status); =20 - float64_unpack_canonical(&p, a, status); parts64_log2(&p, status, &float64_params); return float64_round_pack_canonical(&p, status); } @@ -5321,10 +5238,9 @@ static const float64 float32_exp2_coefficients[15] = =3D =20 float32 float32_exp2(float32 a, float_status *status) { - FloatParts64 xp, xnp, tp, rp; - int i; + FloatParts64 xnp, tp, rp; + FloatParts64 xp =3D float32_unpack_canonical(a, status); =20 - float32_unpack_canonical(&xp, a, status); if (unlikely(xp.cls !=3D float_class_normal)) { switch (xp.cls) { case float_class_denormal: @@ -5344,14 +5260,13 @@ float32 float32_exp2(float32 a, float_status *statu= s) =20 float_raise(float_flag_inexact, status); =20 - float64_unpack_canonical(&tp, float64_ln2, status); + tp =3D float64_unpack_canonical(float64_ln2, status); xp =3D *parts64_mul(&xp, &tp, status); xnp =3D xp; =20 - float64_unpack_canonical(&rp, float64_one, status); - for (i =3D 0 ; i < 15 ; i++) { - - float64_unpack_canonical(&tp, float32_exp2_coefficients[i], status= ); + rp =3D float64_unpack_canonical(float64_one, status); + for (int i =3D 0; i < 15; i++) { + tp =3D float64_unpack_canonical(float32_exp2_coefficients[i], stat= us); rp =3D *parts64_muladd_scalbn(&tp, &xnp, &rp, 0, 0, status); xnp =3D *parts64_mul(&xnp, &xp, status); } @@ -5504,10 +5419,9 @@ void floatN ## _s390_divide_to_integer(floatN a, flo= atN b, \ uint32_t *cc, int *dxc, = \ float_status *status) = \ { = \ - FloatParts64 pa, pb, pr, pn; = \ - = \ - floatN ## _unpack_canonical(&pa, a, status); = \ - floatN ## _unpack_canonical(&pb, b, status); = \ + FloatParts64 pa =3D floatN ## _unpack_canonical(a, status); = \ + FloatParts64 pb =3D floatN ## _unpack_canonical(b, status); = \ + FloatParts64 pr, pn; = \ parts_s390_divide_to_integer(&pa, &pb, final_quotient_rounding_mode, = \ mask_underflow, mask_inexact, = \ &floatN ## _params, = \ --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501799; cv=none; d=zohomail.com; s=zohoarc; b=Ybn/ot2rIqbAXmtdnVHTc0UbrJKG0lUuGt6J6Kf2CkUeDgN8pkcH1zmAZxblqFZmXvy/ufCE559/VDoG4gMbsnD7GogboEYSS8xR/0SlVgcZGfeQRlJ5OkhDLYt3Gy5vqNRI3T4dMF8uPHhZvUV1Mq4gSQSpteF9+c0HZouhar4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501799; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=i2roCwG75BquZDnWViQHPJm30lO+W7aYvtS/TzZxQLk=; b=SvuVNYqgfIGvOGwWsE2iZ1x3jDzS7+JEqaCjg1kQ0bDG3YAfmhqLxrNVVv6LiSmqv+kiDLmdZuADUR9QJNh7F+tFb7VkrIe0v4rCb5ZYdsuCkUhXU/ZpDHf7dXNSkxiEYvSi8/J0VkLkHGkdfyW4xccIU/HNlXg5xeKJLZd50R4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177750179931378.31690910326961; Wed, 29 Apr 2026 15:29:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDPj-0006QF-AB; Wed, 29 Apr 2026 18:29:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDPh-0006Ae-OM for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:29:49 -0400 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDPg-0006zk-70 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:29:49 -0400 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-3591cc98871so90369a91.3 for ; Wed, 29 Apr 2026 15:29:47 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364bdf54203sm630479a91.7.2026.04.29.15.29.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:29:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501787; x=1778106587; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=i2roCwG75BquZDnWViQHPJm30lO+W7aYvtS/TzZxQLk=; b=CT61HPaswsjubxmt27yUZ+P4hf6YHZZ5Dja7F8M9maJPyN8yK5Eq0+C20JzCVMs1Gh pTmlKtd1qRlTsDnL0Wy8mHEXGKIte7E46FhbXCLFfgITRq0d7BFdiaPJOh5IqGuuEDmV wYGO1YZixJckN97AN+78xePUS88eKE/kqndEkZY7O+AqV4VoZE3TqvkmtJyyJvNTTTVk qmQkp36XHlWk6BHzrI+bGh236ICe0t9n1qf8N664weq5B++81nJFz6gb2z468s+0k2C4 KT5lgS2nPu7tUAS2Yyj5iYAg3oALFIsYz2AeDxhp+MUBBgZ1HMZl+0mU4VxGRGDS+CrM qsZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501787; x=1778106587; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=i2roCwG75BquZDnWViQHPJm30lO+W7aYvtS/TzZxQLk=; b=ZReIQ23qlagTd02zgFLRO0K8JTCiYMn7LdX3klKzUoO4PHyjKMKuyTrft0f72gqlrj 4fBtSJqGmSeMsO1RWD3tNCN4PG4HQC6o9lREVh6f3LJLGQD53YgtjsrfHagBrm0NkP1b ojozGK5iZdmAyyqUvBeJ1SOwLEdONmkSzK3qOnd5tbaaEiFkbiZ4NfvXm4/1S4/D94vf IGXMjv5Uc6jZgbohU4gk0yOXX0vREgbu3SX81Tv6vlrV9GXc1A5ItAlQus15rZTSMZfa 42cEKDtUHTKjOwOdff7VlKusHp7dFpQgMIsBFiDT8PED1gdQx383qigT2+igNFBuE2ii JSpw== X-Gm-Message-State: AOJu0YwDEh8z2IFB2VKD/Lv+XAPfzh062Q+eDm+roFmbkTzVJpbHORZZ mp9NzjhgVuZBeB0ev+dKapsvfctol5wXLYU/DvPqqq1Jt9T1OvL+/WLmpSUtRxnCPkDMGBuPCvc tzmv3L6A= X-Gm-Gg: AeBDiet0yxq7r4MAsGs0U8pg8PrexDxxJUru8UW8oejtXxaqczNF4lPOz9KV2BUrqiY U6WAcCAl7fQ8mGbe+v7JnI65zDTnH4QlVtWupqZPv5rc2FtJrZKypwNi395ohH/68hWZVM9G8BN 993rb3YXmNm49jlIUjPCWBgycpeMqS+1Q7CGA/xjooU4xF7xntYbuL9fGFa5RnMIG5k3AfZvMdg ryRMeouoB3t4vAGUqp5j3H/ASdAI7UpF9gNPVW13acqATwUCFIs6M3mQxbGZoO+Xb0FWuond25b oDlodXBsVpmQ6JNw+10W0cx8VHZBktBdByEWZwwgZHfCyUqHI4PjKxDuZ+POV0o2TABkezPji+z jfcj4M7RS6wupPp8cub981zZUPR1rVkci831idlQFgQx2XENBfBW1Hq858c1XqK5mV8pojxe9YQ usSLYjeVTeTAp+R651QysMB/BE5ReKfkJhdR6OboK6 X-Received: by 2002:a17:90b:3812:b0:35f:b5df:448 with SMTP id 98e67ed59e1d1-364c30ed945mr173316a91.24.1777501786792; Wed, 29 Apr 2026 15:29:46 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 44/48] fpu: Inline floatx80_unpack_raw into only caller Date: Thu, 30 Apr 2026 08:24:41 +1000 Message-ID: <20260429222445.26301-45-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102c; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501801148154100 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index b3208c1891..5412fd0360 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -646,16 +646,6 @@ static FloatParts64 unpack_raw64(const FloatFmt *fmt, = uint64_t raw) }; } =20 -static void QEMU_FLATTEN floatx80_unpack_raw(FloatParts128 *p, floatx80 f) -{ - *p =3D (FloatParts128) { - .cls =3D float_class_unclassified, - .sign =3D extract32(f.high, 15, 1), - .exp =3D extract32(f.high, 0, 15), - .frac_hi =3D f.low - }; -} - static void QEMU_FLATTEN float128_unpack_raw(FloatParts128 *p, float128 f) { const int f_size =3D float128_params.frac_size - 64; @@ -1626,7 +1616,12 @@ static bool floatx80_unpack_canonical(FloatParts128 = *p, floatx80 f, return false; } =20 - floatx80_unpack_raw(p, f); + *p =3D (FloatParts128) { + .cls =3D float_class_unclassified, + .sign =3D extract32(f.high, 15, 1), + .exp =3D extract32(f.high, 0, 15), + .frac_hi =3D f.low + }; =20 if (likely(p->exp !=3D floatx80_params[floatx80_precision_x].exp_max))= { parts128_canonicalize(p, s, &floatx80_params[floatx80_precision_x]= ); --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501817; cv=none; d=zohomail.com; s=zohoarc; b=HwcI/+CWp01nqUz3afWYesNUHLLYl6Y/YeRw4LLF0sjuVs7qRnQq6mi0ZTqeek/8Hs0xJTFrGNaOzLvdw+UZbhLLCpiwcFeqYKLqpDuJ+yxxFJ2wsdlW2weluoKX2O1ZX+0VHhqqZZcgN2VtpqntqqNJJ+3x1OAooFSCEQB/RZU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501817; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=+Y7AOgeyZqnnu+WUEf2U46nh1dogopnE1E9orVyjUJg=; b=Nqxxcv7jqJvsaV1n2SGJ4tD9sNuqCp6bTGD5j9B9UDSqMjJgDCPrLulT6TGgflzRx8bZhoe9CNhgaFKKl4brKsElEPxc9mDHCp/aqXupIT0+IUPapQv1EzPmBn42vBfh3KRtU7mR7NyVYAPDCL+7aeAIkrAhKUlB/dTRvPMybyY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501817464646.2144899782559; Wed, 29 Apr 2026 15:30:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDPm-0006qJ-Jg; Wed, 29 Apr 2026 18:29:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDPk-0006YA-Ay for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:29:52 -0400 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDPi-000703-Nl for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:29:52 -0400 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-35d94f4ee36so128870a91.3 for ; Wed, 29 Apr 2026 15:29:50 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364bdf54203sm630479a91.7.2026.04.29.15.29.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:29:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501789; x=1778106589; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+Y7AOgeyZqnnu+WUEf2U46nh1dogopnE1E9orVyjUJg=; b=xWIOvQ/LDj5nKojW70IFn87v95QwVbHMjrTlinm608/T/uhvtQhDkTnsmMedtcOjKY jBmkDXUo1E05BKTePc0p6pXwziErgbcKejqre0wrp5EDZlJ9yIx6N4L9sQaCmKoix+lp wD/K7eo9gONm7m29r70UjjaAlSnectniHjg8Dw7y5vsHp+c8rcqHbBqeXE+6CCbg8Qyn TFsOLIWDvNgZ4eCcnyvUoEkNSQW+jjbDgEzJJNPdf21//61SqsfVxwl3GAfW/LTdvybH /ffhOrlsAcyQGHW0RfhxNYRzeJt1TWeR48Ovm1wEBy1A2BJd5F5ovjv6vKE9E1Rkrelf xRmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501789; x=1778106589; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=+Y7AOgeyZqnnu+WUEf2U46nh1dogopnE1E9orVyjUJg=; b=OJ9D/deceUeRLDpfZ6qeV8t1gf/JPuZAnqOLyqNOFPTvkyeK0aE5TI/YuU23dH9u6j bbUM6ojiQ9iB4dzy2H9hbNfBhutNn+GHltKpM+wK1o9XDFYRQOG7arQJJ53rJmJIrtRh Akv9j6rh/fOah4QNjVdzUsdnZtszC+JUoIJflsxN0e4xUCC9/T4+jciDNpPhVSID3Kt6 N094oSsjltIeTNbNVxrDRh4s/6mCcF41ILRUAPyvqLXFya8mluswF0glF7jKA2ABymFH JPtbAEAjawVnaW0Fola2PBGqfygWRWTo4gBXLvuzbCq3qWPpsQQ+xcZdEaZEJFkgUO8I LKFQ== X-Gm-Message-State: AOJu0Yw9vDsSXVgIvt2w505UT5xcIsbnFyKTrHcv9imbqEaX7Kas9d0D MBIQ0fpcyzGMumedyRVVYF4k6ViaKuafy+k2l6PJlQ/ZiY/hhbn4CUi1Ce1dF7+/YyRS1wKa73T 9CxgrEII= X-Gm-Gg: AeBDietBl2+6y1JwrcUS9arrT71IWzt/fdJTAZ2SviRt9PEK8aW47VhnP3mD4GYxFuq E1eIsaAhOQRptx9m9F1VberObi6raYWJzWUZp26Xvg2GK4Y1RauZyQvXNtlqa72rXJh/MFyP0e/ IfCL4j2YR4xNds52Wkl9+mS2zGBlEH1UJWNHWQm8gHI9xNhZunyOURmsUt2m2lMNxpb1te1HsNC br+eHXKtQLAeQ72YzwbUP4d5SBeTGKe7yb1I4MSezyVuqA2T+p+NvkAIXkoAWIndgVcnpZOr/id LBF9XiBYpUVeDUAmwQOYoy3s8vRTCxW6SWSwaSNMSZr9lwV8mzF8wSkNBp+/9UvSNaq4haphos2 nBb0O52HKtxKCrIH7VH+PeR8U1QWLZdeoxbP80WlmcZvMLmP6BdwifjbS2OVKqqr02fjU0WG+6w S31RuxcYYtg5O7UlCzUb8uVGW20hSg+/lVOEm4pgUl9TA1qcz9pfA= X-Received: by 2002:a17:90b:50cd:b0:35f:c1e1:a263 with SMTP id 98e67ed59e1d1-364c3136dedmr184604a91.19.1777501789335; Wed, 29 Apr 2026 15:29:49 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 45/48] fpu: Return struct from float128_unpack_raw Date: Thu, 30 Apr 2026 08:24:42 +1000 Message-ID: <20260429222445.26301-46-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102c; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501818423158500 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 5412fd0360..a9c91fb8a4 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -646,12 +646,12 @@ static FloatParts64 unpack_raw64(const FloatFmt *fmt,= uint64_t raw) }; } =20 -static void QEMU_FLATTEN float128_unpack_raw(FloatParts128 *p, float128 f) +static FloatParts128 float128_unpack_raw(float128 f) { const int f_size =3D float128_params.frac_size - 64; const int e_size =3D float128_params.exp_size; =20 - *p =3D (FloatParts128) { + return (FloatParts128) { .cls =3D float_class_unclassified, .sign =3D extract64(f.high, f_size + e_size, 1), .exp =3D extract64(f.high, f_size, e_size), @@ -1586,7 +1586,7 @@ static float64 float64r32_round_pack_canonical(FloatP= arts64 *p, static void float128_unpack_canonical(FloatParts128 *p, float128 f, float_status *s) { - float128_unpack_raw(p, f); + *p =3D float128_unpack_raw(f); parts128_canonicalize(p, s, &float128_params); } =20 @@ -4845,9 +4845,8 @@ bfloat16 bfloat16_silence_nan(bfloat16 a, float_statu= s *status) =20 float128 float128_silence_nan(float128 a, float_status *status) { - FloatParts128 p; + FloatParts128 p =3D float128_unpack_raw(a); =20 - float128_unpack_raw(&p, a); frac128_shl(&p, float128_params.frac_shift); parts128_silence_nan(&p, status); frac128_shr(&p, float128_params.frac_shift); --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501806; cv=none; d=zohomail.com; s=zohoarc; b=nILX5GISsQmILvKEU5+4uSbR81oj2Hof/6Zj6DrswYeeXhhyInuEUNNw6WYLmsEQAxuGvxVQ1Ep/Wyu0NS6rR6YwH+B04n/bfOCoLygkI5L8uhNuBX38LywQgt+kva9MYEfBxvybz3lMnGI0kbPszRgoXj50vdhshu+HyA288Qg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501806; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=cKfv1vhY7Ui3LYik1NVKPOQOgbLeGD0tQcqmZyxoafw=; b=L8fBWwFrkGKX/oP9vcKQPgIda2AD5mqYSTYgMzn+6UxQaFPbEYJ7bN2956KLuO7KJ6dFIIKhxPA62ikqE3p2j89k7zTkuDLgC1gorNPDiLRoAnAJ4qtSmWLc4XcixiR8dCFmsqGjly4+MpuQz2lJBGdmRQIytES9/M1sx2vB+O4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501806635734.4865277527242; Wed, 29 Apr 2026 15:30:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDPp-0007Hf-NA; Wed, 29 Apr 2026 18:29:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDPn-0006xF-E0 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:29:55 -0400 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDPl-00070E-AO for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:29:55 -0400 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-35fb7c1a455so72586a91.3 for ; Wed, 29 Apr 2026 15:29:52 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364bdf54203sm630479a91.7.2026.04.29.15.29.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:29:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501792; x=1778106592; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=cKfv1vhY7Ui3LYik1NVKPOQOgbLeGD0tQcqmZyxoafw=; b=lX+Ep3xF6hmrQfPT1H2frKLXrWguRd2k9PitiTaIUsVej/pxT5i3gbObbt9tu3j3tF YWxv3G/U1b+qzCYLgbTfww9iX49x9L2Nwx8Xgd283jy1hteX2jNrsKG1sMvItGVvSNGe vGWDo8agtiCUA3rnz+YfsY9djyMp2aQDxZJykELWeS9V0r7QEcDkLlRi+R8FyMwxl0+v 2bWqYPiEpjc7zjGYvzTJrTToEG74W46CpXx+DxIYqJlEVQRoogF7cYgXsqtsd2AMpPBx ge+FAivJAtUuvCm3cLIExNVfLcDVNLup5C8ngtsX8hGxgoTuauTGibfCBTmkyT0KckO5 0org== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501792; x=1778106592; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=cKfv1vhY7Ui3LYik1NVKPOQOgbLeGD0tQcqmZyxoafw=; b=fqDEHQ/VwEndO740FZ1fxg+0ksr702d38pAIz9C9uX4X3AwSelZWCoo+Er73NjP7o/ Gk5j1dkk+8PT0TdxFVVKl++lGvhjxG6bFd7QoxJJeaNnhACYp53qOYH6M/srbhEsqjnC ipFhXRE4P1ouTkH5QiZ8US3uHhcW/RxXy+p01msCmx9QU12SGNsFd6T/oBY0RnDm0Zk0 SXl7xU3TUcHvw1E2AXDdQSDnxljFIILCdT4tiwNwjvhCOg9VpyyEdabmsRtu1O9nPJOT d4MnJ7ePjcUbpaztQ0UvPoPyfyp3w2+ZgVXqH89kZLV1xBG29/vX6VXytUfE5sfUrHwk tW3w== X-Gm-Message-State: AOJu0Yy53DUUYENEM64i/E0QcjWc7pdIH7F2UcnzUoyMdDpn3X7OvPwB h0i08cza/7VNU88IFybN4MrMuSkTa6Exm9qeNbJR9NqL7t34V/+LNRIpoXzbz4bAfuZesBAG4cc tVbxUVeM= X-Gm-Gg: AeBDieu8nppSij5IW3awVGX0C+JdERN8gY2MAKWpgmOKSpOdCa0Dt5Nq2/T8DCxcOKi Lx1aQQBFXhtqFo5L2i4rigoYNPer15/QskrdX01ai6TO/rAViBneQQc9LsuAHvzSMnNLQAUDKX8 9sMvsu8rji00Uw6h7UEpqVT1TWvLb3HlZmWggGaIYi/YDnzgyKoKOO7OHBSkt//FKEGklBYNC9b hruqtIkvBPfzdD9QEX57dhLTJR5AYUwbhFjErIneE9ZS+7UU71gTT8CPfXuqShot7Yax1544BfP xUMVnKK7XRv6QWB8kpSIxJWVPyTs2jaPTazgcF2dl9EiNnpvd59XqSOGORINqP/MK2tB2wRw7Eo Ob7RAHbKHCLH+UtWS03DooElGFNkm9p4di2/veFkCfTpSu0D0+UecX9j2DW8ixp3xRRyxLxgzw8 qALQ67Og4LgF21DIHqox5pjTJSspWIQgM0bD0bto5j X-Received: by 2002:a17:90a:d2c7:b0:35a:189b:43db with SMTP id 98e67ed59e1d1-364c2f97ceemr169653a91.4.1777501791829; Wed, 29 Apr 2026 15:29:51 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 46/48] fpu: Return struct from float128_unpack_canonical Date: Thu, 30 Apr 2026 08:24:43 +1000 Message-ID: <20260429222445.26301-47-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102a; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501809185154100 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 105 +++++++++++++++++------------------------------- 1 file changed, 37 insertions(+), 68 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index a9c91fb8a4..77585fa11f 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -1583,11 +1583,11 @@ static float64 float64r32_round_pack_canonical(Floa= tParts64 *p, return float64r32_pack_raw(p); } =20 -static void float128_unpack_canonical(FloatParts128 *p, float128 f, - float_status *s) +static FloatParts128 float128_unpack_canonical(float128 f, float_status *s) { - *p =3D float128_unpack_raw(f); - parts128_canonicalize(p, s, &float128_params); + FloatParts128 p =3D float128_unpack_raw(f); + parts128_canonicalize(&p, s, &float128_params); + return p; } =20 static float128 float128_round_pack_canonical(FloatParts128 *p, @@ -1872,11 +1872,9 @@ bfloat16 bfloat16_sub(bfloat16 a, bfloat16 b, float_= status *status) static float128 QEMU_FLATTEN float128_addsub(float128 a, float128 b, float_status *status, bool subtrac= t) { - FloatParts128 pa, pb, *pr; - - float128_unpack_canonical(&pa, a, status); - float128_unpack_canonical(&pb, b, status); - pr =3D parts128_addsub(&pa, &pb, status, subtract); + FloatParts128 pa =3D float128_unpack_canonical(a, status); + FloatParts128 pb =3D float128_unpack_canonical(b, status); + FloatParts128 *pr =3D parts128_addsub(&pa, &pb, status, subtract); =20 return float128_round_pack_canonical(pr, status); } @@ -1994,11 +1992,9 @@ bfloat16_mul(bfloat16 a, bfloat16 b, float_status *s= tatus) float128 QEMU_FLATTEN float128_mul(float128 a, float128 b, float_status *status) { - FloatParts128 pa, pb, *pr; - - float128_unpack_canonical(&pa, a, status); - float128_unpack_canonical(&pb, b, status); - pr =3D parts128_mul(&pa, &pb, status); + FloatParts128 pa =3D float128_unpack_canonical(a, status); + FloatParts128 pb =3D float128_unpack_canonical(b, status); + FloatParts128 *pr =3D parts128_mul(&pa, &pb, status); =20 return float128_round_pack_canonical(pr, status); } @@ -2255,12 +2251,10 @@ bfloat16 QEMU_FLATTEN bfloat16_muladd(bfloat16 a, b= float16 b, bfloat16 c, float128 QEMU_FLATTEN float128_muladd(float128 a, float128 b, float128 c, int flags, float_status *status) { - FloatParts128 pa, pb, pc, *pr; - - float128_unpack_canonical(&pa, a, status); - float128_unpack_canonical(&pb, b, status); - float128_unpack_canonical(&pc, c, status); - pr =3D parts128_muladd_scalbn(&pa, &pb, &pc, 0, flags, status); + FloatParts128 pa =3D float128_unpack_canonical(a, status); + FloatParts128 pb =3D float128_unpack_canonical(b, status); + FloatParts128 pc =3D float128_unpack_canonical(c, status); + FloatParts128 *pr =3D parts128_muladd_scalbn(&pa, &pb, &pc, 0, flags, = status); =20 /* Round before applying negate result. */ parts128_uncanon(pr, status, &float128_params, false); @@ -2383,11 +2377,9 @@ bfloat16_div(bfloat16 a, bfloat16 b, float_status *s= tatus) float128 QEMU_FLATTEN float128_div(float128 a, float128 b, float_status *status) { - FloatParts128 pa, pb, *pr; - - float128_unpack_canonical(&pa, a, status); - float128_unpack_canonical(&pb, b, status); - pr =3D parts128_div(&pa, &pb, status); + FloatParts128 pa =3D float128_unpack_canonical(a, status); + FloatParts128 pb =3D float128_unpack_canonical(b, status); + FloatParts128 *pr =3D parts128_div(&pa, &pb, status); =20 return float128_round_pack_canonical(pr, status); } @@ -2429,11 +2421,9 @@ float64 float64_rem(float64 a, float64 b, float_stat= us *status) =20 float128 float128_rem(float128 a, float128 b, float_status *status) { - FloatParts128 pa, pb, *pr; - - float128_unpack_canonical(&pa, a, status); - float128_unpack_canonical(&pb, b, status); - pr =3D parts128_modrem(&pa, &pb, NULL, status); + FloatParts128 pa =3D float128_unpack_canonical(a, status); + FloatParts128 pb =3D float128_unpack_canonical(b, status); + FloatParts128 *pr =3D parts128_modrem(&pa, &pb, NULL, status); =20 return float128_round_pack_canonical(pr, status); } @@ -2782,20 +2772,18 @@ bfloat16 float64_to_bfloat16(float64 a, float_statu= s *s) =20 float32 float128_to_float32(float128 a, float_status *s) { + FloatParts128 p128 =3D float128_unpack_canonical(a, s); FloatParts64 p64; - FloatParts128 p128; =20 - float128_unpack_canonical(&p128, a, s); parts_float_to_float_narrow(&p64, &p128, s); return float32_round_pack_canonical(&p64, s); } =20 float64 float128_to_float64(float128 a, float_status *s) { + FloatParts128 p128 =3D float128_unpack_canonical(a, s); FloatParts64 p64; - FloatParts128 p128; =20 - float128_unpack_canonical(&p128, a, s); parts_float_to_float_narrow(&p64, &p128, s); return float64_round_pack_canonical(&p64, s); } @@ -2876,9 +2864,8 @@ floatx80 float64_to_floatx80(float64 a, float_status = *s) =20 floatx80 float128_to_floatx80(float128 a, float_status *s) { - FloatParts128 p; + FloatParts128 p =3D float128_unpack_canonical(a, s); =20 - float128_unpack_canonical(&p, a, s); parts128_float_to_float(&p, s); return floatx80_round_pack_canonical(&p, s); } @@ -2921,9 +2908,8 @@ bfloat16 bfloat16_round_to_int(bfloat16 a, float_stat= us *s) =20 float128 float128_round_to_int(float128 a, float_status *s) { - FloatParts128 p; + FloatParts128 p =3D float128_unpack_canonical(a, s); =20 - float128_unpack_canonical(&p, a, s); parts128_round_to_int(&p, s->float_rounding_mode, 0, s, &float128_para= ms); return float128_round_pack_canonical(&p, s); } @@ -3046,18 +3032,14 @@ int64_t bfloat16_to_int64_scalbn(bfloat16 a, FloatR= oundMode rmode, int scale, static int32_t float128_to_int32_scalbn(float128 a, FloatRoundMode rmode, int scale, float_status *s) { - FloatParts128 p; - - float128_unpack_canonical(&p, a, s); + FloatParts128 p =3D float128_unpack_canonical(a, s); return parts128_float_to_sint(&p, rmode, scale, INT32_MIN, INT32_MAX, = s); } =20 static int64_t float128_to_int64_scalbn(float128 a, FloatRoundMode rmode, int scale, float_status *s) { - FloatParts128 p; - - float128_unpack_canonical(&p, a, s); + FloatParts128 p =3D float128_unpack_canonical(a, s); return parts128_float_to_sint(&p, rmode, scale, INT64_MIN, INT64_MAX, = s); } =20 @@ -3066,9 +3048,7 @@ static Int128 float128_to_int128_scalbn(float128 a, F= loatRoundMode rmode, { int flags =3D 0; Int128 r; - FloatParts128 p; - - float128_unpack_canonical(&p, a, s); + FloatParts128 p =3D float128_unpack_canonical(a, s); =20 switch (p.cls) { case float_class_snan: @@ -3512,18 +3492,14 @@ uint64_t bfloat16_to_uint64_scalbn(bfloat16 a, Floa= tRoundMode rmode, static uint32_t float128_to_uint32_scalbn(float128 a, FloatRoundMode rmode, int scale, float_status *s) { - FloatParts128 p; - - float128_unpack_canonical(&p, a, s); + FloatParts128 p =3D float128_unpack_canonical(a, s); return parts128_float_to_uint(&p, rmode, scale, UINT32_MAX, s); } =20 static uint64_t float128_to_uint64_scalbn(float128 a, FloatRoundMode rmode, int scale, float_status *s) { - FloatParts128 p; - - float128_unpack_canonical(&p, a, s); + FloatParts128 p =3D float128_unpack_canonical(a, s); return parts128_float_to_uint(&p, rmode, scale, UINT64_MAX, s); } =20 @@ -3532,9 +3508,7 @@ static Int128 float128_to_uint128_scalbn(float128 a, = FloatRoundMode rmode, { int flags =3D 0; Int128 r; - FloatParts128 p; - - float128_unpack_canonical(&p, a, s); + FloatParts128 p =3D float128_unpack_canonical(a, s); =20 switch (p.cls) { case float_class_snan: @@ -4210,11 +4184,9 @@ static float64 float64_minmax(float64 a, float64 b, = float_status *s, int flags) static float128 float128_minmax(float128 a, float128 b, float_status *s, int flags) { - FloatParts128 pa, pb, *pr; - - float128_unpack_canonical(&pa, a, s); - float128_unpack_canonical(&pb, b, s); - pr =3D parts128_minmax(&pa, &pb, s, flags); + FloatParts128 pa =3D float128_unpack_canonical(a, s); + FloatParts128 pb =3D float128_unpack_canonical(b, s); + FloatParts128 *pr =3D parts128_minmax(&pa, &pb, s, flags); =20 return float128_round_pack_canonical(pr, s); } @@ -4393,10 +4365,9 @@ FloatRelation bfloat16_compare_quiet(bfloat16 a, bfl= oat16 b, float_status *s) static FloatRelation QEMU_FLATTEN float128_do_compare(float128 a, float128 b, float_status *s, bool is_quiet) { - FloatParts128 pa, pb; + FloatParts128 pa =3D float128_unpack_canonical(a, s); + FloatParts128 pb =3D float128_unpack_canonical(b, s); =20 - float128_unpack_canonical(&pa, a, s); - float128_unpack_canonical(&pb, b, s); return parts128_compare(&pa, &pb, s, is_quiet); } =20 @@ -4470,9 +4441,8 @@ bfloat16 bfloat16_scalbn(bfloat16 a, int n, float_sta= tus *status) =20 float128 float128_scalbn(float128 a, int n, float_status *status) { - FloatParts128 p; + FloatParts128 p =3D float128_unpack_canonical(a, status); =20 - float128_unpack_canonical(&p, a, status); parts128_scalbn(&p, n, status); return float128_round_pack_canonical(&p, status); } @@ -4590,9 +4560,8 @@ bfloat16 QEMU_FLATTEN bfloat16_sqrt(bfloat16 a, float= _status *status) =20 float128 QEMU_FLATTEN float128_sqrt(float128 a, float_status *status) { - FloatParts128 p; + FloatParts128 p =3D float128_unpack_canonical(a, status); =20 - float128_unpack_canonical(&p, a, status); parts128_sqrt(&p, status, &float128_params); return float128_round_pack_canonical(&p, status); } --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501821; cv=none; d=zohomail.com; s=zohoarc; b=ATubhQWeLRRBVZ1E2C9GfQkK0bNcyPrgqKGqniCRsexFUmCHBhwnvHJnCm9o7Wlk0GYF8UMhvDkTPIltJIbsnl/jzN614peDyFS61f6NU0eFuRnRdiNW8AvTY/jvTttCYnI2wBb6pLSKVCfU4HApfnJxexwj49R52UHZFyYNBpk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501821; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=EOYX+NP5RHEsrA3crlpA7RJBv8PoGP3LgxhB7baMhkM=; b=BYV2hlKRJcaB1qbYzA+jJs+x8HGhkePvmkJ4mpIcAWjD1iJbhtgUZ7Polg4SyeYrPuI1wiT1pSg8NGTu7WjtL2ORG1pQgtDcKTdEI62Z1Nrn3opE0LgM/sM0Kgy887GRE/+3QVxeKZJfzYmQ631VLksCPbIdQlzN0fwW8NBVkgI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501821625140.3955616837734; Wed, 29 Apr 2026 15:30:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDPr-0007Ta-8Y; Wed, 29 Apr 2026 18:29:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDPp-0007HP-JI for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:29:57 -0400 Received: from mail-pj1-x1034.google.com ([2607:f8b0:4864:20::1034]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDPn-00070M-W4 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:29:57 -0400 Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-36146ae9dd4so180717a91.3 for ; Wed, 29 Apr 2026 15:29:55 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364bdf54203sm630479a91.7.2026.04.29.15.29.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:29:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501794; x=1778106594; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=EOYX+NP5RHEsrA3crlpA7RJBv8PoGP3LgxhB7baMhkM=; b=M2l7GCNU2XEDURprpeQHccJM5SSrYXE3NtmuUooTPefa0RGxmySHlz3/IMF6JkjRPg dyYqQ7715k6Ou/erD/cX3lwhGGHCrKGY81cBvlGPfELKXQNDervESBKRKaqCGVTQjawE ZnIiWrs/nkNjn7cg6+aEodEom5hWS6JXWIUEctRda52APbDCXJaG6nmznBjYyORAXaq0 HPKcOstBPUkTMaspmdr8bIhEAGBOg8di/iP89yNaolywAjmERVqE3hCi0jY1F8wl+OBf V2kVxV8QTxeNehNW4JO33TAup3qGmm79VnN3IOG3X/aeCSd+xm6KUyp8dFWhnNQ2poUp KNMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501794; x=1778106594; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=EOYX+NP5RHEsrA3crlpA7RJBv8PoGP3LgxhB7baMhkM=; b=HS8+FNLgMgyjDssCAn+wRO8HAWcU/b6fUziv/yFCa5sJc1IEV08pjd0l+Y1mqYIA1f uIObg5biFj2AvYXdIiAm6yLI/2KE6cVGOcLS5ACUoqS8kxehJxdpSMuoAyOy92Rw915k vVt1QC/OSHNpW/1zGuTHL3FW1tyW6E6vOQneDmiRNl8DREuvTMrvTjaghphiivcBY7XC l2fXo3HkGSCSEnbk7HhP2Inc2yLzn7kSX/zeJkwE54WG7cyV6TQY5wAM2t2AOdeU1kr3 TmYwU4dV6I1UNXHokXHspQ1a0DJhpEmaFce3cUWOjDyGpj1onNLXDalh765WDEdFMCqS VWWA== X-Gm-Message-State: AOJu0Yztf1E669nOFdc3mBX/CW3FCt3ARJNrh+sWpb8ZJYVnnbQ0a40N EmsgkSqcysz/IM4zcURfdwQWGU6LdeWfJ0y3tVMaoJwaH0ZA0aKnvhQe/X6fil3dfxsXXm7iVlh rE6nR88M= X-Gm-Gg: AeBDievL07hpqRbIcsd7oDeTOwa5ZUem1E/2CqYSfz6Lr0Lqgmn9OObXfjWcqiCh4BS g4IDPErCvia8eJwSjR2PomwLx9ETX3tR+GB1Z3QfN5Qh0iDI58rxOtIaTW6UIPbR94HSM3OzcN+ pL0lzIsJgyHcuFSof9Ee2XqAiSTai6uoRXhqBIRUa/OmxOiFDZheC7BSAgTXt7u5AZgT8v99wIv g+5qtUCWBLmnCZs9vegYX+5oERNNYIppux4EE9J2Slf+1+ngvqhvghW3qvHpwsYQmxifDccX0KK AY/bH9CcBn6Z9GViLjwUEYYj4tiIsV3mBmBwGmfwpTtIa+CwJwXZz8YnTB9tLndDxBjOGRBl8Lp oDMTHtUhdLOeFMKlpzsY7KM7ZenWeFTRx/15QEdSKj8LUgcQoG90SpD3yuL6SnWHxyUZ69hXfpZ xAFV/RZKunOGiDUVrPbzt//XTwo7p2CDAp1Awfinnp X-Received: by 2002:a17:90b:3909:b0:364:7464:12a3 with SMTP id 98e67ed59e1d1-364c2f40d6dmr245460a91.10.1777501794336; Wed, 29 Apr 2026 15:29:54 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 47/48] fpu: Change parts_float_to_float_narrow to parts128_to_parts64 Date: Thu, 30 Apr 2026 08:24:44 +1000 Message-ID: <20260429222445.26301-48-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1034; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1034.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501822460158500 Rename and return FloatParts64 structure. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 77585fa11f..99f0036d0d 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -2563,29 +2563,31 @@ static void parts128_float_to_float(FloatParts128 *= a, float_status *s) } } =20 -static void parts_float_to_float_narrow(FloatParts64 *a, FloatParts128 *b, - float_status *s) +static FloatParts64 parts128_to_parts64(FloatParts128 *b, float_status *s) { - a->cls =3D b->cls; - a->sign =3D b->sign; - a->exp =3D b->exp; + FloatParts64 r =3D { + .cls =3D b->cls, + .sign =3D b->sign, + .exp =3D b->exp, + }; =20 - switch (a->cls) { + switch (r.cls) { case float_class_denormal: float_raise(float_flag_input_denormal_used, s); /* fall through */ case float_class_normal: - frac64_truncjam(a, b); + frac64_truncjam(&r, b); break; case float_class_snan: case float_class_qnan: /* Discard the low bits of the NaN. */ - a->frac =3D b->frac_hi; - parts64_return_nan(a, s); + r.frac =3D b->frac_hi; + parts64_return_nan(&r, s); break; default: break; } + return r; } =20 static void parts_float_to_float_widen(FloatParts128 *a, FloatParts64 *b, @@ -2773,18 +2775,16 @@ bfloat16 float64_to_bfloat16(float64 a, float_statu= s *s) float32 float128_to_float32(float128 a, float_status *s) { FloatParts128 p128 =3D float128_unpack_canonical(a, s); - FloatParts64 p64; + FloatParts64 p64 =3D parts128_to_parts64(&p128, s); =20 - parts_float_to_float_narrow(&p64, &p128, s); return float32_round_pack_canonical(&p64, s); } =20 float64 float128_to_float64(float128 a, float_status *s) { FloatParts128 p128 =3D float128_unpack_canonical(a, s); - FloatParts64 p64; + FloatParts64 p64 =3D parts128_to_parts64(&p128, s); =20 - parts_float_to_float_narrow(&p64, &p128, s); return float64_round_pack_canonical(&p64, s); } =20 @@ -2812,7 +2812,7 @@ float32 floatx80_to_float32(floatx80 a, float_status = *s) FloatParts128 p128; =20 if (floatx80_unpack_canonical(&p128, a, s)) { - parts_float_to_float_narrow(&p64, &p128, s); + p64 =3D parts128_to_parts64(&p128, s); } else { parts64_default_nan(&p64, s); } @@ -2825,7 +2825,7 @@ float64 floatx80_to_float64(floatx80 a, float_status = *s) FloatParts128 p128; =20 if (floatx80_unpack_canonical(&p128, a, s)) { - parts_float_to_float_narrow(&p64, &p128, s); + p64 =3D parts128_to_parts64(&p128, s); } else { parts64_default_nan(&p64, s); } --=20 2.43.0 From nobody Sat May 30 19:23:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1777501816; cv=none; d=zohomail.com; s=zohoarc; b=FJUID4zGJRMCFmiyVGz/u68TpUbQ6LoY5vm1PSy+sxpABsVxaTx3jZb4ZbwAvIKE1ZgyCZO68yJcxI6jqzIleUNbeaCnFL5eEOv1T7iQBShf8aCwYPG4pnDyIOB4Q1H5Of8gI3Sj2UoRZ6BBH4MdGpAqBEIs1fRj0/uvcvXxMwc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777501816; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=s6tzMLeDV39/rK6I0d/m92UEPKLHUSC6SYfF3BneVk4=; b=De9YuKBBWoPrSblAsVH5yh5Qcm3VW4nNU9Q6Kr/ORnnP5IXXU7s52nWviiMv9+seQmwk7e9m6KXkr4oaEpMt+V+eyBiGtjOx+GhaPNXuQqS1JQ5wzmXoQPv2GT0OxTm4wS8vjVB6Rs9qDsF98ilbXvq+fQrJFHLsDQYOKlaqvxo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777501816332535.16676677341; Wed, 29 Apr 2026 15:30:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wIDPs-0007bX-OM; Wed, 29 Apr 2026 18:30:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wIDPr-0007XJ-SI for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:29:59 -0400 Received: from mail-pj1-x1034.google.com ([2607:f8b0:4864:20::1034]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wIDPq-00070e-8j for qemu-devel@nongnu.org; Wed, 29 Apr 2026 18:29:59 -0400 Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-362e30526f8so87451a91.3 for ; Wed, 29 Apr 2026 15:29:57 -0700 (PDT) Received: from stoup.. ([180.233.125.15]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-364bdf54203sm630479a91.7.2026.04.29.15.29.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 15:29:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777501797; x=1778106597; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=s6tzMLeDV39/rK6I0d/m92UEPKLHUSC6SYfF3BneVk4=; b=XtRgfTuhxGvzMPNjzTuOMLqSsh2zla1UBRqNrl2/4tiwgpsJCWES2n09P88YPvfsuU 5kun6RsJHURT0v6GqHzioKogV7h5jd/844m5lg/45G65m8b1iSbLPYn0yFYOtTyocnPn h/vAg23T0aRwUCDW37jlXPkezt2if284K756vNL3dE565vPvDvnJJjooO583oo6qppYf nQQDr4/gyx03xOnqLD4iODCR0SFw4EDXn6ySykW2QiHtQ2ZOXXSkdk0LGcFQ0iwgeP70 CTF0vB9eH4Wloq67ieU2IjzTyXFDUo/L4v+4ndp4PfcB9/hNRJuOrXVktCFwzenRKvAb iTFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777501797; x=1778106597; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=s6tzMLeDV39/rK6I0d/m92UEPKLHUSC6SYfF3BneVk4=; b=q1r+577MqcyqXeMpl8hxn+RXGdEvPRDO7zP7D91rka2F/x82uvYvpw3NSSVUx12eFo kOcqyW9NLauSdDO/hoTOPbztly8Hb+h4/5y00Qv4FIYH/jUj9X+70yirMEr2HGkUjuxD B3Zu7xkJPm6VoKTILuST7jFNMDHXs1quBsqoLn3dNUU5tvGoc85vL9hcmpqewngFyrzN SJ4uaIZ6Sp0taQDdVVZCH6p8m6xdAtzJGu4VbEI6bAlGoTGDo0fuW9I7ARgOLHZ96XUA A7OQ9IwcOfEtbQzbS//Ylg7auV8mWIE5Qyoig6fkKks52CJ4TzwTJ4rE9sHFXH1gw4uz W/iQ== X-Gm-Message-State: AOJu0YwUv0lphi2AiY9UstrMFde/C1rrBH2vazIa2me4aCnrXjsj77jH 7vNP5O/aKe2fJR3xdqW8XdJqpc0YeV86FC+O0KDxkAzgTxN57wnih+F+YpQmQsyzsXSgR7n1PE5 ca5d1sw4= X-Gm-Gg: AeBDiesd41J+BKK6ues6v8Eq+WLOkEPi8zzr2aPgfwGv1aJLB/8JW1fQ5Z+cy6W/h78 GxMzZUQVGwF0o9mu7Y2Rgv9JgrEZheEZQV6Ot7mcSu0asKXOwLVY83xu2Ek2SERL+6Zlj8TE0uZ qax0WuZFZCcQ2rJmtrGAgJMEFuoFz6o+/Aey5g5chP1vW5gh5DSru98BlfpgGTCmQSG18ZZeG27 S8HVwYne+rracBiVo0G7N8IbhCdo2QI1Xg0uBnWTzoA0LuilzlNCTsyqeBUzGHRyKESDE8hXpuA HrUL1BKEnMKpPc6uKVbV0PUTHaDwPm9qspAc+36+E+wHjo2NtHYtBCKw/hXO2B7CeLv9P7OgqlG HhkxMIH7G59DrgmvUzbY7QBowJ/kQkXWm7EyjEM9nVkHIRVkYqjDlg6OqiLFyk5nqQOxwQvmkF5 vHWrTEaMCVPybKHdzlTyUJMIF8ZBxXVNekm4lal9qsTg3kE2hkpN8= X-Received: by 2002:a17:90a:d00f:b0:364:a6a4:596e with SMTP id 98e67ed59e1d1-364c313c536mr155361a91.24.1777501796789; Wed, 29 Apr 2026 15:29:56 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 48/48] fpu: Change parts_float_to_float_widen to parts64_to_parts128 Date: Thu, 30 Apr 2026 08:24:45 +1000 Message-ID: <20260429222445.26301-49-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429222445.26301-1-richard.henderson@linaro.org> References: <20260429222445.26301-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1034; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1034.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1777501819380154100 Rename and return FloatParts128 structure. Use switch instead of 2 ifs. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- fpu/softfloat.c | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 99f0036d0d..5d58caf5ea 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -2590,20 +2590,27 @@ static FloatParts64 parts128_to_parts64(FloatParts1= 28 *b, float_status *s) return r; } =20 -static void parts_float_to_float_widen(FloatParts128 *a, FloatParts64 *b, - float_status *s) +static FloatParts128 parts64_to_parts128(FloatParts64 *b, float_status *s) { - a->cls =3D b->cls; - a->sign =3D b->sign; - a->exp =3D b->exp; - frac64_widen(a, b); + FloatParts128 r =3D { + .cls =3D b->cls, + .sign =3D b->sign, + .exp =3D b->exp, + .frac_hi =3D b->frac, + }; =20 - if (is_nan(a->cls)) { - parts128_return_nan(a, s); - } - if (a->cls =3D=3D float_class_denormal) { + switch (r.cls) { + case float_class_qnan: + case float_class_snan: + parts128_return_nan(&r, s); + break; + case float_class_denormal: float_raise(float_flag_input_denormal_used, s); + break; + default: + break; } + return r; } =20 float8_e4m3 float4_e2m1_to_float8_e4m3(float4_e2m1 a, float_status *s) @@ -2791,18 +2798,16 @@ float64 float128_to_float64(float128 a, float_statu= s *s) float128 float32_to_float128(float32 a, float_status *s) { FloatParts64 p64 =3D float32_unpack_canonical(a, s); - FloatParts128 p128; + FloatParts128 p128 =3D parts64_to_parts128(&p64, s); =20 - parts_float_to_float_widen(&p128, &p64, s); return float128_round_pack_canonical(&p128, s); } =20 float128 float64_to_float128(float64 a, float_status *s) { FloatParts64 p64 =3D float64_unpack_canonical(a, s); - FloatParts128 p128; + FloatParts128 p128 =3D parts64_to_parts128(&p64, s); =20 - parts_float_to_float_widen(&p128, &p64, s); return float128_round_pack_canonical(&p128, s); } =20 @@ -2847,18 +2852,16 @@ float128 floatx80_to_float128(floatx80 a, float_sta= tus *s) floatx80 float32_to_floatx80(float32 a, float_status *s) { FloatParts64 p64 =3D float32_unpack_canonical(a, s); - FloatParts128 p128; + FloatParts128 p128 =3D parts64_to_parts128(&p64, s); =20 - parts_float_to_float_widen(&p128, &p64, s); return floatx80_round_pack_canonical(&p128, s); } =20 floatx80 float64_to_floatx80(float64 a, float_status *s) { FloatParts64 p64 =3D float64_unpack_canonical(a, s); - FloatParts128 p128; + FloatParts128 p128 =3D parts64_to_parts128(&p64, s); =20 - parts_float_to_float_widen(&p128, &p64, s); return floatx80_round_pack_canonical(&p128, s); } =20 --=20 2.43.0