Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2217121/?format=api
{ "id": 2217121, "url": "http://patchwork.ozlabs.org/api/patches/2217121/?format=api", "web_url": "http://patchwork.ozlabs.org/project/glibc/patch/20260327170155.683964-1-adhemerval.zanella@linaro.org/", "project": { "id": 41, "url": "http://patchwork.ozlabs.org/api/projects/41/?format=api", "name": "GNU C Library", "link_name": "glibc", "list_id": "libc-alpha.sourceware.org", "list_email": "libc-alpha@sourceware.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260327170155.683964-1-adhemerval.zanella@linaro.org>", "list_archive_url": null, "date": "2026-03-27T17:00:55", "name": "aarch64: Use target attributes to enable SVE in math functions", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "b2d2651c1d1361c6ac70ce44cf5ee3dbcd222c33", "submitter": { "id": 66065, "url": "http://patchwork.ozlabs.org/api/people/66065/?format=api", "name": "Adhemerval Zanella Netto", "email": "adhemerval.zanella@linaro.org" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/glibc/patch/20260327170155.683964-1-adhemerval.zanella@linaro.org/mbox/", "series": [ { "id": 497800, "url": "http://patchwork.ozlabs.org/api/series/497800/?format=api", "web_url": "http://patchwork.ozlabs.org/project/glibc/list/?series=497800", "date": "2026-03-27T17:00:55", "name": "aarch64: Use target attributes to enable SVE in math functions", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/497800/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2217121/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2217121/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "libc-alpha@sourceware.org" ], "Delivered-To": [ "patchwork-incoming@legolas.ozlabs.org", "libc-alpha@sourceware.org" ], "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=wp9qFCBU;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org;\n receiver=patchwork.ozlabs.org)", "sourceware.org;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=wp9qFCBU", "sourceware.org;\n dmarc=pass (p=none dis=none) header.from=linaro.org", "sourceware.org; spf=pass smtp.mailfrom=linaro.org", "server2.sourceware.org;\n arc=none smtp.remote-ip=2607:f8b0:4864:20::a2c" ], "Received": [ "from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fj6QS1hg6z1y1P\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 28 Mar 2026 04:02:40 +1100 (AEDT)", "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 0FC624BA902C\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 27 Mar 2026 17:02:38 +0000 (GMT)", "from mail-vk1-xa2c.google.com (mail-vk1-xa2c.google.com\n [IPv6:2607:f8b0:4864:20::a2c])\n by sourceware.org (Postfix) with ESMTPS id 629D24BA23C6\n for <libc-alpha@sourceware.org>; Fri, 27 Mar 2026 17:02:07 +0000 (GMT)", "by mail-vk1-xa2c.google.com with SMTP id\n 71dfb90a1353d-56ce54c8c82so894500e0c.2\n for <libc-alpha@sourceware.org>; Fri, 27 Mar 2026 10:02:07 -0700 (PDT)", "from ubuntu-vm.. ([177.76.134.101]) by smtp.gmail.com with ESMTPSA\n id\n 71dfb90a1353d-56d31d81edbsm9141084e0c.15.2026.03.27.10.01.59\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Fri, 27 Mar 2026 10:02:01 -0700 (PDT)" ], "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 sourceware.org 0FC624BA902C", "OpenDKIM Filter v2.11.0 sourceware.org 629D24BA23C6" ], "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 629D24BA23C6", "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 629D24BA23C6", "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774630927; cv=none;\n b=CQ/UvKXLkaCx8azdvjxbS37butpKuyDpMrQEm5mcADzvi+47DTW6Kb/TZRdQQZ5DfIP55KVMnqVFykDfkRb5/MSru2CyTj76NRcQP26M7fNYXzzDizCfaJUre8+xLTyfP54RQFyYxRY7jJmtMKRKUzk2JdZDCNf1Ia3l6TBgYyY=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1774630927; c=relaxed/simple;\n bh=h/L31buvL+EJVHKyO9HnzLvH+YQs1gAsmhwnfL3qPG8=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=QxrRetmKm+0f7dyF8rR8VnpIMNKX4nfcv5ew4xaWGwMZR8lfPF3nVwMrh34qns0liW09AWNVdM2qxwnfpVyaov/KRuiVl0FnDlcKNF/wQZl5VoVnzKgk7GSSvCHrpqEVi9HSTyRIvJcmKaBkwLE8UMvQaXa0KOIz+D4jYfAZ1Ss=", "ARC-Authentication-Results": "i=1; server2.sourceware.org", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1774630926; x=1775235726; darn=sourceware.org;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:from:to:cc:subject:date:message-id:reply-to;\n bh=XkZvM38VX/aQ5few0QP1oux3HRRrjZpRT0UVxFfd50s=;\n b=wp9qFCBU1RJZGGVW306ZtAKvQrazB8R9eZ5uks8vRepfE/NP0KyNE45uOghGRjOrB4\n 0+GFkSk/XatV82fGCzZStXg2rqKTwgbRh22hzSRJAwBDYFp/e6hE0AHH3VJ8CoCT9Xh+\n RASC5W6XswmcORTkxb9PeuTfjPYxcztfvGJ8PFg1wcalICvfTeMlvnf+7k+uchBEo6e0\n bReTUkQadf695eT6x7YxyEgiplQ/cUgbjTNUkhmmxeJcT0wEI6KLUyMWk5ScS5M45Xf6\n AB5CtOeC4MNoDZuMmjkk4oWJ8vOtjXxr2j56sdsBbq5PgtKXXLUrk8VkZzmpGg0I2VOW\n cF6A==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1774630926; x=1775235726;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=XkZvM38VX/aQ5few0QP1oux3HRRrjZpRT0UVxFfd50s=;\n b=NaRtNKRqA+Gx21JgxYxkhH7Vq5+NfPATOHkVcaNy72RIJUJNXerSdtthWpQXTtJlM5\n FflWcmu9SMwhRX6GV3zrfgu6BezR3Un+mubh8bra4CB6X6Tjn1QxFyfd8iTg1TQibWDJ\n NZT/s0GRvg1rVborkrb3EQeCBnGpUt4+mQgnHf8hi6g0MXaQiDnxNomOqbMfiqUZqyyX\n Mc8qPzw1shknZgVpz7mecpPY66Gjk2Elo4MW47iFby+Ej9Zw30lmt6OEwo4xcEFKFzRA\n jHjMcXXw8GP/FI70h7Wz8GOMnw6ntTCK7gkjj78s0wJqa86hJsn5Mf3FGtBR/+zhVjv2\n LRSw==", "X-Gm-Message-State": "AOJu0Yx1f9QPtFanwJiXc53A53T9TgTIv0hfcu2ASxWP6mL1ZMmebqQM\n xQR3XcV7MAYyhH0TlCsN87LBEcsi8u+6mUcQ3Loee9R97m1vysljf7Rq57q/33l5+d6HiX4lW6t\n o7ncw", "X-Gm-Gg": "ATEYQzz/8qkms8RkwueoXZlA1jlgeCnD/nPkuE8Jgl3TSNYxfX8VAuj7pfig6KVBeOV\n 8Y/tsnXkWBJ3dgJnTcEbaTCRmQh81BV48QQTIRg/D6h4ofu4T8D9bzWjLVmheAZnfpLrQbw4nyz\n rz/BAsqfgk28QV7X4X9d+fqbXEBm4QduZpM3BtWQbbrFAkbRfXgg+EDeMBiOzyb0dj2Quohj/pd\n aZyoU3lA93I3JDQUiKFsrl0e8NYwEQX1zv8noLBwsz0RNUTLZZqGjxb9Va9x8FnuDf8BPPYYVW7\n 9r8NxwA+nmYV1aloF4wnZNcVDynKX0JiWhZTTQenJ7t56dc0SZOBqCQ/6CeFyS2Q3U/irpPS4oR\n A0VheG9TjA9HObqgenXsFQrlEfxICjJQAMBtEraur9i+v1l6An+XoPVoY5VT8NxvRwXHKFjiSlZ\n lcRwqgi1/DQYJiAMm42k0jQ80M47taSFU74+eI", "X-Received": "by 2002:a05:6122:2a45:b0:56a:ef89:34fc with SMTP id\n 71dfb90a1353d-56d4a500e73mr1454210e0c.6.1774630922448;\n Fri, 27 Mar 2026 10:02:02 -0700 (PDT)", "From": "Adhemerval Zanella <adhemerval.zanella@linaro.org>", "To": "libc-alpha@sourceware.org", "Cc": "Yury Khrustalev <yury.khrustalev@arm.com>,\n Wilco Dijkstra <wilco.dijkstra@arm.com>", "Subject": "[PATCH] aarch64: Use target attributes to enable SVE in math\n functions", "Date": "Fri, 27 Mar 2026 17:00:55 +0000", "Message-ID": "<20260327170155.683964-1-adhemerval.zanella@linaro.org>", "X-Mailer": "git-send-email 2.43.0", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-BeenThere": "libc-alpha@sourceware.org", "X-Mailman-Version": "2.1.30", "Precedence": "list", "List-Id": "Libc-alpha mailing list <libc-alpha.sourceware.org>", "List-Unsubscribe": "<https://sourceware.org/mailman/options/libc-alpha>,\n <mailto:libc-alpha-request@sourceware.org?subject=unsubscribe>", "List-Archive": "<https://sourceware.org/pipermail/libc-alpha/>", "List-Post": "<mailto:libc-alpha@sourceware.org>", "List-Help": "<mailto:libc-alpha-request@sourceware.org?subject=help>", "List-Subscribe": "<https://sourceware.org/mailman/listinfo/libc-alpha>,\n <mailto:libc-alpha-request@sourceware.org?subject=subscribe>", "Errors-To": "libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org" }, "content": "Instead of relying on global compiler flags ('-mcpu=generic+sve\n-march=armv8-a+sve') in the Makefile, this patch applies SVE\narchitecture requirements directly at the function level.\n\nA new SVE_FUNCTION macro (mapping to\n__attribute__((target(\"+sve\")))) and corresponding pragmas\n(OPTIONS_PUSH_SVE / OPTIONS_POP) are introduced in sv_math.h.\nThese are then applied across all SVE-specific math implementations in\nsysdeps/aarch64/fpu/.\n\nThis allows building glibc with a -march without the need to\nalso specify '+sve' (not an usual target, but it helps on testing\nsome target without the need to rebuild the toolchain).\n\nChecked on aarch64-linux-gnu.\n---\n sysdeps/aarch64/fpu/Makefile | 2 +-\n sysdeps/aarch64/fpu/acos_sve.c | 2 +-\n sysdeps/aarch64/fpu/acosf_sve.c | 2 +-\n sysdeps/aarch64/fpu/acosh_sve.c | 4 ++--\n sysdeps/aarch64/fpu/acoshf_sve.c | 4 ++--\n sysdeps/aarch64/fpu/acospi_sve.c | 2 +-\n sysdeps/aarch64/fpu/acospif_sve.c | 2 +-\n sysdeps/aarch64/fpu/asin_sve.c | 2 +-\n sysdeps/aarch64/fpu/asinf_sve.c | 2 +-\n sysdeps/aarch64/fpu/asinh_sve.c | 6 ++---\n sysdeps/aarch64/fpu/asinhf_sve.c | 4 ++--\n sysdeps/aarch64/fpu/asinpi_sve.c | 2 +-\n sysdeps/aarch64/fpu/asinpif_sve.c | 2 +-\n sysdeps/aarch64/fpu/atan2_sve.c | 8 +++----\n sysdeps/aarch64/fpu/atan2f_sve.c | 8 +++----\n sysdeps/aarch64/fpu/atan2pi_sve.c | 8 +++----\n sysdeps/aarch64/fpu/atan2pif_sve.c | 8 +++----\n sysdeps/aarch64/fpu/atan_sve.c | 2 +-\n sysdeps/aarch64/fpu/atanf_sve.c | 2 +-\n sysdeps/aarch64/fpu/atanh_sve.c | 4 ++--\n sysdeps/aarch64/fpu/atanhf_sve.c | 4 ++--\n sysdeps/aarch64/fpu/atanpi_sve.c | 2 +-\n sysdeps/aarch64/fpu/atanpif_sve.c | 2 +-\n sysdeps/aarch64/fpu/cbrt_sve.c | 6 ++---\n sysdeps/aarch64/fpu/cbrtf_sve.c | 6 ++---\n sysdeps/aarch64/fpu/cos_sve.c | 4 ++--\n sysdeps/aarch64/fpu/cosf_sve.c | 4 ++--\n sysdeps/aarch64/fpu/cosh_sve.c | 6 ++---\n sysdeps/aarch64/fpu/coshf_sve.c | 4 ++--\n sysdeps/aarch64/fpu/cospi_sve.c | 2 +-\n sysdeps/aarch64/fpu/cospif_sve.c | 2 +-\n sysdeps/aarch64/fpu/erf_sve.c | 2 +-\n sysdeps/aarch64/fpu/erfc_sve.c | 2 +-\n sysdeps/aarch64/fpu/erfcf_sve.c | 2 +-\n sysdeps/aarch64/fpu/erff_sve.c | 2 +-\n sysdeps/aarch64/fpu/exp10_sve.c | 4 ++--\n sysdeps/aarch64/fpu/exp10f_sve.c | 6 ++---\n sysdeps/aarch64/fpu/exp10m1_sve.c | 4 ++--\n sysdeps/aarch64/fpu/exp10m1f_sve.c | 2 +-\n sysdeps/aarch64/fpu/exp2_sve.c | 4 ++--\n sysdeps/aarch64/fpu/exp2f_sve.c | 6 ++---\n sysdeps/aarch64/fpu/exp2m1_sve.c | 4 ++--\n sysdeps/aarch64/fpu/exp2m1f_sve.c | 2 +-\n sysdeps/aarch64/fpu/exp_sve.c | 4 ++--\n sysdeps/aarch64/fpu/expf_sve.c | 8 +++----\n sysdeps/aarch64/fpu/expm1_sve.c | 4 ++--\n sysdeps/aarch64/fpu/expm1f_sve.c | 2 +-\n sysdeps/aarch64/fpu/hypot_sve.c | 5 ++--\n sysdeps/aarch64/fpu/hypotf_sve.c | 6 ++---\n sysdeps/aarch64/fpu/log10_sve.c | 6 ++---\n sysdeps/aarch64/fpu/log10f_sve.c | 6 ++---\n sysdeps/aarch64/fpu/log10p1_sve.c | 4 ++--\n sysdeps/aarch64/fpu/log10p1f_sve.c | 4 ++--\n sysdeps/aarch64/fpu/log1p_sve.c | 4 ++--\n sysdeps/aarch64/fpu/log1pf_sve.c | 4 ++--\n sysdeps/aarch64/fpu/log2_sve.c | 6 ++---\n sysdeps/aarch64/fpu/log2f_sve.c | 6 ++---\n sysdeps/aarch64/fpu/log2p1_sve.c | 4 ++--\n sysdeps/aarch64/fpu/log2p1f_sve.c | 4 ++--\n sysdeps/aarch64/fpu/log_sve.c | 6 ++---\n sysdeps/aarch64/fpu/logf_sve.c | 6 ++---\n sysdeps/aarch64/fpu/poly_sve_generic.h | 4 ++++\n sysdeps/aarch64/fpu/pow_sve.c | 23 ++++++++++---------\n sysdeps/aarch64/fpu/powf_sve.c | 17 +++++++-------\n sysdeps/aarch64/fpu/rsqrt_sve.c | 6 ++---\n sysdeps/aarch64/fpu/rsqrtf_sve.c | 6 ++---\n sysdeps/aarch64/fpu/sin_sve.c | 4 ++--\n sysdeps/aarch64/fpu/sinf_sve.c | 4 ++--\n sysdeps/aarch64/fpu/sinh_sve.c | 6 ++---\n sysdeps/aarch64/fpu/sinhf_sve.c | 4 ++--\n sysdeps/aarch64/fpu/sinpi_sve.c | 2 +-\n sysdeps/aarch64/fpu/sinpif_sve.c | 2 +-\n sysdeps/aarch64/fpu/sv_exp_special_inline.h | 2 +-\n sysdeps/aarch64/fpu/sv_expf_inline.h | 2 +-\n sysdeps/aarch64/fpu/sv_expf_special_inline.h | 4 ++--\n sysdeps/aarch64/fpu/sv_expm1f_inline.h | 2 +-\n sysdeps/aarch64/fpu/sv_log1p_inline.h | 2 +-\n sysdeps/aarch64/fpu/sv_log1pf_inline.h | 2 +-\n sysdeps/aarch64/fpu/sv_math.h | 17 ++++++++++++++\n sysdeps/aarch64/fpu/tan_sve.c | 4 ++--\n sysdeps/aarch64/fpu/tanf_sve.c | 4 ++--\n sysdeps/aarch64/fpu/tanh_sve.c | 4 ++--\n sysdeps/aarch64/fpu/tanhf_sve.c | 6 ++---\n sysdeps/aarch64/fpu/tanpi_sve.c | 2 +-\n sysdeps/aarch64/fpu/tanpif_sve.c | 2 +-\n .../aarch64/fpu/test-double-sve-wrappers.c | 6 +++--\n sysdeps/aarch64/fpu/test-float-sve-wrappers.c | 6 +++--\n 87 files changed, 209 insertions(+), 181 deletions(-)", "diff": "diff --git a/sysdeps/aarch64/fpu/Makefile b/sysdeps/aarch64/fpu/Makefile\nindex 998fc08d435..9be2b890881 100644\n--- a/sysdeps/aarch64/fpu/Makefile\n+++ b/sysdeps/aarch64/fpu/Makefile\n@@ -65,7 +65,7 @@ endif\n # add a generic -mcpu and -march with SVE enabled. Also use a tune for a modern\n # SVE core.\n \n-sve-cflags = -mcpu=generic+sve -march=armv8-a+sve -mtune=neoverse-v1\n+sve-cflags = -mtune=neoverse-v1\n \n ifeq ($(build-mathvec),yes)\n bench-libmvec = $(addprefix float-advsimd-,$(float-advsimd-funcs)) \\\ndiff --git a/sysdeps/aarch64/fpu/acos_sve.c b/sysdeps/aarch64/fpu/acos_sve.c\nindex 330a964c4b9..3e2145f8dea 100644\n--- a/sysdeps/aarch64/fpu/acos_sve.c\n+++ b/sysdeps/aarch64/fpu/acos_sve.c\n@@ -54,7 +54,7 @@ static const struct data\n The largest observed error in this region is 1.50 ulp:\n _ZGVsMxv_acos (0x1.252a2cf3fb9acp-1) got 0x1.ec1a46aa82901p-1\n \t\t\t\t want 0x1.ec1a46aa829p-1. */\n-svfloat64_t SV_NAME_D1 (acos) (svfloat64_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (acos) (svfloat64_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n svbool_t ptrue = svptrue_b64 ();\ndiff --git a/sysdeps/aarch64/fpu/acosf_sve.c b/sysdeps/aarch64/fpu/acosf_sve.c\nindex 5989af8dd68..c9b1b47a109 100644\n--- a/sysdeps/aarch64/fpu/acosf_sve.c\n+++ b/sysdeps/aarch64/fpu/acosf_sve.c\n@@ -51,7 +51,7 @@ static const struct data\n The largest observed error in this region is 1.32 ulps,\n _ZGVsMxv_acosf (0x1.15ba56p-1) got 0x1.feb33p-1\n \t\t\t\t want 0x1.feb32ep-1. */\n-svfloat32_t SV_NAME_F1 (acos) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (acos) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/acosh_sve.c b/sysdeps/aarch64/fpu/acosh_sve.c\nindex 6d996e3d36c..e81af94c787 100644\n--- a/sysdeps/aarch64/fpu/acosh_sve.c\n+++ b/sysdeps/aarch64/fpu/acosh_sve.c\n@@ -35,7 +35,7 @@ const static struct data\n \n Right before returning we check if x is infinity or if x is lower than 1,\n in which case we return infinity or NaN. */\n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_case (svfloat64_t x, svfloat64_t xm1, svfloat64_t y, svbool_t special,\n \t svbool_t pg, const struct data *d)\n {\n@@ -54,7 +54,7 @@ special_case (svfloat64_t x, svfloat64_t xm1, svfloat64_t y, svbool_t special,\n argument to log1p falls in the k=0 interval, i.e. x close to 1:\n SV_NAME_D1 (acosh)(0x1.1e80ed12f0ad1p+0) got 0x1.ef0cee7c33ce1p-2\n \t\t\t\t\t want 0x1.ef0cee7c33ce4p-2. */\n-svfloat64_t SV_NAME_D1 (acosh) (svfloat64_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (acosh) (svfloat64_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/acoshf_sve.c b/sysdeps/aarch64/fpu/acoshf_sve.c\nindex e133db5490b..f9b0ed5a3b6 100644\n--- a/sysdeps/aarch64/fpu/acoshf_sve.c\n+++ b/sysdeps/aarch64/fpu/acoshf_sve.c\n@@ -23,7 +23,7 @@\n #define One 0x3f800000\n #define Thres 0x20000000 /* asuint(0x1p64) - One. */\n \n-static svfloat32_t NOINLINE\n+SVE_FUNCTION static svfloat32_t NOINLINE\n special_case (svfloat32_t xm1, svfloat32_t tmp, svbool_t special)\n {\n svfloat32_t x = svadd_x (svptrue_b32 (), xm1, 1.0f);\n@@ -37,7 +37,7 @@ special_case (svfloat32_t xm1, svfloat32_t tmp, svbool_t special)\n Maximum error is 2.47 ULPs:\n SV_NAME_F1 (acosh) (0x1.01ca76p+0) got 0x1.e435a6p-4\n \t\t\t\t want 0x1.e435a2p-4. */\n-svfloat32_t SV_NAME_F1 (acosh) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (acosh) (svfloat32_t x, const svbool_t pg)\n {\n svuint32_t ix = svreinterpret_u32 (x);\n svbool_t special = svcmpge (pg, svsub_x (pg, ix, One), Thres);\ndiff --git a/sysdeps/aarch64/fpu/acospi_sve.c b/sysdeps/aarch64/fpu/acospi_sve.c\nindex f5cacf557ed..595ef5f07aa 100644\n--- a/sysdeps/aarch64/fpu/acospi_sve.c\n+++ b/sysdeps/aarch64/fpu/acospi_sve.c\n@@ -56,7 +56,7 @@ static const struct data\n The largest observed error in this region is 2.55 ulp:\n _ZGVsMxv_acospi(0x1.d90d50357410cp-1) got 0x1.ffd43d5dd3a9ep-4\n \t\t\t\t\twant 0x1.ffd43d5dd3a9bp-4. */\n-svfloat64_t SV_NAME_D1 (acospi) (svfloat64_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (acospi) (svfloat64_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n svbool_t ptrue = svptrue_b64 ();\ndiff --git a/sysdeps/aarch64/fpu/acospif_sve.c b/sysdeps/aarch64/fpu/acospif_sve.c\nindex 6a5b5cca7ca..b981e0f1e82 100644\n--- a/sysdeps/aarch64/fpu/acospif_sve.c\n+++ b/sysdeps/aarch64/fpu/acospif_sve.c\n@@ -49,7 +49,7 @@ static const struct data\n The largest observed error in this region is 2.61 ulps,\n _ZGVsMxv_acospif (0x1.6b232ep-1) got 0x1.fe04bap-3\n \t\t\t\t want 0x1.fe04cp-3. */\n-svfloat32_t SV_NAME_F1 (acospi) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (acospi) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/asin_sve.c b/sysdeps/aarch64/fpu/asin_sve.c\nindex 7c71251bc06..82fe71207c3 100644\n--- a/sysdeps/aarch64/fpu/asin_sve.c\n+++ b/sysdeps/aarch64/fpu/asin_sve.c\n@@ -51,7 +51,7 @@ static const struct data\n The largest observed error in this region is 2.66 ulp:\n _ZGVsMxv_asin (0x1.04024f6e2a2fbp-1) got 0x1.10b9586f087a8p-1\n \t\t\t\t want 0x1.10b9586f087abp-1. */\n-svfloat64_t SV_NAME_D1 (asin) (svfloat64_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (asin) (svfloat64_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n svbool_t ptrue = svptrue_b64 ();\ndiff --git a/sysdeps/aarch64/fpu/asinf_sve.c b/sysdeps/aarch64/fpu/asinf_sve.c\nindex a2c6d16e183..84d5df4a8fc 100644\n--- a/sysdeps/aarch64/fpu/asinf_sve.c\n+++ b/sysdeps/aarch64/fpu/asinf_sve.c\n@@ -48,7 +48,7 @@ static const struct data\n The largest observed error in this region is 2.41 ulps,\n _ZGVsMxv_asinf (-0x1.00203ep-1) got -0x1.0c3a64p-1\n \t\t\t\t want -0x1.0c3a6p-1. */\n-svfloat32_t SV_NAME_F1 (asin) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (asin) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/asinh_sve.c b/sysdeps/aarch64/fpu/asinh_sve.c\nindex cb32b60c3de..9cfa1388418 100644\n--- a/sysdeps/aarch64/fpu/asinh_sve.c\n+++ b/sysdeps/aarch64/fpu/asinh_sve.c\n@@ -64,7 +64,7 @@ static const struct data\n .inf = INFINITY\n };\n \n-static inline svfloat64_t\n+SVE_FUNCTION static inline svfloat64_t\n __sv_log_inline (svfloat64_t x, const struct data *d, const svbool_t pg)\n {\n /* Double-precision SVE log, copied from SVE log implementation with some\n@@ -99,7 +99,7 @@ __sv_log_inline (svfloat64_t x, const struct data *d, const svbool_t pg)\n return y;\n }\n \n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_case (svfloat64_t ax, svfloat64_t y, svuint64_t sign, svbool_t special,\n \t svbool_t pg, const struct data *d)\n {\n@@ -136,7 +136,7 @@ special_case (svfloat64_t ax, svfloat64_t y, svuint64_t sign, svbool_t special,\n |x| >= 1:\n _ZGVsMxv_asinh(0x1.170469d024505p+0) got 0x1.e3181c43b0f36p-1\n \t\t\t\t want 0x1.e3181c43b0f39p-1. */\n-svfloat64_t SV_NAME_D1 (asinh) (svfloat64_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (asinh) (svfloat64_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/asinhf_sve.c b/sysdeps/aarch64/fpu/asinhf_sve.c\nindex b41ed93d717..a46a164baab 100644\n--- a/sysdeps/aarch64/fpu/asinhf_sve.c\n+++ b/sysdeps/aarch64/fpu/asinhf_sve.c\n@@ -22,7 +22,7 @@\n \n #define BigBound 0x5f800000 /* asuint(0x1p64). */\n \n-static svfloat32_t NOINLINE\n+SVE_FUNCTION static svfloat32_t NOINLINE\n special_case (svuint32_t iax, svuint32_t sign, svfloat32_t y, svbool_t special)\n {\n svfloat32_t x = svreinterpret_f32 (sveor_x (svptrue_b32 (), iax, sign));\n@@ -37,7 +37,7 @@ special_case (svuint32_t iax, svuint32_t sign, svfloat32_t y, svbool_t special)\n Maximum error is 1.92 ULPs:\n SV_NAME_F1 (asinh) (-0x1.0922ecp-1) got -0x1.fd0bccp-2\n \t\t\t\t want -0x1.fd0bc8p-2. */\n-svfloat32_t SV_NAME_F1 (asinh) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (asinh) (svfloat32_t x, const svbool_t pg)\n {\n svfloat32_t ax = svabs_x (pg, x);\n svuint32_t iax = svreinterpret_u32 (ax);\ndiff --git a/sysdeps/aarch64/fpu/asinpi_sve.c b/sysdeps/aarch64/fpu/asinpi_sve.c\nindex cfc209bb29f..54b3a057e8d 100644\n--- a/sysdeps/aarch64/fpu/asinpi_sve.c\n+++ b/sysdeps/aarch64/fpu/asinpi_sve.c\n@@ -51,7 +51,7 @@ static const struct data\n The largest observed error in this region is 3.48 ulp:\n _ZGVsMxv_asinpi (0x1.03da0c2295424p-1) got 0x1.5b02b3dcafaefp-3\n \t\t\t\t\t want 0x1.5b02b3dcafaf2p-3. */\n-svfloat64_t SV_NAME_D1 (asinpi) (svfloat64_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (asinpi) (svfloat64_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n svbool_t ptrue = svptrue_b64 ();\ndiff --git a/sysdeps/aarch64/fpu/asinpif_sve.c b/sysdeps/aarch64/fpu/asinpif_sve.c\nindex 5e55a8d6409..9fec30e30be 100644\n--- a/sysdeps/aarch64/fpu/asinpif_sve.c\n+++ b/sysdeps/aarch64/fpu/asinpif_sve.c\n@@ -47,7 +47,7 @@ static const struct data\n The largest observed error in this region is 3.46 ulps:\n _ZGVsMxv_asinpif (0x1.0df892p-1) got 0x1.6a114cp-3\n \t\t\t\t want 0x1.6a1146p-3. */\n-svfloat32_t SV_NAME_F1 (asinpi) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (asinpi) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n svbool_t ptrue = svptrue_b32 ();\ndiff --git a/sysdeps/aarch64/fpu/atan2_sve.c b/sysdeps/aarch64/fpu/atan2_sve.c\nindex d9b7647a79c..d315ab05d64 100644\n--- a/sysdeps/aarch64/fpu/atan2_sve.c\n+++ b/sysdeps/aarch64/fpu/atan2_sve.c\n@@ -39,7 +39,7 @@ static const struct data\n .c18 = -0x1.44a4b059b6f67p-13, .c19 = 0x1.c4a45029e5a91p-17,\n };\n /* Special cases i.e. 0, infinity, nan (fall back to scalar calls). */\n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_case (svfloat64_t y, svfloat64_t x, svfloat64_t ret,\n \t const svbool_t cmp)\n {\n@@ -48,7 +48,7 @@ special_case (svfloat64_t y, svfloat64_t x, svfloat64_t ret,\n \n /* Returns a predicate indicating true if the input is the bit representation\n of 0, infinity or nan. */\n-static inline svbool_t\n+SVE_FUNCTION static inline svbool_t\n zeroinfnan (svuint64_t i, const svbool_t pg)\n {\n return svcmpge (pg, svsub_x (pg, svlsl_x (pg, i, 1), 1),\n@@ -59,8 +59,8 @@ zeroinfnan (svuint64_t i, const svbool_t pg)\n x are reasonably close together. The greatest observed error is 1.94 ULP:\n _ZGVsMxvv_atan2 (0x1.8a4bf7167228ap+5, 0x1.84971226bb57bp+5)\n got 0x1.95db19dfef9ccp-1 want 0x1.95db19dfef9cep-1. */\n-svfloat64_t SV_NAME_D2 (atan2) (svfloat64_t y, svfloat64_t x,\n-\t\t\t\tconst svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D2 (atan2) (svfloat64_t y, svfloat64_t x,\n+\t\t\t\t\t const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/atan2f_sve.c b/sysdeps/aarch64/fpu/atan2f_sve.c\nindex 7f6ababc25d..89e7a6e7377 100644\n--- a/sysdeps/aarch64/fpu/atan2f_sve.c\n+++ b/sysdeps/aarch64/fpu/atan2f_sve.c\n@@ -33,7 +33,7 @@ static const struct data\n };\n \n /* Special cases i.e. 0, infinity, nan (fall back to scalar calls). */\n-static svfloat32_t NOINLINE\n+SVE_FUNCTION static svfloat32_t NOINLINE\n special_case (svfloat32_t y, svfloat32_t x, svfloat32_t ret,\n \t const svbool_t cmp)\n {\n@@ -42,7 +42,7 @@ special_case (svfloat32_t y, svfloat32_t x, svfloat32_t ret,\n \n /* Returns a predicate indicating true if the input is the bit representation\n of 0, infinity or nan. */\n-static inline svbool_t\n+SVE_FUNCTION static inline svbool_t\n zeroinfnan (svuint32_t i, const svbool_t pg)\n {\n return svcmpge (pg, svsub_x (pg, svlsl_x (pg, i, 1), 1),\n@@ -54,8 +54,8 @@ zeroinfnan (svuint32_t i, const svbool_t pg)\n observed error is 2.21 ULP:\n _ZGVnN4vv_atan2f (0x1.a04aa8p+6, 0x1.9a274p+6) got 0x1.95ed3ap-1\n \t\t\t\t\t\t want 0x1.95ed36p-1. */\n-svfloat32_t SV_NAME_F2 (atan2) (svfloat32_t y, svfloat32_t x,\n-\t\t\t\tconst svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F2 (atan2) (svfloat32_t y, svfloat32_t x,\n+\t\t\t\t\t const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n svbool_t ptrue = svptrue_b32 ();\ndiff --git a/sysdeps/aarch64/fpu/atan2pi_sve.c b/sysdeps/aarch64/fpu/atan2pi_sve.c\nindex cccd0a84e10..bd33fd3e268 100644\n--- a/sysdeps/aarch64/fpu/atan2pi_sve.c\n+++ b/sysdeps/aarch64/fpu/atan2pi_sve.c\n@@ -44,7 +44,7 @@ static const struct data\n #define OneOverPi sv_f64 (0x1.45f306dc9c883p-2)\n \n /* Special cases i.e. 0, infinity, nan (fall back to scalar calls). */\n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_case (svfloat64_t y, svfloat64_t x, svfloat64_t ret,\n \t const svbool_t cmp)\n {\n@@ -54,7 +54,7 @@ special_case (svfloat64_t y, svfloat64_t x, svfloat64_t ret,\n \n /* Returns a predicate indicating true if the input is the bit representation\n of 0, infinity or nan. */\n-static inline svbool_t\n+SVE_FUNCTION static inline svbool_t\n zeroinfnan (svuint64_t i, const svbool_t pg)\n {\n return svcmpge (pg, svsub_x (pg, svlsl_x (pg, i, 1), 1),\n@@ -65,8 +65,8 @@ zeroinfnan (svuint64_t i, const svbool_t pg)\n Maximum observed error is 3.11 ulps:\n _ZGVsMxvv_atan2pi (0x1.ef284a877f6b5p+6, 0x1.03fdde8242b17p+7)\n got 0x1.f00f800163079p-3 want 0x1.f00f800163076p-3. */\n-svfloat64_t SV_NAME_D2 (atan2pi) (svfloat64_t y, svfloat64_t x,\n-\t\t\t\t const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D2 (atan2pi) (svfloat64_t y, svfloat64_t x,\n+\t\t\t\t\t const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n svbool_t ptrue = svptrue_b64 ();\ndiff --git a/sysdeps/aarch64/fpu/atan2pif_sve.c b/sysdeps/aarch64/fpu/atan2pif_sve.c\nindex fe1451dbd9a..0da7f9143b0 100644\n--- a/sysdeps/aarch64/fpu/atan2pif_sve.c\n+++ b/sysdeps/aarch64/fpu/atan2pif_sve.c\n@@ -44,7 +44,7 @@ static const struct data\n #define OneOverPi sv_f32 (0x1.45f307p-2)\n \n /* Special cases i.e. 0, infinity, nan (fall back to scalar calls). */\n-static svfloat32_t NOINLINE\n+SVE_FUNCTION static svfloat32_t NOINLINE\n special_case (svfloat32_t y, svfloat32_t x, svfloat32_t ret,\n \t const svbool_t cmp)\n {\n@@ -54,7 +54,7 @@ special_case (svfloat32_t y, svfloat32_t x, svfloat32_t ret,\n \n /* Returns a predicate indicating true if the input is the bit representation\n of 0, infinity or nan. */\n-static inline svbool_t\n+SVE_FUNCTION static inline svbool_t\n zeroinfnan (svuint32_t i, const svbool_t pg, const struct data *d)\n {\n return svcmpge (pg, svsub_x (pg, svlsl_x (pg, i, 1), 1),\n@@ -66,8 +66,8 @@ zeroinfnan (svuint32_t i, const svbool_t pg, const struct data *d)\n observed error is 2.90 ULP:\n _ZGVsMxvv_atan2pif (0x1.a28542p+5, 0x1.adb7c6p+5) got 0x1.f76524p-3\n \t\t\t\t\t\t want 0x1.f7651ep-3. */\n-svfloat32_t SV_NAME_F2 (atan2pi) (svfloat32_t y, svfloat32_t x,\n-\t\t\t\t const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F2 (atan2pi) (svfloat32_t y, svfloat32_t x,\n+\t\t\t\t\t const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n svbool_t ptrue = svptrue_b32 ();\ndiff --git a/sysdeps/aarch64/fpu/atan_sve.c b/sysdeps/aarch64/fpu/atan_sve.c\nindex 5477090d6aa..586173aba71 100644\n--- a/sysdeps/aarch64/fpu/atan_sve.c\n+++ b/sysdeps/aarch64/fpu/atan_sve.c\n@@ -49,7 +49,7 @@ static const struct data\n error is 2.08 ulps:\n _ZGVsMxv_atan (0x1.000a7c56975e8p+0) got 0x1.922a3163e15c2p-1\n \t\t\t\t want 0x1.922a3163e15c4p-1. */\n-svfloat64_t SV_NAME_D1 (atan) (svfloat64_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (atan) (svfloat64_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/atanf_sve.c b/sysdeps/aarch64/fpu/atanf_sve.c\nindex b93bdddb0ac..f1f3fafeaca 100644\n--- a/sysdeps/aarch64/fpu/atanf_sve.c\n+++ b/sysdeps/aarch64/fpu/atanf_sve.c\n@@ -48,7 +48,7 @@ static const struct data\n Largest observed error is 2.12 ULP:\n _ZGVsMxv_atanf (0x1.03d4cep+0) got 0x1.95ed3ap-1\n \t\t\t\t want 0x1.95ed36p-1. */\n-svfloat32_t SV_NAME_F1 (atan) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (atan) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n svbool_t ptrue = svptrue_b32 ();\ndiff --git a/sysdeps/aarch64/fpu/atanh_sve.c b/sysdeps/aarch64/fpu/atanh_sve.c\nindex 558984974d5..313f483e7ca 100644\n--- a/sysdeps/aarch64/fpu/atanh_sve.c\n+++ b/sysdeps/aarch64/fpu/atanh_sve.c\n@@ -27,7 +27,7 @@ static const struct data\n double nan;\n } data = { .half = 0x3fe0000000000000, .inf = INFINITY, .nan = NAN };\n \n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_case (svfloat64_t ax, svfloat64_t y, svbool_t pg, svbool_t special,\n \t svfloat64_t halfsign, const struct data *d)\n {\n@@ -40,7 +40,7 @@ special_case (svfloat64_t ax, svfloat64_t y, svbool_t pg, svbool_t special,\n The greatest observed error is 3.3 ULP:\n _ZGVsMxv_atanh(0x1.ffae6288b601p-6) got 0x1.ffd8ff31b5019p-6\n \t\t\t\t want 0x1.ffd8ff31b501cp-6. */\n-svfloat64_t SV_NAME_D1 (atanh) (svfloat64_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (atanh) (svfloat64_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/atanhf_sve.c b/sysdeps/aarch64/fpu/atanhf_sve.c\nindex 8e07fe5a829..03358e2ba25 100644\n--- a/sysdeps/aarch64/fpu/atanhf_sve.c\n+++ b/sysdeps/aarch64/fpu/atanhf_sve.c\n@@ -23,7 +23,7 @@\n #define One (0x3f800000)\n #define Half (0x3f000000)\n \n-static svfloat32_t NOINLINE\n+SVE_FUNCTION static svfloat32_t NOINLINE\n special_case (svuint32_t iax, svuint32_t sign, svfloat32_t halfsign,\n \t svfloat32_t y, svbool_t special)\n {\n@@ -36,7 +36,7 @@ special_case (svuint32_t iax, svuint32_t sign, svfloat32_t halfsign,\n The maximum error is 1.99 ULP:\n _ZGVsMxv_atanhf(0x1.f1583p-5) got 0x1.f1f4fap-5\n \t\t\t\twant 0x1.f1f4f6p-5. */\n-svfloat32_t SV_NAME_F1 (atanh) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (atanh) (svfloat32_t x, const svbool_t pg)\n {\n svfloat32_t ax = svabs_x (pg, x);\n svuint32_t iax = svreinterpret_u32 (ax);\ndiff --git a/sysdeps/aarch64/fpu/atanpi_sve.c b/sysdeps/aarch64/fpu/atanpi_sve.c\nindex 0228270de81..bc14c0d8106 100644\n--- a/sysdeps/aarch64/fpu/atanpi_sve.c\n+++ b/sysdeps/aarch64/fpu/atanpi_sve.c\n@@ -58,7 +58,7 @@ static const struct data\n error is 2.80 ulps:\n _ZGVsMxv_atanpi(0x1.f19587d63c76fp-1) got 0x1.f6b1304817d02p-3\n \t\t\t\t\twant 0x1.f6b1304817d05p-3. */\n-svfloat64_t SV_NAME_D1 (atanpi) (svfloat64_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (atanpi) (svfloat64_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/atanpif_sve.c b/sysdeps/aarch64/fpu/atanpif_sve.c\nindex 4d74d90b2b7..9f2d33b549a 100644\n--- a/sysdeps/aarch64/fpu/atanpif_sve.c\n+++ b/sysdeps/aarch64/fpu/atanpif_sve.c\n@@ -41,7 +41,7 @@ static const struct data\n Largest observed error is 2.59 ULP, close to +/-1.0:\n _ZGVsMxv_atanpif(0x1.f2a89cp-1) got 0x1.f76524p-3\n \t\t\t\t want 0x1.f7651ep-3. */\n-svfloat32_t SV_NAME_F1 (atanpi) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (atanpi) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n svbool_t ptrue = svptrue_b32 ();\ndiff --git a/sysdeps/aarch64/fpu/cbrt_sve.c b/sysdeps/aarch64/fpu/cbrt_sve.c\nindex 86405f61949..a38d1d49c29 100644\n--- a/sysdeps/aarch64/fpu/cbrt_sve.c\n+++ b/sysdeps/aarch64/fpu/cbrt_sve.c\n@@ -45,13 +45,13 @@ const static struct data\n #define MantissaMask 0x000fffffffffffff\n #define HalfExp 0x3fe0000000000000\n \n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_case (svfloat64_t x, svfloat64_t y, svbool_t special)\n {\n return sv_call_f64 (cbrt, x, y, special);\n }\n \n-static inline svfloat64_t\n+SVE_FUNCTION static inline svfloat64_t\n shifted_lookup (const svbool_t pg, const float64_t *table, svint64_t i)\n {\n return svld1_gather_index (pg, table, svadd_x (pg, i, 2));\n@@ -64,7 +64,7 @@ shifted_lookup (const svbool_t pg, const float64_t *table, svint64_t i)\n is an integer.\n _ZGVsMxv_cbrt (0x0.3fffb8d4413f3p-1022) got 0x1.965f53b0e5d97p-342\n \t\t\t\t\t want 0x1.965f53b0e5d95p-342. */\n-svfloat64_t SV_NAME_D1 (cbrt) (svfloat64_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (cbrt) (svfloat64_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/cbrtf_sve.c b/sysdeps/aarch64/fpu/cbrtf_sve.c\nindex f51f2df71d4..27b5ea2de5b 100644\n--- a/sysdeps/aarch64/fpu/cbrtf_sve.c\n+++ b/sysdeps/aarch64/fpu/cbrtf_sve.c\n@@ -41,13 +41,13 @@ const static struct data\n #define MantissaMask 0x007fffff\n #define HalfExp 0x3f000000\n \n-static svfloat32_t NOINLINE\n+SVE_FUNCTION static svfloat32_t NOINLINE\n special_case (svfloat32_t x, svfloat32_t y, svbool_t special)\n {\n return sv_call_f32 (cbrtf, x, y, special);\n }\n \n-static inline svfloat32_t\n+SVE_FUNCTION static inline svfloat32_t\n shifted_lookup (const svbool_t pg, const float32_t *table, svint32_t i)\n {\n return svld1_gather_index (pg, table, svadd_x (pg, i, 2));\n@@ -59,7 +59,7 @@ shifted_lookup (const svbool_t pg, const float32_t *table, svint32_t i)\n 0x1.85a2aa and the exponent is a multiple of 3, for example:\n _ZGVsMxv_cbrtf (0x1.85a2aap+3) got 0x1.267936p+1\n \t\t\t\t want 0x1.267932p+1. */\n-svfloat32_t SV_NAME_F1 (cbrt) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (cbrt) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/cos_sve.c b/sysdeps/aarch64/fpu/cos_sve.c\nindex 528391fe0c8..3ac232e8560 100644\n--- a/sysdeps/aarch64/fpu/cos_sve.c\n+++ b/sysdeps/aarch64/fpu/cos_sve.c\n@@ -36,7 +36,7 @@ static const struct data\n \n #define RangeVal 0x4160000000000000 /* asuint64 (0x1p23). */\n \n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_case (svfloat64_t x, svfloat64_t y, svbool_t oob)\n {\n return sv_call_f64 (cos, x, y, oob);\n@@ -47,7 +47,7 @@ special_case (svfloat64_t x, svfloat64_t y, svbool_t oob)\n Maximum measured error: 2.108 ULPs.\n SV_NAME_D1 (cos)(0x1.9b0ba158c98f3p+7) got -0x1.fddd4c65c7f07p-3\n \t\t\t\t\t want -0x1.fddd4c65c7f05p-3. */\n-svfloat64_t SV_NAME_D1 (cos) (svfloat64_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (cos) (svfloat64_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/cosf_sve.c b/sysdeps/aarch64/fpu/cosf_sve.c\nindex 680d89a8fa9..291fc7e3fb5 100644\n--- a/sysdeps/aarch64/fpu/cosf_sve.c\n+++ b/sysdeps/aarch64/fpu/cosf_sve.c\n@@ -36,7 +36,7 @@ static const struct data\n \n #define RangeVal 0x49800000 /* asuint32(0x1p20f). */\n \n-static svfloat32_t NOINLINE\n+SVE_FUNCTION static svfloat32_t NOINLINE\n special_case (svfloat32_t x, svfloat32_t y, svbool_t oob)\n {\n return sv_call_f32 (cosf, x, y, oob);\n@@ -47,7 +47,7 @@ special_case (svfloat32_t x, svfloat32_t y, svbool_t oob)\n Maximum measured error: 2.06 ULPs.\n SV_NAME_F1 (cos)(0x1.dea2f2p+19) got 0x1.fffe7ap-6\n \t\t\t\t want 0x1.fffe76p-6. */\n-svfloat32_t SV_NAME_F1 (cos) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (cos) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/cosh_sve.c b/sysdeps/aarch64/fpu/cosh_sve.c\nindex 39754ac01ad..631a938f8be 100644\n--- a/sysdeps/aarch64/fpu/cosh_sve.c\n+++ b/sysdeps/aarch64/fpu/cosh_sve.c\n@@ -46,7 +46,7 @@ static const struct data\n Functionally identical to FEXPA exp(x), but an adjustment in\n the shift value which leads to a reduction in the exponent of scale by 1,\n thus halving the result at no cost. */\n-static inline svfloat64_t\n+SVE_FUNCTION static inline svfloat64_t\n exp_over_two_inline (const svbool_t pg, svfloat64_t x, const struct data *d)\n {\n /* Calculate exp(x). */\n@@ -76,7 +76,7 @@ exp_over_two_inline (const svbool_t pg, svfloat64_t x, const struct data *d)\n cosh (A + B) = cosh(A)cosh(B) + sinh(A)sinh(B)\n By choosing sufficiently large values whereby after rounding cosh == sinh,\n this can be simplified into: cosh (A + B) = cosh(A) * e^B. */\n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_case (svfloat64_t x, svbool_t pg, svbool_t special, svfloat64_t t,\n \t const struct data *d)\n {\n@@ -108,7 +108,7 @@ special_case (svfloat64_t x, svbool_t pg, svbool_t special, svfloat64_t t,\n The greatest observed error is 2.10 + 0.5 ULP:\n _ZGVsMxv_cosh (-0x1.2acb2978bd15ep+4) got 0x1.ebbd8806ea342p+25\n \t\t\t\t\twant 0x1.ebbd8806ea33fp+25. */\n-svfloat64_t SV_NAME_D1 (cosh) (svfloat64_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (cosh) (svfloat64_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/coshf_sve.c b/sysdeps/aarch64/fpu/coshf_sve.c\nindex a37456e5b72..4154de5bc6e 100644\n--- a/sysdeps/aarch64/fpu/coshf_sve.c\n+++ b/sysdeps/aarch64/fpu/coshf_sve.c\n@@ -38,7 +38,7 @@ static const struct data\n cosh (A + B) = cosh(A)cosh(B) + sinh(A)sinh(B)\n By choosing sufficiently large values whereby after rounding cosh == sinh,\n this can be simplified into: cosh (A + B) = cosh(A) * e^B. */\n-static inline svfloat32_t\n+SVE_FUNCTION static inline svfloat32_t\n special_case (svfloat32_t x, svbool_t special, svfloat32_t half_e,\n \t svfloat32_t half_over_e, const struct data *d)\n {\n@@ -70,7 +70,7 @@ special_case (svfloat32_t x, svbool_t special, svfloat32_t half_e,\n Maximum error is 2.55 +0.5 ULP:\n _ZGVsMxv_coshf(-0x1.5b40f4p+1) got 0x1.e47748p+2\n \t\t\t\t want 0x1.e4774ep+2. */\n-svfloat32_t SV_NAME_F1 (cosh) (svfloat32_t x, svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (cosh) (svfloat32_t x, svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/cospi_sve.c b/sysdeps/aarch64/fpu/cospi_sve.c\nindex 555752bc99e..6b48077e6be 100644\n--- a/sysdeps/aarch64/fpu/cospi_sve.c\n+++ b/sysdeps/aarch64/fpu/cospi_sve.c\n@@ -38,7 +38,7 @@ static const struct data\n Maximum error 3.20 ULP:\n _ZGVsMxv_cospi(0x1.f18ba32c63159p-6) got 0x1.fdabf595f9763p-1\n \t\t\t\t want 0x1.fdabf595f9766p-1. */\n-svfloat64_t SV_NAME_D1 (cospi) (svfloat64_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (cospi) (svfloat64_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/cospif_sve.c b/sysdeps/aarch64/fpu/cospif_sve.c\nindex 54af83db62f..57d0a12f427 100644\n--- a/sysdeps/aarch64/fpu/cospif_sve.c\n+++ b/sysdeps/aarch64/fpu/cospif_sve.c\n@@ -35,7 +35,7 @@ static const struct data\n Maximum error: 2.60 ULP:\n _ZGVsMxv_cospif(+/-0x1.cae664p-4) got 0x1.e09c9ep-1\n \t\t\t\t want 0x1.e09c98p-1. */\n-svfloat32_t SV_NAME_F1 (cospi) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (cospi) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/erf_sve.c b/sysdeps/aarch64/fpu/erf_sve.c\nindex 4260cb590d4..10a3d5e5604 100644\n--- a/sysdeps/aarch64/fpu/erf_sve.c\n+++ b/sysdeps/aarch64/fpu/erf_sve.c\n@@ -54,7 +54,7 @@ static const struct data\n Maximum measure error: 2.29 ULP\n _ZGVsMxv_erf(-0x1.00003c924e5d1p-8) got -0x1.20dd59132ebadp-8\n \t\t\t\t want -0x1.20dd59132ebafp-8. */\n-svfloat64_t SV_NAME_D1 (erf) (svfloat64_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (erf) (svfloat64_t x, const svbool_t pg)\n {\n const struct data *dat = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/erfc_sve.c b/sysdeps/aarch64/fpu/erfc_sve.c\nindex b489cd30f7b..ec6b401af79 100644\n--- a/sysdeps/aarch64/fpu/erfc_sve.c\n+++ b/sysdeps/aarch64/fpu/erfc_sve.c\n@@ -86,7 +86,7 @@ static const struct data\n Maximum measured error: 1.71 ULP\n _ZGVsMxv_erfc(0x1.46cfe976733p+4) got 0x1.e15fcbea3e7afp-608\n \t\t\t\t want 0x1.e15fcbea3e7adp-608. */\n-svfloat64_t SV_NAME_D1 (erfc) (svfloat64_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (erfc) (svfloat64_t x, const svbool_t pg)\n {\n const struct data *dat = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/erfcf_sve.c b/sysdeps/aarch64/fpu/erfcf_sve.c\nindex 78b7b9369b2..ea911329654 100644\n--- a/sysdeps/aarch64/fpu/erfcf_sve.c\n+++ b/sysdeps/aarch64/fpu/erfcf_sve.c\n@@ -59,7 +59,7 @@ static const struct data\n Maximum error: 1.63 ULP (~1.0 ULP for x < 0.0).\n _ZGVsMxv_erfcf(0x1.1dbf7ap+3) got 0x1.f51212p-120\n \t\t\t\twant 0x1.f51216p-120. */\n-svfloat32_t SV_NAME_F1 (erfc) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (erfc) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *dat = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/erff_sve.c b/sysdeps/aarch64/fpu/erff_sve.c\nindex 68e419c794b..61e064332f7 100644\n--- a/sysdeps/aarch64/fpu/erff_sve.c\n+++ b/sysdeps/aarch64/fpu/erff_sve.c\n@@ -49,7 +49,7 @@ static const struct data\n _ZGVsMxv_erff(0x1.c373e6p-9) got 0x1.fd686cp-9 want 0x1.fd6868p-9\n - [0x1.cp-7, 4.0]: 1.26 ULP\n _ZGVsMxv_erff(0x1.1d002ep+0) got 0x1.c4eb9ap-1 want 0x1.c4eb98p-1. */\n-svfloat32_t SV_NAME_F1 (erf) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (erf) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *dat = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/exp10_sve.c b/sysdeps/aarch64/fpu/exp10_sve.c\nindex fd04bab44a0..42946ed9b9c 100644\n--- a/sysdeps/aarch64/fpu/exp10_sve.c\n+++ b/sysdeps/aarch64/fpu/exp10_sve.c\n@@ -50,7 +50,7 @@ static const struct data\n .special_bound = SpecialBound,\n };\n \n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_exp (svfloat64_t scale, svfloat64_t poly, svfloat64_t n, svuint64_t u,\n \t const struct sv_exp_special_data *ds)\n {\n@@ -69,7 +69,7 @@ special_exp (svfloat64_t scale, svfloat64_t poly, svfloat64_t n, svuint64_t u,\n Maximum measured error is 1.02 ulp.\n SV_NAME_D1 (exp10)(-0x1.2862fec805e58p+2) got 0x1.885a89551d782p-16\n \t\t\t\t\t want 0x1.885a89551d781p-16. */\n-svfloat64_t SV_NAME_D1 (exp10) (svfloat64_t x, svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (exp10) (svfloat64_t x, svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/exp10f_sve.c b/sysdeps/aarch64/fpu/exp10f_sve.c\nindex 0c426797ff0..963556f4ffb 100644\n--- a/sysdeps/aarch64/fpu/exp10f_sve.c\n+++ b/sysdeps/aarch64/fpu/exp10f_sve.c\n@@ -46,7 +46,7 @@ static const struct data\n .zero_bound = ZeroBound,\n };\n \n-static inline svfloat32_t\n+SVE_FUNCTION static inline svfloat32_t\n sv_exp10f_inline (svfloat32_t x, const svbool_t pg, const struct data *d)\n {\n /* exp10(x) = 2^(n/N) * 10^r = 2^n * (1 + poly (r)),\n@@ -73,7 +73,7 @@ sv_exp10f_inline (svfloat32_t x, const svbool_t pg, const struct data *d)\n return svmla_x (pg, scale, scale, poly);\n }\n \n-static svfloat32_t NOINLINE\n+SVE_FUNCTION static svfloat32_t NOINLINE\n special_case (svfloat32_t x, svbool_t pg, svbool_t special,\n \t const struct data *d)\n {\n@@ -98,7 +98,7 @@ special_case (svfloat32_t x, svbool_t pg, svbool_t special,\n Worst case error is 2.86 ULP +0.50 ULP.\n _ZGVsMxv_exp10f (0x1.31b778p+5) got 0x1.ed399p+126\n \t\t\t\t want 0x1.ed398ap+126. */\n-svfloat32_t SV_NAME_F1 (exp10) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (exp10) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n svbool_t special = svacgt (pg, x, d->special_bound);\ndiff --git a/sysdeps/aarch64/fpu/exp10m1_sve.c b/sysdeps/aarch64/fpu/exp10m1_sve.c\nindex e93883c2cf4..c174ec44317 100644\n--- a/sysdeps/aarch64/fpu/exp10m1_sve.c\n+++ b/sysdeps/aarch64/fpu/exp10m1_sve.c\n@@ -72,7 +72,7 @@ static const struct data\n },\n };\n \n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_m1 (svbool_t special, svfloat64_t y, svfloat64_t z, svfloat64_t scale,\n \t svfloat64_t poly, svfloat64_t n,\n \t const struct sv_exp_special_data *ds)\n@@ -94,7 +94,7 @@ special_m1 (svbool_t special, svfloat64_t y, svfloat64_t z, svfloat64_t scale,\n Maximum measured error is 2.87 + 0.5 ULP:\n _ZGVsMxv_exp10m1(0x1.64645f11e94c6p-4) got 0x1.c64d54eb7658dp-3\n \t\t\t\t\t want 0x1.c64d54eb7658ap-3. */\n-svfloat64_t SV_NAME_D1 (exp10m1) (svfloat64_t x, svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (exp10m1) (svfloat64_t x, svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/exp10m1f_sve.c b/sysdeps/aarch64/fpu/exp10m1f_sve.c\nindex de0b0b8d1d6..d9d31469acb 100644\n--- a/sysdeps/aarch64/fpu/exp10m1f_sve.c\n+++ b/sysdeps/aarch64/fpu/exp10m1f_sve.c\n@@ -57,7 +57,7 @@ static const struct data\n Algorithm is accurate to 1.68 + 0.5 ULP.\n _ZGVnN4v_exp10m1f(0x1.3aeffep-3) got 0x1.b3139p-2\n \t\t\t\t want 0x1.b3138cp-2. */\n-svfloat32_t SV_NAME_F1 (exp10m1) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (exp10m1) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/exp2_sve.c b/sysdeps/aarch64/fpu/exp2_sve.c\nindex a6f002f9b0c..65f9d092185 100644\n--- a/sysdeps/aarch64/fpu/exp2_sve.c\n+++ b/sysdeps/aarch64/fpu/exp2_sve.c\n@@ -46,7 +46,7 @@ static const struct data\n .special_bound = SpecialBound,\n };\n \n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_exp (svfloat64_t poly, svfloat64_t scale, svfloat64_t n, svfloat64_t z,\n \t const struct sv_exp_special_data *ds)\n {\n@@ -66,7 +66,7 @@ special_exp (svfloat64_t poly, svfloat64_t scale, svfloat64_t n, svfloat64_t z,\n Maximum measured error is 0.52 + 0.5 ulp.\n _ZGVsMxv_exp2 (0x1.3b72ad5b701bfp-1) got 0x1.8861641b49e08p+0\n \t\t\t\t want 0x1.8861641b49e07p+0. */\n-svfloat64_t SV_NAME_D1 (exp2) (svfloat64_t x, svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (exp2) (svfloat64_t x, svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/exp2f_sve.c b/sysdeps/aarch64/fpu/exp2f_sve.c\nindex b71f472d449..30beef003fe 100644\n--- a/sysdeps/aarch64/fpu/exp2f_sve.c\n+++ b/sysdeps/aarch64/fpu/exp2f_sve.c\n@@ -43,7 +43,7 @@ static const struct data\n .zero_bound = ZeroBound,\n };\n \n-static inline svfloat32_t\n+SVE_FUNCTION static inline svfloat32_t\n sv_exp2f_inline (svfloat32_t x, const svbool_t pg, const struct data *d)\n {\n /* exp2(x) = 2^n (1 + poly(r)), with 1 + poly(r) in [1/sqrt(2),sqrt(2)]\n@@ -60,7 +60,7 @@ sv_exp2f_inline (svfloat32_t x, const svbool_t pg, const struct data *d)\n return svmla_x (pg, scale, scale, poly);\n }\n \n-static svfloat32_t NOINLINE\n+SVE_FUNCTION static svfloat32_t NOINLINE\n special_case (svfloat32_t x, svbool_t pg, svbool_t special,\n \t const struct data *d)\n {\n@@ -85,7 +85,7 @@ special_case (svfloat32_t x, svbool_t pg, svbool_t special,\n Worst case error is 2.87 +0.50 ULP.\n _ZGVsMxv_exp2f (0x1.fbcb78p+6) got 0x1.ee1d32p+126\n \t\t\t\t want 0x1.ee1d2cp+126. */\n-svfloat32_t SV_NAME_F1 (exp2) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (exp2) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n svbool_t special = svacgt (pg, x, d->special_bound);\ndiff --git a/sysdeps/aarch64/fpu/exp2m1_sve.c b/sysdeps/aarch64/fpu/exp2m1_sve.c\nindex ef13c26ecb4..30724f7d329 100644\n--- a/sysdeps/aarch64/fpu/exp2m1_sve.c\n+++ b/sysdeps/aarch64/fpu/exp2m1_sve.c\n@@ -64,7 +64,7 @@ static const struct data\n },\n };\n \n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_m1 (svbool_t special, svfloat64_t y, svfloat64_t z, svfloat64_t scale,\n \t svfloat64_t poly, svfloat64_t n,\n \t const struct sv_exp_special_data *ds)\n@@ -86,7 +86,7 @@ special_m1 (svbool_t special, svfloat64_t y, svfloat64_t z, svfloat64_t scale,\n Maximum error is 2.58 + 0.5 ULP.\n _ZGVsMxv_exp2m1(0x1.0284a345c99bfp-8) got 0x1.66df630cd2965p-9\n \t\t\t\t\twant 0x1.66df630cd2962p-9. */\n-svfloat64_t SV_NAME_D1 (exp2m1) (svfloat64_t x, svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (exp2m1) (svfloat64_t x, svbool_t pg)\n {\n /* exp2(x) = 2^n (1 + poly(r))\n x = n + r, with r in [-1/2N, 1/2N].\ndiff --git a/sysdeps/aarch64/fpu/exp2m1f_sve.c b/sysdeps/aarch64/fpu/exp2m1f_sve.c\nindex d53a805e19c..9f3ea31fd58 100644\n--- a/sysdeps/aarch64/fpu/exp2m1f_sve.c\n+++ b/sysdeps/aarch64/fpu/exp2m1f_sve.c\n@@ -50,7 +50,7 @@ static const struct data\n The maximum error is 1.76 + 0.5 ULP.\n _ZGVsMxv_exp2m1f (0x1.018af8p-1) got 0x1.ab2ebcp-2\n \t\t\t\t want 0x1.ab2ecp-2. */\n-svfloat32_t SV_NAME_F1 (exp2m1) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (exp2m1) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/exp_sve.c b/sysdeps/aarch64/fpu/exp_sve.c\nindex 7c8c5e0559e..4b780b06d17 100644\n--- a/sysdeps/aarch64/fpu/exp_sve.c\n+++ b/sysdeps/aarch64/fpu/exp_sve.c\n@@ -46,7 +46,7 @@ static const struct data\n .special_bound = SpecialBound,\n };\n \n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_exp (svfloat64_t poly, svfloat64_t scale, svfloat64_t n, svuint64_t u,\n \t const struct sv_exp_special_data *ds)\n {\n@@ -64,7 +64,7 @@ special_exp (svfloat64_t poly, svfloat64_t scale, svfloat64_t n, svuint64_t u,\n /* SVE exp algorithm. Maximum measured error is 1.01ulps:\n SV_NAME_D1 (exp)(0x1.4619d7b04da41p+6) got 0x1.885d9acc41da7p+117\n \t\t\t\t\t want 0x1.885d9acc41da6p+117. */\n-svfloat64_t SV_NAME_D1 (exp) (svfloat64_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (exp) (svfloat64_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/expf_sve.c b/sysdeps/aarch64/fpu/expf_sve.c\nindex 9c552958edb..8be986e3136 100644\n--- a/sysdeps/aarch64/fpu/expf_sve.c\n+++ b/sysdeps/aarch64/fpu/expf_sve.c\n@@ -48,7 +48,7 @@ static const struct data\n .zero_bound = ZeroBound,\n };\n \n-static inline svfloat32_t\n+SVE_FUNCTION static inline svfloat32_t\n expf_inline (svfloat32_t x, const svbool_t pg, const struct data *d)\n {\n /* exp(x) = 2^n (1 + poly(r)), with 1 + poly(r) in [1/sqrt(2),sqrt(2)]\n@@ -78,7 +78,7 @@ expf_inline (svfloat32_t x, const svbool_t pg, const struct data *d)\n The approximation needs to match that of the fast path.\n To achieve this we assemble the same polynomial, ie `r + 0.5 * r^2`,\n then we conditionally add an extra `c2 * r^3` term. */\n-static inline svfloat32_t\n+SVE_FUNCTION static inline svfloat32_t\n expf_slow_inline (svfloat32_t x, const svbool_t special, const struct data *d)\n {\n svfloat32_t lane_constants = svld1rq (svptrue_b32 (), &d->ln2_hi);\n@@ -102,7 +102,7 @@ expf_slow_inline (svfloat32_t x, const svbool_t special, const struct data *d)\n return svmla_x (svptrue_b32 (), scale, scale, poly);\n }\n \n-static svfloat32_t NOINLINE\n+SVE_FUNCTION static svfloat32_t NOINLINE\n special_case (svfloat32_t x, svbool_t pg, svbool_t special,\n \t const struct data *d)\n {\n@@ -127,7 +127,7 @@ special_case (svfloat32_t x, svbool_t pg, svbool_t special,\n Worst-case error is 2.70 +0.50 ULP:\n _ZGVsMxv_expf(0x1.5fec38p+6) got 0x1.e7831ep+126\n \t\t\t want 0x1.e78318p+126. */\n-svfloat32_t SV_NAME_F1 (exp) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (exp) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n svbool_t special = svacgt (pg, x, d->special_bound);\ndiff --git a/sysdeps/aarch64/fpu/expm1_sve.c b/sysdeps/aarch64/fpu/expm1_sve.c\nindex 52abd8af1b9..6132e19e106 100644\n--- a/sysdeps/aarch64/fpu/expm1_sve.c\n+++ b/sysdeps/aarch64/fpu/expm1_sve.c\n@@ -66,7 +66,7 @@ static const struct data\n .fexpa_bound = FexpaBound,\n };\n \n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_m1 (svbool_t special, svfloat64_t y, svfloat64_t z, svfloat64_t scale,\n \t svfloat64_t poly, svfloat64_t n,\n \t const struct sv_exp_special_data *ds)\n@@ -88,7 +88,7 @@ special_m1 (svbool_t special, svfloat64_t y, svfloat64_t z, svfloat64_t scale,\n Maximum measured error is 2.81 + 0.5 ULP:\n _ZGVsMxv_expm1 (0x1.974060e619bfp-3) got 0x1.c290e5858bb53p-3\n \t\t\t\t want 0x1.c290e5858bb5p-3. */\n-svfloat64_t SV_NAME_D1 (expm1) (svfloat64_t x, svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (expm1) (svfloat64_t x, svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/expm1f_sve.c b/sysdeps/aarch64/fpu/expm1f_sve.c\nindex 07e13556a2d..5234342de86 100644\n--- a/sysdeps/aarch64/fpu/expm1f_sve.c\n+++ b/sysdeps/aarch64/fpu/expm1f_sve.c\n@@ -50,7 +50,7 @@ static const struct data\n Maximum error is 1.02 +0.5ULP:\n _ZGVsMxv_expm1f(0x1.8f4ebcp-2) got 0x1.e859dp-2\n \t\t\t\t want 0x1.e859d4p-2. */\n-svfloat32_t SV_NAME_F1 (expm1) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (expm1) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/hypot_sve.c b/sysdeps/aarch64/fpu/hypot_sve.c\nindex d6d56c35b15..958143dbe1c 100644\n--- a/sysdeps/aarch64/fpu/hypot_sve.c\n+++ b/sysdeps/aarch64/fpu/hypot_sve.c\n@@ -27,7 +27,7 @@ static const struct data\n .thres = 0x7300000000000000,\t /* asuint (inf) - tiny_bound. */\n };\n \n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_case (svfloat64_t sqsum, svfloat64_t x, svfloat64_t y, svbool_t pg,\n \t svbool_t special)\n {\n@@ -39,7 +39,8 @@ special_case (svfloat64_t sqsum, svfloat64_t x, svfloat64_t y, svbool_t pg,\n _ZGVsMxvv_hypot (-0x1.6a22d0412cdd3p+352, 0x1.d3d89bd66fb1ap+330)\n got 0x1.6a22d0412cfp+352\n want 0x1.6a22d0412cf01p+352. */\n-svfloat64_t SV_NAME_D2 (hypot) (svfloat64_t x, svfloat64_t y, svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D2 (hypot) (svfloat64_t x, svfloat64_t y,\n+\t\t\t\t\t svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/hypotf_sve.c b/sysdeps/aarch64/fpu/hypotf_sve.c\nindex 99edf90b0ab..0d9ec38d3c3 100644\n--- a/sysdeps/aarch64/fpu/hypotf_sve.c\n+++ b/sysdeps/aarch64/fpu/hypotf_sve.c\n@@ -22,7 +22,7 @@\n #define TinyBound 0x0c800000 /* asuint (0x1p-102). */\n #define Thres 0x73000000 /* 0x70000000 - TinyBound. */\n \n-static svfloat32_t NOINLINE\n+SVE_FUNCTION static svfloat32_t NOINLINE\n special_case (svfloat32_t sqsum, svfloat32_t x, svfloat32_t y, svbool_t pg,\n \t svbool_t special)\n {\n@@ -33,8 +33,8 @@ special_case (svfloat32_t sqsum, svfloat32_t x, svfloat32_t y, svbool_t pg,\n Maximum error observed is 1.21 ULP:\n _ZGVsMxvv_hypotf (0x1.6a213cp-19, -0x1.32b982p-26) got 0x1.6a2346p-19\n \t\t\t\t\t\t want 0x1.6a2344p-19. */\n-svfloat32_t SV_NAME_F2 (hypot) (svfloat32_t x, svfloat32_t y,\n-\t\t\t\tconst svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F2 (hypot) (svfloat32_t x, svfloat32_t y,\n+\t\t\t\t\t const svbool_t pg)\n {\n svfloat32_t sqsum = svmla_x (pg, svmul_x (pg, x, x), y, y);\n \ndiff --git a/sysdeps/aarch64/fpu/log10_sve.c b/sysdeps/aarch64/fpu/log10_sve.c\nindex b87ef297ec3..bb39bb9590a 100644\n--- a/sysdeps/aarch64/fpu/log10_sve.c\n+++ b/sysdeps/aarch64/fpu/log10_sve.c\n@@ -45,7 +45,7 @@ static const struct data\n .thresh = 0x7fe0000000000000, /* infinity - min. */\n };\n \n-static inline svfloat64_t\n+SVE_FUNCTION static inline svfloat64_t\n v_log10_inline (svuint64_t ix, const svbool_t pg, const struct data *d)\n {\n /* x = 2^k z; where z is in range [Off,2*Off) and exact.\n@@ -89,7 +89,7 @@ v_log10_inline (svuint64_t ix, const svbool_t pg, const struct data *d)\n calculation of x * 2^52 (2^mantissa) to normalise the number at entry to\n the log function and then subtract log10(2) * 52 to re-subnormalise the\n output to the correct result. */\n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_case (svfloat64_t x, svbool_t pg, svbool_t special)\n {\n const struct data *d = ptr_barrier (&data);\n@@ -122,7 +122,7 @@ special_case (svfloat64_t x, svbool_t pg, svbool_t special)\n Maximum measured error is 2.46 ulps.\n SV_NAME_D1 (log10)(0x1.131956cd4b627p+0) got 0x1.fffbdf6eaa669p-6\n \t\t\t\t\t want 0x1.fffbdf6eaa667p-6. */\n-svfloat64_t SV_NAME_D1 (log10) (svfloat64_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (log10) (svfloat64_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/log10f_sve.c b/sysdeps/aarch64/fpu/log10f_sve.c\nindex 365c6065350..70d04422a12 100644\n--- a/sysdeps/aarch64/fpu/log10f_sve.c\n+++ b/sysdeps/aarch64/fpu/log10f_sve.c\n@@ -52,7 +52,7 @@ static const struct data\n \n #define MantissaMask 0x007fffff\n \n-static inline svfloat32_t\n+SVE_FUNCTION static inline svfloat32_t\n v_log10f_inline (svuint32_t u_off, const svbool_t pg, const struct data *d)\n {\n /* x = 2^n * (1+r), where 2/3 < 1+r < 4/3. */\n@@ -90,7 +90,7 @@ v_log10f_inline (svuint32_t u_off, const svbool_t pg, const struct data *d)\n calculation of x * 2^23 (2^mantissa) to normalise the number at entry to\n the log function and then subtract log10(2) * 23 to re-subnormalise the\n output to the correct result. */\n-static svfloat32_t NOINLINE\n+SVE_FUNCTION static svfloat32_t NOINLINE\n special_case (svfloat32_t x, svbool_t pg, svbool_t special,\n \t const struct data *d)\n {\n@@ -125,7 +125,7 @@ special_case (svfloat32_t x, svbool_t pg, svbool_t special,\n Maximum error is 3.31ulps:\n SV_NAME_F1 (log10)(0x1.555c16p+0) got 0x1.ffe2fap-4\n \t\t\t\t want 0x1.ffe2f4p-4. */\n-svfloat32_t SV_NAME_F1 (log10) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (log10) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/log10p1_sve.c b/sysdeps/aarch64/fpu/log10p1_sve.c\nindex 90ad8ec01ba..5c1bf929b92 100644\n--- a/sysdeps/aarch64/fpu/log10p1_sve.c\n+++ b/sysdeps/aarch64/fpu/log10p1_sve.c\n@@ -58,7 +58,7 @@ static const struct data\n .bottom_mask = 0x00000000ffffffff,\n };\n \n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_case (svfloat64_t x, svfloat64_t y, svbool_t special, svbool_t pg)\n {\n \n@@ -73,7 +73,7 @@ special_case (svfloat64_t x, svfloat64_t y, svbool_t special, svbool_t pg)\n Worst-case error is 2.81 ULP:\n _ZGVsMxv_log10p1(0x1.25c3f17d7602p-53) got 0x1.fe52a1624aad1p-55\n \t\t\t\t\t want 0x1.fe52a1624aacep-55. */\n-svfloat64_t SV_NAME_D1 (log10p1) (svfloat64_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (log10p1) (svfloat64_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/log10p1f_sve.c b/sysdeps/aarch64/fpu/log10p1f_sve.c\nindex d76f8b2df3c..5a6946672fe 100644\n--- a/sysdeps/aarch64/fpu/log10p1f_sve.c\n+++ b/sysdeps/aarch64/fpu/log10p1f_sve.c\n@@ -47,7 +47,7 @@ static const struct data\n \n #define SignedExpMask sv_s32 (0xff800000)\n \n-static svfloat32_t NOINLINE\n+SVE_FUNCTION static svfloat32_t NOINLINE\n special_case (svfloat32_t x, svfloat32_t y, const svbool_t pg,\n \t svbool_t special)\n {\n@@ -62,7 +62,7 @@ special_case (svfloat32_t x, svfloat32_t y, const svbool_t pg,\n Worst-case error is 3.40 ULP:\n _ZGVsMxv_log10p1f(0x1.8bfff6p+6) got 0x1.000002p+1\n \t\t\t\t want 0x1.fffffep+0. */\n-svfloat32_t SV_NAME_F1 (log10p1) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (log10p1) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/log1p_sve.c b/sysdeps/aarch64/fpu/log1p_sve.c\nindex bde0e8a7d1d..d19933a3a4d 100644\n--- a/sysdeps/aarch64/fpu/log1p_sve.c\n+++ b/sysdeps/aarch64/fpu/log1p_sve.c\n@@ -62,7 +62,7 @@ static const struct data\n #define AbsMask 0x7fffffffffffffff\n #define BottomMask 0xffffffff\n \n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_case (svfloat64_t x, svfloat64_t y, svbool_t special)\n {\n return sv_call_f64 (log1p, x, y, special);\n@@ -72,7 +72,7 @@ special_case (svfloat64_t x, svfloat64_t y, svbool_t special)\n observed error is 2.46 ULP:\n _ZGVsMxv_log1p(0x1.654a1307242a4p+11) got 0x1.fd5565fb590f4p+2\n \t\t\t\t\twant 0x1.fd5565fb590f6p+2. */\n-svfloat64_t SV_NAME_D1 (log1p) (svfloat64_t x, svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (log1p) (svfloat64_t x, svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n svuint64_t ix = svreinterpret_u64 (x);\ndiff --git a/sysdeps/aarch64/fpu/log1pf_sve.c b/sysdeps/aarch64/fpu/log1pf_sve.c\nindex f4d409eb507..0e776f2c777 100644\n--- a/sysdeps/aarch64/fpu/log1pf_sve.c\n+++ b/sysdeps/aarch64/fpu/log1pf_sve.c\n@@ -20,7 +20,7 @@\n #include \"sv_math.h\"\n #include \"sv_log1pf_inline.h\"\n \n-static svfloat32_t NOINLINE\n+SVE_FUNCTION static svfloat32_t NOINLINE\n special_case (svfloat32_t x, svbool_t special)\n {\n return sv_call_f32 (log1pf, x, sv_log1pf_inline (x, svptrue_b32 ()),\n@@ -31,7 +31,7 @@ special_case (svfloat32_t x, svbool_t special)\n error is 1.27 ULP very close to 0.5.\n _ZGVsMxv_log1pf(0x1.fffffep-2) got 0x1.9f324p-2\n \t\t\t\t want 0x1.9f323ep-2. */\n-svfloat32_t SV_NAME_F1 (log1p) (svfloat32_t x, svbool_t pg)\n+SVE_FUNCTION SVE_FUNCTION svfloat32_t SV_NAME_F1 (log1p) (svfloat32_t x, svbool_t pg)\n {\n /* x < -1, Inf/Nan. */\n svbool_t special = svcmpeq (pg, svreinterpret_u32 (x), 0x7f800000);\ndiff --git a/sysdeps/aarch64/fpu/log2_sve.c b/sysdeps/aarch64/fpu/log2_sve.c\nindex 918ed420258..c3f639082e1 100644\n--- a/sysdeps/aarch64/fpu/log2_sve.c\n+++ b/sysdeps/aarch64/fpu/log2_sve.c\n@@ -43,7 +43,7 @@ static const struct data\n .thresh = (0x7fe0000000000000), /* infinity - min. */\n };\n \n-static inline svfloat64_t\n+SVE_FUNCTION static inline svfloat64_t\n v_log2_inline (svuint64_t ix, const svbool_t pg, const struct data *d)\n {\n /* x = 2^k z; where z is in range [Off,2*Off) and exact.\n@@ -81,7 +81,7 @@ v_log2_inline (svuint64_t ix, const svbool_t pg, const struct data *d)\n calculation of x * 2^52 (2^mantissa) to normalise the number at entry to\n the log function and then subtract log2(2) * 52 = 52 to re-subnormalise the\n output to the correct result. */\n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_case (svfloat64_t x, svbool_t pg, svbool_t special)\n {\n const struct data *d = ptr_barrier (&data);\n@@ -116,7 +116,7 @@ special_case (svfloat64_t x, svbool_t pg, svbool_t special)\n The maximum observed error is 2.58 ULP:\n SV_NAME_D1 (log2)(0x1.0b556b093869bp+0) got 0x1.fffb34198d9dap-5\n \t\t\t\t\t want 0x1.fffb34198d9ddp-5. */\n-svfloat64_t SV_NAME_D1 (log2) (svfloat64_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (log2) (svfloat64_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/log2f_sve.c b/sysdeps/aarch64/fpu/log2f_sve.c\nindex 89d676e5a92..4c76b30f54d 100644\n--- a/sysdeps/aarch64/fpu/log2f_sve.c\n+++ b/sysdeps/aarch64/fpu/log2f_sve.c\n@@ -49,7 +49,7 @@ static const struct data\n \n #define MantissaMask 0x007fffff\n \n-static inline svfloat32_t\n+SVE_FUNCTION static inline svfloat32_t\n v_log2f_inline (svuint32_t u_off, svbool_t pg, const struct data *d)\n {\n svuint32_t u = svand_x (pg, u_off, MantissaMask);\n@@ -80,7 +80,7 @@ v_log2f_inline (svuint32_t u_off, svbool_t pg, const struct data *d)\n calculation of x * 2^23 (2^mantissa) to normalise the number at entry to\n the log function and then subtract log2(2) * 23 = 23 to re-subnormalise the\n output to the correct result. */\n-static inline svfloat32_t\n+SVE_FUNCTION static inline svfloat32_t\n special_case (svfloat32_t x, svbool_t pg, svbool_t special,\n \t const struct data *d)\n {\n@@ -115,7 +115,7 @@ special_case (svfloat32_t x, svbool_t pg, svbool_t special,\n Maximum error is 2.48 ULPs:\n SV_NAME_F1 (log2)(0x1.558174p+0) got 0x1.a9be84p-2\n \t\t\t\t want 0x1.a9be8p-2. */\n-svfloat32_t SV_NAME_F1 (log2) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (log2) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/log2p1_sve.c b/sysdeps/aarch64/fpu/log2p1_sve.c\nindex c68d9dde9e9..647ae2f531f 100644\n--- a/sysdeps/aarch64/fpu/log2p1_sve.c\n+++ b/sysdeps/aarch64/fpu/log2p1_sve.c\n@@ -53,7 +53,7 @@ static const struct data\n .inv_ln2 = 0x1.71547652b82fep+0,\n };\n \n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_case (svfloat64_t x, svfloat64_t y, svbool_t special, svbool_t pg)\n {\n \n@@ -68,7 +68,7 @@ special_case (svfloat64_t x, svfloat64_t y, svbool_t special, svbool_t pg)\n Worst-case error is 3.0 ULP:\n _ZGVsMxv_log2p1(0x1.62e029c6f784fp-18) got 0x1.fff9d9148a06fp-18\n \t\t\t\t\t want 0x1.fff9d9148a072p-18 . */\n-svfloat64_t SV_NAME_D1 (log2p1) (svfloat64_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (log2p1) (svfloat64_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/log2p1f_sve.c b/sysdeps/aarch64/fpu/log2p1f_sve.c\nindex f1048b07568..e9adeb09034 100644\n--- a/sysdeps/aarch64/fpu/log2p1f_sve.c\n+++ b/sysdeps/aarch64/fpu/log2p1f_sve.c\n@@ -34,7 +34,7 @@ static const struct data\n .four = 0x40800000,\t .three_quarters = 0x3f400000\n };\n \n-static svfloat32_t NOINLINE\n+SVE_FUNCTION static svfloat32_t NOINLINE\n special_case (svfloat32_t x, svfloat32_t y, const svbool_t pg,\n \t svbool_t special)\n {\n@@ -49,7 +49,7 @@ special_case (svfloat32_t x, svfloat32_t y, const svbool_t pg,\n Worst-case error is 1.90 ULP:\n _ZGVsMxv_log2p1f(0x1.8789fcp-2) got 0x1.de58d4p-2\n \t\t\t\t want 0x1.de58d8p-2. */\n-svfloat32_t SV_NAME_F1 (log2p1) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (log2p1) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/log_sve.c b/sysdeps/aarch64/fpu/log_sve.c\nindex 5eaae0ae568..6014769d4e1 100644\n--- a/sysdeps/aarch64/fpu/log_sve.c\n+++ b/sysdeps/aarch64/fpu/log_sve.c\n@@ -44,7 +44,7 @@ static const struct data\n .thresh = (0x7fe0000000000000), /* infinity - min. */\n };\n \n-static inline svfloat64_t\n+SVE_FUNCTION static inline svfloat64_t\n v_log_inline (svuint64_t ix, const svbool_t pg, const struct data *d)\n {\n /* x = 2^k z; where z is in range [Off,2*Off) and exact.\n@@ -85,7 +85,7 @@ v_log_inline (svuint64_t ix, const svbool_t pg, const struct data *d)\n calculation of x * 2^52 (2^mantissa) to normalise the number at entry to\n the log function and then subtract ln(2) * 52 to re-subnormalise the\n output to the correct result. */\n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_case (svfloat64_t x, svbool_t pg, svbool_t special)\n {\n const struct data *d = ptr_barrier (&data);\n@@ -118,7 +118,7 @@ special_case (svfloat64_t x, svbool_t pg, svbool_t special)\n Maximum measured error is 2.64 ulp:\n SV_NAME_D1 (log)(0x1.95e54bc91a5e2p+184) got 0x1.fffffffe88cacp+6\n \t\t\t\t\t want 0x1.fffffffe88cafp+6. */\n-svfloat64_t SV_NAME_D1 (log) (svfloat64_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (log) (svfloat64_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/logf_sve.c b/sysdeps/aarch64/fpu/logf_sve.c\nindex 95af72519fd..acaefebc851 100644\n--- a/sysdeps/aarch64/fpu/logf_sve.c\n+++ b/sysdeps/aarch64/fpu/logf_sve.c\n@@ -49,7 +49,7 @@ static const struct data\n \n #define MantissaMask 0x007fffff\n \n-static inline svfloat32_t\n+SVE_FUNCTION static inline svfloat32_t\n v_logf_inline (svuint32_t u_off, const svbool_t pg, const struct data *d)\n {\n svuint32_t u = svand_x (pg, u_off, MantissaMask);\n@@ -81,7 +81,7 @@ v_logf_inline (svuint32_t u_off, const svbool_t pg, const struct data *d)\n calculation of x * 2^23 (2^mantissa) to normalise the number at entry to\n the log function and then subtract ln(2) * 23 to re-subnormalise the result\n output to the correct result. */\n-static inline svfloat32_t\n+SVE_FUNCTION static inline svfloat32_t\n special_case (svfloat32_t x, svbool_t pg, svbool_t special,\n \t const struct data *d)\n {\n@@ -115,7 +115,7 @@ special_case (svfloat32_t x, svbool_t pg, svbool_t special,\n polynomial as the AdvSIMD routine. Maximum error is 3.34 ULPs:\n SV_NAME_F1 (log)(0x1.557298p+0) got 0x1.26edecp-2\n \t\t\t\t want 0x1.26ede6p-2. */\n-svfloat32_t SV_NAME_F1 (log) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (log) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/poly_sve_generic.h b/sysdeps/aarch64/fpu/poly_sve_generic.h\nindex 2c1fb996445..54600f5f4bf 100644\n--- a/sysdeps/aarch64/fpu/poly_sve_generic.h\n+++ b/sysdeps/aarch64/fpu/poly_sve_generic.h\n@@ -31,6 +31,8 @@\n # error Cannot use poly_generic without defining DUP\n #endif\n \n+OPTIONS_PUSH_SVE\n+\n static inline VTYPE VWRAP (pairwise_poly_3) (svbool_t pg, VTYPE x, VTYPE x2,\n \t\t\t\t\t const STYPE *poly)\n {\n@@ -311,3 +313,5 @@ static inline VTYPE VWRAP (pw_horner_18) (svbool_t pg, VTYPE x, VTYPE x2,\n VTYPE p01 = svmla_x (pg, DUP (poly[0]), x, poly[1]);\n return svmla_x (pg, p01, x2, p2_18);\n }\n+\n+OPTIONS_POP\ndiff --git a/sysdeps/aarch64/fpu/pow_sve.c b/sysdeps/aarch64/fpu/pow_sve.c\nindex 19062b5375d..0e0e978a44d 100644\n--- a/sysdeps/aarch64/fpu/pow_sve.c\n+++ b/sysdeps/aarch64/fpu/pow_sve.c\n@@ -89,21 +89,21 @@ static const struct data\n };\n \n /* Check if x is an integer. */\n-static inline svbool_t\n+SVE_FUNCTION static inline svbool_t\n sv_isint (svbool_t pg, svfloat64_t x)\n {\n return svcmpeq (pg, svrintz_z (pg, x), x);\n }\n \n /* Check if x is real not integer valued. */\n-static inline svbool_t\n+SVE_FUNCTION static inline svbool_t\n sv_isnotint (svbool_t pg, svfloat64_t x)\n {\n return svcmpne (pg, svrintz_z (pg, x), x);\n }\n \n /* Check if x is an odd integer. */\n-static inline svbool_t\n+SVE_FUNCTION static inline svbool_t\n sv_isodd (svbool_t pg, svfloat64_t x)\n {\n svfloat64_t y = svmul_x (svptrue_b64 (), x, 0.5);\n@@ -128,7 +128,7 @@ checkint (uint64_t iy)\n }\n \n /* Top 12 bits (sign and exponent of each double float lane). */\n-static inline svuint64_t\n+SVE_FUNCTION static inline svuint64_t\n sv_top12 (svfloat64_t x)\n {\n return svlsr_x (svptrue_b64 (), svreinterpret_u64 (x), 52);\n@@ -142,7 +142,7 @@ zeroinfnan (uint64_t i)\n }\n \n /* Returns 1 if input is the bit representation of 0, infinity or nan. */\n-static inline svbool_t\n+SVE_FUNCTION static inline svbool_t\n sv_zeroinfnan (svbool_t pg, svuint64_t i)\n {\n return svcmpge (pg, svsub_x (pg, svadd_x (pg, i, i), 1),\n@@ -156,7 +156,7 @@ sv_zeroinfnan (svbool_t pg, svuint64_t i)\n a double. (int32_t)KI is the k used in the argument reduction and exponent\n adjustment of scale, positive k here means the result may overflow and\n negative k means the result may underflow. */\n-static inline svfloat64_t\n+SVE_FUNCTION static inline svfloat64_t\n specialcase (svfloat64_t tmp, svuint64_t sbits, svuint64_t ki, svbool_t cmp)\n {\n svbool_t p_pos = svcmpge_n_f64 (cmp, svreinterpret_f64_u64 (ki), 0.0);\n@@ -177,7 +177,7 @@ specialcase (svfloat64_t tmp, svuint64_t sbits, svuint64_t ki, svbool_t cmp)\n /* Compute y+TAIL = log(x) where the rounded result is y and TAIL has about\n additional 15 bits precision. IX is the bit representation of x, but\n normalized in the subnormal range using the sign bit for the exponent. */\n-static inline svfloat64_t\n+SVE_FUNCTION static inline svfloat64_t\n sv_log_inline (svbool_t pg, svuint64_t ix, svfloat64_t *tail,\n \t const struct data *d)\n {\n@@ -239,7 +239,7 @@ sv_log_inline (svbool_t pg, svuint64_t ix, svfloat64_t *tail,\n return y;\n }\n \n-static inline svfloat64_t\n+SVE_FUNCTION static inline svfloat64_t\n sv_exp_core (svbool_t pg, svfloat64_t x, svfloat64_t xtail,\n \t svuint64_t sign_bias, svfloat64_t *tmp, svuint64_t *sbits,\n \t svuint64_t *ki, const struct data *d)\n@@ -280,7 +280,7 @@ sv_exp_core (svbool_t pg, svfloat64_t x, svfloat64_t xtail,\n \n /* Computes sign*exp(x+xtail) where |xtail| < 2^-8/N and |xtail| <= |x|.\n The sign_bias argument is SignBias or 0 and sets the sign to -1 or 1. */\n-static inline svfloat64_t\n+SVE_FUNCTION static inline svfloat64_t\n sv_exp_inline (svbool_t pg, svfloat64_t x, svfloat64_t xtail,\n \t svuint64_t sign_bias, const struct data *d)\n {\n@@ -363,14 +363,15 @@ pow_specialcase (double x, double y)\n }\n \n /* Scalar fallback for special case routines with custom signature. */\n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n sv_pow_specialcase (svfloat64_t x1, svfloat64_t x2, svfloat64_t y,\n \t\t svbool_t cmp)\n {\n return sv_call2_f64 (pow_specialcase, x1, x2, y, cmp);\n }\n \n-svfloat64_t SV_NAME_D2 (pow) (svfloat64_t x, svfloat64_t y, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D2 (pow) (svfloat64_t x, svfloat64_t y,\n+\t\t\t\t\t const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/powf_sve.c b/sysdeps/aarch64/fpu/powf_sve.c\nindex 46b006c845c..3e8b85c2008 100644\n--- a/sysdeps/aarch64/fpu/powf_sve.c\n+++ b/sysdeps/aarch64/fpu/powf_sve.c\n@@ -59,21 +59,21 @@ static const struct data\n #define C(i) sv_f64 (d->exp_poly[i])\n \n /* Check if x is an integer. */\n-static inline svbool_t\n+SVE_FUNCTION static inline svbool_t\n svisint (svbool_t pg, svfloat32_t x)\n {\n return svcmpeq (pg, svrintz_z (pg, x), x);\n }\n \n /* Check if x is real not integer valued. */\n-static inline svbool_t\n+SVE_FUNCTION static inline svbool_t\n svisnotint (svbool_t pg, svfloat32_t x)\n {\n return svcmpne (pg, svrintz_z (pg, x), x);\n }\n \n /* Check if x is an odd integer. */\n-static inline svbool_t\n+SVE_FUNCTION static inline svbool_t\n svisodd (svbool_t pg, svfloat32_t x)\n {\n svfloat32_t y = svmul_x (pg, x, 0.5f);\n@@ -81,7 +81,7 @@ svisodd (svbool_t pg, svfloat32_t x)\n }\n \n /* Check if zero, inf or nan. */\n-static inline svbool_t\n+SVE_FUNCTION static inline svbool_t\n sv_zeroinfnan (svbool_t pg, svuint32_t i)\n {\n return svcmpge (pg, svsub_x (pg, svadd_x (pg, i, i), 1),\n@@ -146,14 +146,14 @@ powf_specialcase (float x, float y)\n }\n \n /* Scalar fallback for special case routines with custom signature. */\n-static svfloat32_t NOINLINE\n+SVE_FUNCTION static svfloat32_t NOINLINE\n sv_call_powf_sc (svfloat32_t x1, svfloat32_t x2, svfloat32_t y, svbool_t cmp)\n {\n return sv_call2_f32 (powf_specialcase, x1, x2, y, cmp);\n }\n \n /* Compute core for half of the lanes in double precision. */\n-static inline svfloat64_t\n+SVE_FUNCTION static inline svfloat64_t\n sv_powf_core_ext (const svbool_t pg, svuint64_t i, svfloat64_t z, svint64_t k,\n \t\t svfloat64_t y, svuint64_t sign_bias, svfloat64_t *pylogx,\n \t\t const struct data *d)\n@@ -197,7 +197,7 @@ sv_powf_core_ext (const svbool_t pg, svuint64_t i, svfloat64_t z, svint64_t k,\n \n /* Widen vector to double precision and compute core on both halves of the\n vector. Lower cost of promotion by considering all lanes active. */\n-static inline svfloat32_t\n+SVE_FUNCTION static inline svfloat32_t\n sv_powf_core (const svbool_t pg, svuint32_t i, svuint32_t iz, svint32_t k,\n \t svfloat32_t y, svuint32_t sign_bias, svfloat32_t *pylogx,\n \t const struct data *d)\n@@ -243,7 +243,8 @@ sv_powf_core (const svbool_t pg, svuint32_t i, svuint32_t iz, svint32_t k,\n Maximum measured error is 2.57 ULPs:\n SV_NAME_F2 (pow) (0x1.031706p+0, 0x1.ce2ec2p+12) got 0x1.fff868p+127\n \t\t\t\t\t\t want 0x1.fff862p+127. */\n-svfloat32_t SV_NAME_F2 (pow) (svfloat32_t x, svfloat32_t y, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F2 (pow) (svfloat32_t x, svfloat32_t y,\n+\t\t\t\t\t const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/rsqrt_sve.c b/sysdeps/aarch64/fpu/rsqrt_sve.c\nindex 789c8060d6b..44fbda62f64 100644\n--- a/sysdeps/aarch64/fpu/rsqrt_sve.c\n+++ b/sysdeps/aarch64/fpu/rsqrt_sve.c\n@@ -34,7 +34,7 @@ static const struct data\n .scale_down = 27,\n };\n \n-static inline svfloat64_t\n+SVE_FUNCTION static inline svfloat64_t\n inline_rsqrt (svfloat64_t x)\n {\n /* Do estimate instruction. */\n@@ -58,7 +58,7 @@ inline_rsqrt (svfloat64_t x)\n return estimate;\n }\n \n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_case (svfloat64_t x, svbool_t special, const struct data *d)\n {\n x = svscale_f64_m (special, x, sv_s64 (d->scale_up));\n@@ -70,7 +70,7 @@ special_case (svfloat64_t x, svbool_t special, const struct data *d)\n Maximum observed error: 1.45 + 0.5\n _ZGVnN2v_rsqrt(0x1.d13fb41254643p+1023) got 0x1.0c8dee1b29dfap-512\n \t\t\t\t\t want 0x1.0c8dee1b29df8p-512. */\n-svfloat64_t SV_NAME_D1 (rsqrt) (svfloat64_t x, svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (rsqrt) (svfloat64_t x, svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/rsqrtf_sve.c b/sysdeps/aarch64/fpu/rsqrtf_sve.c\nindex 525f3f32371..27f3ef3b061 100644\n--- a/sysdeps/aarch64/fpu/rsqrtf_sve.c\n+++ b/sysdeps/aarch64/fpu/rsqrtf_sve.c\n@@ -35,7 +35,7 @@ static const struct data\n .scale_down = 11,\n };\n \n-static inline svfloat32_t\n+SVE_FUNCTION static inline svfloat32_t\n inline_rsqrt (svfloat32_t x)\n {\n /* Do estimate instruction. */\n@@ -54,7 +54,7 @@ inline_rsqrt (svfloat32_t x)\n return estimate;\n }\n \n-static svfloat32_t NOINLINE\n+SVE_FUNCTION static svfloat32_t NOINLINE\n special_case (svfloat32_t x, svbool_t special, const struct data *d)\n {\n x = svscale_f32_m (special, x, sv_s32 (d->scale_up));\n@@ -66,7 +66,7 @@ special_case (svfloat32_t x, svbool_t special, const struct data *d)\n Maximum observed error: 1.47 + 0.5\n _ZGVsMxv_rsqrtf (0x1.f610dep+127) got 0x1.02852cp-64\n \t\t\t\t want 0x1.02853p-64. */\n-svfloat32_t SV_NAME_F1 (rsqrt) (svfloat32_t x, svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (rsqrt) (svfloat32_t x, svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/sin_sve.c b/sysdeps/aarch64/fpu/sin_sve.c\nindex c28d00cd88a..65c9eadf9f2 100644\n--- a/sysdeps/aarch64/fpu/sin_sve.c\n+++ b/sysdeps/aarch64/fpu/sin_sve.c\n@@ -38,7 +38,7 @@ static const struct data\n \n #define C(i) sv_f64 (d->poly[i])\n \n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_case (svfloat64_t x, svfloat64_t y, svbool_t cmp)\n {\n return sv_call_f64 (sin, x, y, cmp);\n@@ -53,7 +53,7 @@ special_case (svfloat64_t x, svfloat64_t y, svbool_t cmp)\n is 3.22 ULP:\n _ZGVsMxv_sin (0x1.5702447b6f17bp+22) got 0x1.ffdcd125c84fbp-3\n \t\t\t\t want 0x1.ffdcd125c84f8p-3. */\n-svfloat64_t SV_NAME_D1 (sin) (svfloat64_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (sin) (svfloat64_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/sinf_sve.c b/sysdeps/aarch64/fpu/sinf_sve.c\nindex 5f5aa609241..c81b1f62882 100644\n--- a/sysdeps/aarch64/fpu/sinf_sve.c\n+++ b/sysdeps/aarch64/fpu/sinf_sve.c\n@@ -42,7 +42,7 @@ static const struct data\n #define RangeVal 0x49800000 /* asuint32 (0x1p20f). */\n #define C(i) sv_f32 (d->poly[i])\n \n-static svfloat32_t NOINLINE\n+SVE_FUNCTION static svfloat32_t NOINLINE\n special_case (svfloat32_t x, svfloat32_t y, svbool_t cmp)\n {\n return sv_call_f32 (sinf, x, y, cmp);\n@@ -53,7 +53,7 @@ special_case (svfloat32_t x, svfloat32_t y, svbool_t cmp)\n This maximum error is achieved at multiple values in [-2^18, 2^18]\n but one example is:\n SV_NAME_F1 (sin)(0x1.9247a4p+0) got 0x1.fffff6p-1 want 0x1.fffffap-1. */\n-svfloat32_t SV_NAME_F1 (sin) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (sin) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/sinh_sve.c b/sysdeps/aarch64/fpu/sinh_sve.c\nindex 2b8d04833c2..7ed7e855180 100644\n--- a/sysdeps/aarch64/fpu/sinh_sve.c\n+++ b/sysdeps/aarch64/fpu/sinh_sve.c\n@@ -59,7 +59,7 @@ static const struct data\n /* A specialised FEXPA expm1 that is only valid for positive inputs and\n has no special cases. Based off the full FEXPA expm1 implementated for\n _ZGVsMxv_expm1, with a slightly modified file to keep sinh under 3.5ULP. */\n-static inline svfloat64_t\n+SVE_FUNCTION static inline svfloat64_t\n expm1_inline (svbool_t pg, svfloat64_t x)\n {\n const struct data *d = ptr_barrier (&data);\n@@ -114,7 +114,7 @@ expm1_inline (svbool_t pg, svfloat64_t x)\n sinh (A + B) = cosh(A)cosh(B) + sinh(A)sinh(B)\n By choosing sufficiently large values whereby after rounding sinh == cosh,\n this can be simplified into: sinh (A + B) = sinh(A) * e^B. */\n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_case (svuint64_t sign, svbool_t pg, svbool_t special, svfloat64_t ax,\n \t svfloat64_t halfsign)\n {\n@@ -151,7 +151,7 @@ special_case (svuint64_t sign, svbool_t pg, svbool_t special, svfloat64_t ax,\n The greatest observed error is 2.62 + 0.5 ULP:\n _ZGVsMxv_sinh (0x1.b5e0e13ba88aep-2) got 0x1.c3587faf97b0cp-2\n \t\t\t\t want 0x1.c3587faf97b09p-2. */\n-svfloat64_t SV_NAME_D1 (sinh) (svfloat64_t x, svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (sinh) (svfloat64_t x, svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/sinhf_sve.c b/sysdeps/aarch64/fpu/sinhf_sve.c\nindex e52712438ae..d007a654d69 100644\n--- a/sysdeps/aarch64/fpu/sinhf_sve.c\n+++ b/sysdeps/aarch64/fpu/sinhf_sve.c\n@@ -40,7 +40,7 @@ static const struct data\n sinh (A + B) = cosh(A)cosh(B) + sinh(A)sinh(B)\n By choosing sufficiently large values whereby after rounding sinh == cosh,\n this can be simplified into: sinh (A + B) = sinh(A) * e^B. */\n-static inline svfloat32_t\n+SVE_FUNCTION static inline svfloat32_t\n special_case (const svbool_t pg, svbool_t special, svfloat32_t ax,\n \t svfloat32_t x, svfloat32_t t, const struct data *d)\n {\n@@ -80,7 +80,7 @@ special_case (const svbool_t pg, svbool_t special, svfloat32_t ax,\n Maximum error is 2.76 +0.5 ULP:\n _ZGVsMxv_sinhf (0x1.6587e8p+6) got 0x1.ef3f98p+127\n \t\t\t\t want 0x1.ef3f92p+127. */\n-svfloat32_t SV_NAME_F1 (sinh) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (sinh) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/sinpi_sve.c b/sysdeps/aarch64/fpu/sinpi_sve.c\nindex af2ba77f98e..75cc7bdcf82 100644\n--- a/sysdeps/aarch64/fpu/sinpi_sve.c\n+++ b/sysdeps/aarch64/fpu/sinpi_sve.c\n@@ -37,7 +37,7 @@ static const struct data\n Maximum error 3.10 ULP:\n _ZGVsMxv_sinpi(0x1.df1a14f1b235p-2) got 0x1.fd64f541606cp-1\n \t\t\t\t want 0x1.fd64f541606c3p-1. */\n-svfloat64_t SV_NAME_D1 (sinpi) (svfloat64_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (sinpi) (svfloat64_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/sinpif_sve.c b/sysdeps/aarch64/fpu/sinpif_sve.c\nindex 026423b0627..0979c93242a 100644\n--- a/sysdeps/aarch64/fpu/sinpif_sve.c\n+++ b/sysdeps/aarch64/fpu/sinpif_sve.c\n@@ -34,7 +34,7 @@ static const struct data\n Maximum error 2.48 ULP:\n _ZGVsMxv_sinpif(0x1.d062b6p-2) got 0x1.fa8c06p-1\n \t\t\t\t want 0x1.fa8c02p-1. */\n-svfloat32_t SV_NAME_F1 (sinpi) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (sinpi) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/sv_exp_special_inline.h b/sysdeps/aarch64/fpu/sv_exp_special_inline.h\nindex aea7c174373..955f511760d 100644\n--- a/sysdeps/aarch64/fpu/sv_exp_special_inline.h\n+++ b/sysdeps/aarch64/fpu/sv_exp_special_inline.h\n@@ -31,7 +31,7 @@ static const struct sv_exp_special_data\n .special_bias2 = 0x3010000000000000, /* 0x1p-254. */\n };\n \n-static inline svfloat64_t\n+SVE_FUNCTION static inline svfloat64_t\n special_case (svfloat64_t scale, svfloat64_t poly, svfloat64_t n,\n \t const struct sv_exp_special_data *ds)\n {\ndiff --git a/sysdeps/aarch64/fpu/sv_expf_inline.h b/sysdeps/aarch64/fpu/sv_expf_inline.h\nindex 0ba5892f4d1..d3e74564fc2 100644\n--- a/sysdeps/aarch64/fpu/sv_expf_inline.h\n+++ b/sysdeps/aarch64/fpu/sv_expf_inline.h\n@@ -35,7 +35,7 @@ struct sv_expf_data\n .ln2_lo = 0x1.7f7d1cp-20f, .shift = 0x1.803f8p17f, \\\n }\n \n-static inline svfloat32_t\n+SVE_FUNCTION static inline svfloat32_t\n expf_inline (svfloat32_t x, const svbool_t pg, const struct sv_expf_data *d)\n {\n /* exp(x) = 2^n (1 + poly(r)), with 1 + poly(r) in [1/sqrt(2),sqrt(2)]\ndiff --git a/sysdeps/aarch64/fpu/sv_expf_special_inline.h b/sysdeps/aarch64/fpu/sv_expf_special_inline.h\nindex 83b36e3a249..9f1ddf170a4 100644\n--- a/sysdeps/aarch64/fpu/sv_expf_special_inline.h\n+++ b/sysdeps/aarch64/fpu/sv_expf_special_inline.h\n@@ -32,7 +32,7 @@ static const struct sv_expf_special_data\n };\n \n /* Special case routine shared with other expBm1 routines. */\n-static inline svfloat32_t\n+SVE_FUNCTION static inline svfloat32_t\n special_exp (svfloat32_t poly, svfloat32_t n, svuint32_t e, svbool_t cmp1,\n \t svfloat32_t scale, const struct sv_expf_special_data *ds)\n {\n@@ -53,7 +53,7 @@ special_exp (svfloat32_t poly, svfloat32_t n, svuint32_t e, svbool_t cmp1,\n }\n \n /* Special case routine for expBm1. */\n-static svfloat32_t NOINLINE\n+SVE_FUNCTION static svfloat32_t NOINLINE\n special_case (svfloat32_t poly, svfloat32_t n, svfloat32_t scale,\n \t svbool_t cmp1, const struct sv_expf_special_data *ds)\n {\ndiff --git a/sysdeps/aarch64/fpu/sv_expm1f_inline.h b/sysdeps/aarch64/fpu/sv_expm1f_inline.h\nindex 8dcda485fe2..3eea00da56f 100644\n--- a/sysdeps/aarch64/fpu/sv_expm1f_inline.h\n+++ b/sysdeps/aarch64/fpu/sv_expm1f_inline.h\n@@ -39,7 +39,7 @@ struct sv_expm1f_data\n .c4 = 0x1.6b55a2p-10, .ln2_lo = 0x1.7f7d1cp-20f, .ln2_hi = 0x1.62e4p-1f, \\\n }\n \n-static inline svfloat32_t\n+SVE_FUNCTION static inline svfloat32_t\n expm1f_inline (svfloat32_t x, svbool_t pg, const struct sv_expm1f_data *d)\n {\n /* This vector is reliant on layout of data - it contains constants\ndiff --git a/sysdeps/aarch64/fpu/sv_log1p_inline.h b/sysdeps/aarch64/fpu/sv_log1p_inline.h\nindex 1b2c542851c..16f3ca16c17 100644\n--- a/sysdeps/aarch64/fpu/sv_log1p_inline.h\n+++ b/sysdeps/aarch64/fpu/sv_log1p_inline.h\n@@ -63,7 +63,7 @@ static const struct sv_log1p_data\n .one_top = 0x3ff\n };\n \n-static inline svfloat64_t\n+SVE_FUNCTION static inline svfloat64_t\n sv_log1p_inline (svfloat64_t x, const svbool_t pg)\n {\n /* Helper for calculating log(x + 1). Adapted from v_log1p_inline.h, which\ndiff --git a/sysdeps/aarch64/fpu/sv_log1pf_inline.h b/sysdeps/aarch64/fpu/sv_log1pf_inline.h\nindex 494fa279f89..444879d2db3 100644\n--- a/sysdeps/aarch64/fpu/sv_log1pf_inline.h\n+++ b/sysdeps/aarch64/fpu/sv_log1pf_inline.h\n@@ -42,7 +42,7 @@ static const struct sv_log1pf_data\n .three_quarters = 0x3f400000,\n };\n \n-static inline svfloat32_t\n+SVE_FUNCTION static inline svfloat32_t\n sv_log1pf_inline (svfloat32_t x, svbool_t pg)\n {\n const struct sv_log1pf_data *d = ptr_barrier (&sv_log1pf_data);\ndiff --git a/sysdeps/aarch64/fpu/sv_math.h b/sysdeps/aarch64/fpu/sv_math.h\nindex f9199d04e0a..5269b523318 100644\n--- a/sysdeps/aarch64/fpu/sv_math.h\n+++ b/sysdeps/aarch64/fpu/sv_math.h\n@@ -35,11 +35,25 @@\n /* Predicate is stored as one bit per byte of VL so requires VL / 64 bytes. */\n #define SVE_NUM_PG_BYTES (SVE_VECTOR_BYTES / sizeof (uint64_t))\n \n+#define SVE_FUNCTION __attribute__((target(\"+sve\")))\n+#ifdef __clang__\n+# define OPTIONS_PUSH_SVE \\\n+ _Pragma(\"clang attribute push (__attribute__((target(\\\"+sve\\\"))), apply_to=function)\")\n+# define OPTIONS_POP _Pragma(\"clang attribute pop\")\n+#else\n+# define OPTIONS_PUSH_SVE _Pragma (\"GCC push_options\"); \\\n+ \t\t\t _Pragma (\"GCC target(\\\"+sve\\\")\")\n+# define OPTIONS_POP _Pragma (\"GCC pop_options\")\n+#endif\n+\n+\n #define SV_NAME_F1(fun) _ZGVsMxv_##fun##f\n #define SV_NAME_D1(fun) _ZGVsMxv_##fun\n #define SV_NAME_F2(fun) _ZGVsMxvv_##fun##f\n #define SV_NAME_D2(fun) _ZGVsMxvv_##fun\n \n+OPTIONS_PUSH_SVE\n+\n static inline void\n svstr_p (uint8_t *dst, svbool_t p)\n {\n@@ -165,4 +179,7 @@ sv_call2_f32 (float (*f) (float, float), svfloat32_t x1, svfloat32_t x2,\n }\n return svld1 (svptrue_b32 (), tmp1);\n }\n+\n+OPTIONS_POP\n+\n #endif\ndiff --git a/sysdeps/aarch64/fpu/tan_sve.c b/sysdeps/aarch64/fpu/tan_sve.c\nindex 1231541531e..ae7a38aff04 100644\n--- a/sysdeps/aarch64/fpu/tan_sve.c\n+++ b/sysdeps/aarch64/fpu/tan_sve.c\n@@ -41,7 +41,7 @@ static const struct data\n .range_val = 0x1p23,\n };\n \n-static svfloat64_t NOINLINE\n+SVE_FUNCTION static svfloat64_t NOINLINE\n special_case (svfloat64_t x, svfloat64_t p, svfloat64_t q, svbool_t pg,\n \t svbool_t special)\n {\n@@ -61,7 +61,7 @@ special_case (svfloat64_t x, svfloat64_t p, svfloat64_t q, svbool_t pg,\n Maximum measured error is 3.48 ULP:\n _ZGVsMxv_tan(0x1.4457047ef78d8p+20) got -0x1.f6ccd8ecf7dedp+37\n \t\t\t\t want -0x1.f6ccd8ecf7deap+37. */\n-svfloat64_t SV_NAME_D1 (tan) (svfloat64_t x, svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (tan) (svfloat64_t x, svbool_t pg)\n {\n const struct data *dat = ptr_barrier (&data);\n svfloat64_t half_pi_c0 = svld1rq (svptrue_b64 (), &dat->c0);\ndiff --git a/sysdeps/aarch64/fpu/tanf_sve.c b/sysdeps/aarch64/fpu/tanf_sve.c\nindex 60d93fd7e25..3c077e2cb6c 100644\n--- a/sysdeps/aarch64/fpu/tanf_sve.c\n+++ b/sysdeps/aarch64/fpu/tanf_sve.c\n@@ -46,7 +46,7 @@ static const struct data\n .range_val = 0x1p15f,\t .shift = 0x1.8p+23f\n };\n \n-static svfloat32_t NOINLINE\n+SVE_FUNCTION static svfloat32_t NOINLINE\n special_case (svfloat32_t x, svfloat32_t y, svbool_t cmp)\n {\n return sv_call_f32 (tanf, x, y, cmp);\n@@ -56,7 +56,7 @@ special_case (svfloat32_t x, svfloat32_t y, svbool_t cmp)\n Maximum error is 3.45 ULP:\n SV_NAME_F1 (tan)(-0x1.e5f0cap+13) got 0x1.ff9856p-1\n \t\t\t\t want 0x1.ff9850p-1. */\n-svfloat32_t SV_NAME_F1 (tan) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (tan) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/tanh_sve.c b/sysdeps/aarch64/fpu/tanh_sve.c\nindex 65712c6d49d..5a935569e76 100644\n--- a/sysdeps/aarch64/fpu/tanh_sve.c\n+++ b/sysdeps/aarch64/fpu/tanh_sve.c\n@@ -55,7 +55,7 @@ static const struct data\n /* An expm1 inspired, FEXPA based helper function that returns an\n accurate estimate for e^2x - 1. With no special case or support for\n negative inputs of x. */\n-static inline svfloat64_t\n+SVE_FUNCTION static inline svfloat64_t\n e2xm1_inline (const svbool_t pg, svfloat64_t x, const struct data *d)\n {\n svfloat64_t z = svmla_x (pg, sv_f64 (d->shift), x, d->two_over_ln2);\n@@ -108,7 +108,7 @@ e2xm1_inline (const svbool_t pg, svfloat64_t x, const struct data *d)\n The greatest observed error is 2.79 + 0.5 ULP:\n _ZGVsMxv_tanh (0x1.fff868eb3c223p-9) got 0x1.fff7be486cae6p-9\n \t\t\t\t want 0x1.fff7be486cae9p-9. */\n-svfloat64_t SV_NAME_D1 (tanh) (svfloat64_t x, svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (tanh) (svfloat64_t x, svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/tanhf_sve.c b/sysdeps/aarch64/fpu/tanhf_sve.c\nindex 6fd2879c277..dc1007fb4bf 100644\n--- a/sysdeps/aarch64/fpu/tanhf_sve.c\n+++ b/sysdeps/aarch64/fpu/tanhf_sve.c\n@@ -44,7 +44,7 @@ static const struct data\n \n /* An expm1 inspired helper function that returns an accurate\n estimate for e^2x - 1. */\n-static inline svfloat32_t\n+SVE_FUNCTION static inline svfloat32_t\n e2xm1f_inline (svfloat32_t x, svbool_t pg, const struct data *d)\n {\n /* This vector is reliant on layout of data - it contains constants\n@@ -82,7 +82,7 @@ e2xm1f_inline (svfloat32_t x, svbool_t pg, const struct data *d)\n return svmla_x (pg, svsub_x (pg, t, 1.0f), p, t);\n }\n \n-static svfloat32_t NOINLINE\n+SVE_FUNCTION static svfloat32_t NOINLINE\n special_case (svfloat32_t x, svbool_t pg, svbool_t special, svfloat32_t q)\n {\n /* Finish fastpass to compute values for non-special cases. */\n@@ -108,7 +108,7 @@ special_case (svfloat32_t x, svbool_t pg, svbool_t special, svfloat32_t q)\n Maximum error is 2.06 +0.5 ULP:\n _ZGVsMxv_tanhf (0x1.fc1832p-5) got 0x1.fb71a4p-5\n \t\t\t\t want 0x1.fb71aap-5. */\n-svfloat32_t SV_NAME_F1 (tanh) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (tanh) (svfloat32_t x, const svbool_t pg)\n {\n const struct data *d = ptr_barrier (&data);\n \ndiff --git a/sysdeps/aarch64/fpu/tanpi_sve.c b/sysdeps/aarch64/fpu/tanpi_sve.c\nindex f6b402ff221..7a208a3b985 100644\n--- a/sysdeps/aarch64/fpu/tanpi_sve.c\n+++ b/sysdeps/aarch64/fpu/tanpi_sve.c\n@@ -42,7 +42,7 @@ const static struct v_tanpi_data\n The maximum error is 3.06 ULP:\n _ZGVsMxv_tanpi(0x1.0a4a07dfcca3ep-1) got -0x1.fa30112702c98p+3\n \t\t\t\t want -0x1.fa30112702c95p+3. */\n-svfloat64_t SV_NAME_D1 (tanpi) (svfloat64_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat64_t SV_NAME_D1 (tanpi) (svfloat64_t x, const svbool_t pg)\n {\n const struct v_tanpi_data *d = ptr_barrier (&tanpi_data);\n \ndiff --git a/sysdeps/aarch64/fpu/tanpif_sve.c b/sysdeps/aarch64/fpu/tanpif_sve.c\nindex c652f370622..7e3d635ce84 100644\n--- a/sysdeps/aarch64/fpu/tanpif_sve.c\n+++ b/sysdeps/aarch64/fpu/tanpif_sve.c\n@@ -34,7 +34,7 @@ const static struct v_tanpif_data\n The maximum error is 3.34 ULP:\n _ZGVsMxv_tanpif(0x1.d6c09ap-2) got 0x1.f70aacp+2\n \t\t\t\t want 0x1.f70aa6p+2. */\n-svfloat32_t SV_NAME_F1 (tanpi) (svfloat32_t x, const svbool_t pg)\n+SVE_FUNCTION svfloat32_t SV_NAME_F1 (tanpi) (svfloat32_t x, const svbool_t pg)\n {\n const struct v_tanpif_data *d = ptr_barrier (&tanpif_data);\n svfloat32_t odd_coeffs = svld1rq (svptrue_b32 (), &d->c1);\ndiff --git a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c\nindex 86e73756a23..24245c8ac6f 100644\n--- a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c\n+++ b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c\n@@ -20,12 +20,14 @@\n #include <arm_sve.h>\n \n #include \"test-double-sve.h\"\n+#define attribute_hidden\n+#include \"sv_math.h\"\n \n /* Wrapper from scalar to SVE function. Cannot just use VECTOR_WRAPPER due to\n predication. */\n #define SVE_VECTOR_WRAPPER(scalar_func, vector_func) \\\n extern VEC_TYPE vector_func (VEC_TYPE, svbool_t); \\\n- FLOAT scalar_func (FLOAT x) \\\n+ SVE_FUNCTION FLOAT scalar_func (FLOAT x) \\\n { \\\n VEC_TYPE mx = svdup_n_f64 (x); \\\n VEC_TYPE mr = vector_func (mx, svptrue_b64 ()); \\\n@@ -34,7 +36,7 @@\n \n #define SVE_VECTOR_WRAPPER_ff(scalar_func, vector_func) \\\n extern VEC_TYPE vector_func (VEC_TYPE, VEC_TYPE, svbool_t); \\\n- FLOAT scalar_func (FLOAT x, FLOAT y) \\\n+ SVE_FUNCTION FLOAT scalar_func (FLOAT x, FLOAT y) \\\n { \\\n VEC_TYPE mx = svdup_n_f64 (x); \\\n VEC_TYPE my = svdup_n_f64 (y); \\\ndiff --git a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c\nindex 0d9a7e5b93b..0469eb16458 100644\n--- a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c\n+++ b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c\n@@ -20,12 +20,14 @@\n #include <arm_sve.h>\n \n #include \"test-float-sve.h\"\n+#define attribute_hidden\n+#include \"sv_math.h\"\n \n /* Wrapper from scalar to SVE function. Cannot just use VECTOR_WRAPPER due to\n predication. */\n #define SVE_VECTOR_WRAPPER(scalar_func, vector_func) \\\n extern VEC_TYPE vector_func (VEC_TYPE, svbool_t); \\\n- FLOAT scalar_func (FLOAT x) \\\n+ SVE_FUNCTION FLOAT scalar_func (FLOAT x) \\\n { \\\n VEC_TYPE mx = svdup_n_f32 (x); \\\n VEC_TYPE mr = vector_func (mx, svptrue_b32 ()); \\\n@@ -34,7 +36,7 @@\n \n #define SVE_VECTOR_WRAPPER_ff(scalar_func, vector_func) \\\n extern VEC_TYPE vector_func (VEC_TYPE, VEC_TYPE, svbool_t); \\\n- FLOAT scalar_func (FLOAT x, FLOAT y) \\\n+ SVE_FUNCTION FLOAT scalar_func (FLOAT x, FLOAT y) \\\n { \\\n VEC_TYPE mx = svdup_n_f32 (x); \\\n VEC_TYPE my = svdup_n_f32 (y); \\\n", "prefixes": [] }