Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2194419/?format=api
{ "id": 2194419, "url": "http://patchwork.ozlabs.org/api/patches/2194419/?format=api", "web_url": "http://patchwork.ozlabs.org/project/glibc/patch/20260208220454.51741-6-zihong.plct@isrc.iscas.ac.cn/", "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": "<20260208220454.51741-6-zihong.plct@isrc.iscas.ac.cn>", "list_archive_url": null, "date": "2026-02-08T22:04:40", "name": "[RFC,5/5] riscv: libmvec: exercise RVV ABI calls", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "799beaf2210954b4f2dfb3eb517db912f948ecba", "submitter": { "id": 91553, "url": "http://patchwork.ozlabs.org/api/people/91553/?format=api", "name": "Yao Zihong", "email": "zihong.plct@isrc.iscas.ac.cn" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/glibc/patch/20260208220454.51741-6-zihong.plct@isrc.iscas.ac.cn/mbox/", "series": [ { "id": 491443, "url": "http://patchwork.ozlabs.org/api/series/491443/?format=api", "web_url": "http://patchwork.ozlabs.org/project/glibc/list/?series=491443", "date": "2026-02-08T22:04:40", "name": "riscv: Add libmvec routines", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/491443/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2194419/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2194419/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 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; dmarc=none (p=none dis=none)\n header.from=isrc.iscas.ac.cn", "sourceware.org;\n spf=pass smtp.mailfrom=isrc.iscas.ac.cn", "server2.sourceware.org;\n arc=none smtp.remote-ip=159.226.251.21" ], "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 4f8MMc3Wctz1xtr\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 09 Feb 2026 09:05:32 +1100 (AEDT)", "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 89F0E452C4FF\n\tfor <incoming@patchwork.ozlabs.org>; Sun, 8 Feb 2026 22:05:30 +0000 (GMT)", "from cstnet.cn (smtp21.cstnet.cn [159.226.251.21])\n by sourceware.org (Postfix) with ESMTPS id BC5A6452C4F4\n for <libc-alpha@sourceware.org>; Sun, 8 Feb 2026 22:05:07 +0000 (GMT)", "from Mobilestation.localdomain (unknown [183.6.59.140])\n by APP-01 (Coremail) with SMTP id qwCowAAHsGuICIlpA257Bw--.50153S7;\n Mon, 09 Feb 2026 06:05:04 +0800 (CST)" ], "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 sourceware.org 89F0E452C4FF", "OpenDKIM Filter v2.11.0 sourceware.org BC5A6452C4F4" ], "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org BC5A6452C4F4", "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org BC5A6452C4F4", "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1770588308; cv=none;\n b=Cl3OFvgF8uE2tDBe7GRrtnPsZ0FceJ/be6OmPA2L/nRpJefqm91MEzB+ExBw0xvnbvND9ry/I2zEBks9+aV+WAVjSNFOqYCfB0GdVyNZYTKFu/pgj839nliZNXrUjKKN8Z0cwYti++Yb9oMiBGGySLuHhlikE/QjGiDSNHlcWyM=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1770588308; c=relaxed/simple;\n bh=myO9BGlkfag+IBfJJiVtdXU8S6wT0mIxSc3H38GiXxs=;\n h=From:To:Subject:Date:Message-ID:MIME-Version;\n b=cZdCM12sv6C/T0Si+OFLlZr7/xSmApq88l5mHrImeC0tdYKcG+dsQLOat34S5fs1VOvpqIqCJw/+jMBYWP8vLpPT8yAe7X7ormD2aHfhKMi1oQ34Ri0Y09lRY7J70oywrDbdzTCM/naCBRtmyIZCgx+xT9z2ZkADZoVEiJKKNic=", "ARC-Authentication-Results": "i=1; server2.sourceware.org", "From": "Yao Zihong <zihong.plct@isrc.iscas.ac.cn>", "To": "libc-alpha@sourceware.org", "Cc": "zhangyin2018@iscas.ac.cn, zihongyao@outlook.com,\n Zihong Yao <zihong.plct@isrc.iscas.ac.cn>", "Subject": "[RFC PATCH 5/5] riscv: libmvec: exercise RVV ABI calls", "Date": "Mon, 9 Feb 2026 06:04:40 +0800", "Message-ID": "<20260208220454.51741-6-zihong.plct@isrc.iscas.ac.cn>", "X-Mailer": "git-send-email 2.47.3", "In-Reply-To": "<20260208220454.51741-1-zihong.plct@isrc.iscas.ac.cn>", "References": "<20260208220454.51741-1-zihong.plct@isrc.iscas.ac.cn>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-CM-TRANSID": "qwCowAAHsGuICIlpA257Bw--.50153S7", "X-Coremail-Antispam": "1UD129KBjvJXoWxGF4fXry8JF4fKFW8uw4rKrg_yoWrZw4rpF\n n8CFyDtrn0yFW3Gw47KF48Aw43WFy8KF4UXwn0qry7GFy8Cw48ZryqgFWYvryDuan3Zry3\n Aw1rJ34rCa9xtr7anT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2\n 9KBjDU0xBIdaVrnRJUUU9G14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0\n rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_JF0E3s1l82xGYI\n kIc2x26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2\n z4x0Y4vE2Ix0cI8IcVAFwI0_JFI_Gr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr0_Cr\n 1l84ACjcxK6I8E87Iv67AKxVWUJVW8JwA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Gr0_Gr1U\n M2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjx\n v20xvE14v26r106r15McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1l\n F7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7MxAIw28IcxkI7VAKI48JMx\n C20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAF\n wI0_JrI_JrWlx4CE17CEb7AF67AKxVWUAVWUtwCIc40Y0x0EwIxGrwCI42IY6xIIjxv20x\n vE14v26r1I6r4UMIIF0xvE2Ix0cI8IcVCY1x0267AKxVW8JVWxJwCI42IY6xAIw20EY4v2\n 0xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aVCY1x0267AKxV\n W8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7VU17GYJUUUUU==", "X-Originating-IP": "[183.6.59.140]", "X-CM-SenderInfo": "p2lk00vjoszunw6l223fol2u1dvotugofq/", "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": "From: Zihong Yao <zihong.plct@isrc.iscas.ac.cn>\n\nExtend the vector ABI test to call RVV libmvec variants directly.\n\nThe ABI entry points are not wired up in compilers yet because the\nABI naming is still under review, so call the RVV variants directly as a\ntemporary way for testing.\n\nSigned-off-by: Zihong Yao <zihong.plct@isrc.iscas.ac.cn>\n---\n sysdeps/riscv/rvd/test-vector-abi-arg1.h | 76 ++++++++++++++++++++++--\n 1 file changed, 72 insertions(+), 4 deletions(-)", "diff": "diff --git a/sysdeps/riscv/rvd/test-vector-abi-arg1.h b/sysdeps/riscv/rvd/test-vector-abi-arg1.h\nindex 1c28be8aa6..a422184c14 100644\n--- a/sysdeps/riscv/rvd/test-vector-abi-arg1.h\n+++ b/sysdeps/riscv/rvd/test-vector-abi-arg1.h\n@@ -16,9 +16,13 @@\n License along with the GNU C Library; if not, see\n <https://www.gnu.org/licenses/>. */\n \n-#include <math.h>\n+#include <riscv_vector.h>\n+#include <stddef.h>\n #include <support/test-driver.h>\n \n+#include <v_math_variants.h>\n+#include <v_math_names.h>\n+\n /* Since libsupport_nonshared.a is placed before test-libmvec*.o, which\n defines do_test, reference support_test_main here to include it to\n avoid undefined reference to support_test_main. The libmvec ABI test\n@@ -28,6 +32,70 @@ __typeof (support_test_main) *support_test_main_p = support_test_main;\n #define N 1000\n LIBMVEC_TYPE x[N], c[N];\n \n+#define LIBMVEC_PASTE4(a, b, c, d) LIBMVEC_PASTE4_INNER (a, b, c, d)\n+#define LIBMVEC_PASTE4_INNER(a, b, c, d) a##b##c##d\n+#define LIBMVEC_PASTE5(a, b, c, d, e) LIBMVEC_PASTE5_INNER (a, b, c, d, e)\n+#define LIBMVEC_PASTE5_INNER(a, b, c, d, e) a##b##c##d##e\n+#define LIBMVEC_PASTE6(a, b, c, d, e, f) \\\n+ LIBMVEC_PASTE6_INNER (a, b, c, d, e, f)\n+#define LIBMVEC_PASTE6_INNER(a, b, c, d, e, f) a##b##c##d##e##f\n+\n+#define RVV_LIBMVEC_IS_VALID_TYPE_double 1\n+#define RVV_LIBMVEC_IS_VALID_TYPE_float 1\n+#define RVV_LIBMVEC_IS_VALID_TYPE_INNER(t) RVV_LIBMVEC_IS_VALID_TYPE_##t\n+#define RVV_LIBMVEC_IS_VALID_TYPE(t) RVV_LIBMVEC_IS_VALID_TYPE_INNER (t)\n+\n+#if !RVV_LIBMVEC_IS_VALID_TYPE (LIBMVEC_TYPE)\n+# error \"Unsupported LIBMVEC_TYPE for RVV libmvec ABI test (expected float or double)\"\n+#endif\n+\n+#define RVV_LIBMVEC_ELEM_WIDTH_double 64\n+#define RVV_LIBMVEC_ELEM_WIDTH_float 32\n+#define RVV_LIBMVEC_ELEM_WIDTH_INNER(t) RVV_LIBMVEC_ELEM_WIDTH_##t\n+#define RVV_LIBMVEC_ELEM_WIDTH(t) RVV_LIBMVEC_ELEM_WIDTH_INNER (t)\n+\n+#define LIBMVEC_ELEM_WIDTH RVV_LIBMVEC_ELEM_WIDTH (LIBMVEC_TYPE)\n+\n+#define LIBMVEC_VTYPE_WIDTH(width, lmul) \\\n+ LIBMVEC_PASTE5 (vfloat, width, m, lmul, _t)\n+#define LIBMVEC_VSETVL_WIDTH(width, lmul) \\\n+ LIBMVEC_PASTE4 (__riscv_vsetvl_e, width, m, lmul)\n+#define LIBMVEC_VLE_WIDTH(width, lmul) \\\n+ LIBMVEC_PASTE6 (__riscv_vle, width, _v_f, width, m, lmul)\n+#define LIBMVEC_VSE_WIDTH(width, lmul) \\\n+ LIBMVEC_PASTE6 (__riscv_vse, width, _v_f, width, m, lmul)\n+\n+#define LIBMVEC_VTYPE(lmul) LIBMVEC_VTYPE_WIDTH (LIBMVEC_ELEM_WIDTH, lmul)\n+#define LIBMVEC_VSETVL(lmul) LIBMVEC_VSETVL_WIDTH (LIBMVEC_ELEM_WIDTH, lmul)\n+#define LIBMVEC_VLE(lmul) LIBMVEC_VLE_WIDTH (LIBMVEC_ELEM_WIDTH, lmul)\n+#define LIBMVEC_VSE(lmul) LIBMVEC_VSE_WIDTH (LIBMVEC_ELEM_WIDTH, lmul)\n+\n+#define LIBMVEC_DECLARE_VARIANT(lmul, simdlen) \\\n+ extern LIBMVEC_VTYPE (lmul) V_NAME_D1 (lmul, simdlen, LIBMVEC_FUNC) \\\n+ (LIBMVEC_VTYPE (lmul))\n+\n+#define LIBMVEC_CALL_VARIANT(lmul, simdlen) \\\n+ do \\\n+ { \\\n+ size_t vl = LIBMVEC_VSETVL (lmul) (simdlen); \\\n+ LIBMVEC_VTYPE (lmul) vx = LIBMVEC_VLE (lmul) (c, vl); \\\n+ LIBMVEC_VTYPE (lmul) vr = V_NAME_D1 (lmul, simdlen, LIBMVEC_FUNC) (vx);\\\n+ LIBMVEC_VSE (lmul) (x, vr, vl); \\\n+ } \\\n+ while (0)\n+\n+#if LIBMVEC_ELEM_WIDTH == 64\n+# define LIBMVEC_VARIANTS(X) RVV_LIBMVEC_VARIANTS_F64 (X)\n+#elif LIBMVEC_ELEM_WIDTH == 32\n+# define LIBMVEC_VARIANTS(X) RVV_LIBMVEC_VARIANTS_F32 (X)\n+#else\n+# error \"Unsupported LIBMVEC_ELEM_WIDTH for RVV libmvec ABI test\"\n+#endif\n+\n+#define X(lmul, simdlen) LIBMVEC_DECLARE_VARIANT (lmul, simdlen);\n+LIBMVEC_VARIANTS (X)\n+#undef X\n+\n int\n test_vector_abi (void)\n {\n@@ -35,9 +103,9 @@ test_vector_abi (void)\n for (i = 0; i < N; i++)\n c[i] = i / 3;\n \n-#pragma omp simd\n- for (i = 0; i < N; i++)\n- x[i] = LIBMVEC_FUNC (c[i]);\n+#define X(lmul, simdlen) LIBMVEC_CALL_VARIANT (lmul, simdlen);\n+ LIBMVEC_VARIANTS (X)\n+#undef X\n \n return 0;\n }\n", "prefixes": [ "RFC", "5/5" ] }