get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2194422/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2194422,
    "url": "http://patchwork.ozlabs.org/api/patches/2194422/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/glibc/patch/20260208220454.51741-3-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-3-zihong.plct@isrc.iscas.ac.cn>",
    "list_archive_url": null,
    "date": "2026-02-08T22:04:37",
    "name": "[RFC,2/5] riscv: libmvec: add ABI tests",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "bab15854abac95cc1409ce95f7ac0907f3c1cf28",
    "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-3-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/2194422/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2194422/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 4f8MPl1M0Bz1xtr\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 09 Feb 2026 09:07:23 +1100 (AEDT)",
            "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 45E46452C4F4\n\tfor <incoming@patchwork.ozlabs.org>; Sun,  8 Feb 2026 22:07:21 +0000 (GMT)",
            "from cstnet.cn (smtp21.cstnet.cn [159.226.251.21])\n by sourceware.org (Postfix) with ESMTPS id E388B452C457\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--.50153S4;\n Mon, 09 Feb 2026 06:05:03 +0800 (CST)"
        ],
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 sourceware.org 45E46452C4F4",
            "OpenDKIM Filter v2.11.0 sourceware.org E388B452C457"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org E388B452C457",
        "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org E388B452C457",
        "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1770588308; cv=none;\n b=qz03VZGN83Wprt6vkowMIHlT+JWuJyEKdPDA4w3was715kTA9Gp1mnjEzSmxBiOR9B9zEtK5IHX9CMP4SNmwoCjkmi3txJUkYIbiYV3k0N7XpbFf5rFvQ21mTRgsyoG9PXJczM+FQ9VmEtATz/xyXdqrlPUBEz0x9nScYRnf4EQ=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1770588308; c=relaxed/simple;\n bh=5Kb/Ubfjcn9lOqhAYNC2wAzMJTBZIUqA1GZaXRkfW8g=;\n h=From:To:Subject:Date:Message-ID:MIME-Version;\n b=P8qeioIqgRwz1/+iKPYiGX9y1OywUHMTsaWwhwc3962gP/TDNXFM8fkxgZMJ6JLu2j7YlHwJcogDkbLtFVAsvgLCHGw45sXufE/yKm0B2l4farDj/8WcoxCo9FjIjhYf/31j8yGguRvGi+ioVwFHroHvGNzJ3KG/WEr4xL21axo=",
        "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 2/5] riscv: libmvec: add ABI tests",
        "Date": "Mon,  9 Feb 2026 06:04:37 +0800",
        "Message-ID": "<20260208220454.51741-3-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--.50153S4",
        "X-Coremail-Antispam": "1UD129KBjvJXoWxtF17uF45Kr15Ww17Kw1DGFg_yoW3JrWkpF\n Z5uF45CF1DJrWxW34S9r1UZF4FgryFqF45Gr13Aw15XrW5tr48ZFs2ya4kWw1xCFWrurWU\n ZanruFy3Cr1rJaUanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2\n 9KBjDU0xBIdaVrnRJUUU9v14x267AKxVW5JVWrJwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0\n rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_Jryl82xGYIkIc2\n x26xkF7I0E14v26r1I6r4UM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2z4x0\n Y4vE2Ix0cI8IcVAFwI0_Jr0_JF4l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr0_Cr1l84\n ACjcxK6I8E87Iv67AKxVWUJVW8JwA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Gr0_Gr1UM2AI\n xVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20x\n vE14v26r106r15McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xv\n r2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7MxAIw28IcxkI7VAKI48JMxC20s\n 026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_\n JrI_JrWlx4CE17CEb7AF67AKxVWUAVWUtwCIc40Y0x0EwIxGrwCI42IY6xIIjxv20xvE14\n v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVW8JVWxJwCI42IY6xAIw20EY4v20xva\n j40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aVCY1x0267AKxVW8JV\n W8JrUvcSsGvfC2KfnxnUUI43ZEXa7VUbQ6pPUUUUU==",
        "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\nAdd libmvec ABI tests for RISC-V by generating per-function\ntest targets and wiring them into the mathvec build.\n\nThe tests compile with RVV-capable -march flags and the fast-math\ntest options, and introduce a simple one-argument vector ABI\nharness plus a log test.\n\nSigned-off-by: Zihong Yao <zihong.plct@isrc.iscas.ac.cn>\n---\n sysdeps/riscv/rvd/Makeconfig                | 34 ++++++++++++++++\n sysdeps/riscv/rvd/Makefile                  | 14 +++++++\n sysdeps/riscv/rvd/test-double-libmvec-log.c | 21 ++++++++++\n sysdeps/riscv/rvd/test-vector-abi-arg1.h    | 45 +++++++++++++++++++++\n sysdeps/riscv/rvd/test-vector-abi.h         | 36 +++++++++++++++++\n 5 files changed, 150 insertions(+)\n create mode 100644 sysdeps/riscv/rvd/test-double-libmvec-log.c\n create mode 100644 sysdeps/riscv/rvd/test-vector-abi-arg1.h\n create mode 100644 sysdeps/riscv/rvd/test-vector-abi.h",
    "diff": "diff --git a/sysdeps/riscv/rvd/Makeconfig b/sysdeps/riscv/rvd/Makeconfig\nindex 56f63a5d01..84649c6500 100644\n--- a/sysdeps/riscv/rvd/Makeconfig\n+++ b/sysdeps/riscv/rvd/Makeconfig\n@@ -31,3 +31,37 @@ libmvec-double-funcs-with-data = \\\n \n libmvec-float-funcs = $(libmvec-float-funcs-bare) $(libmvec-float-funcs-with-data)\n libmvec-double-funcs = $(libmvec-double-funcs-bare) $(libmvec-double-funcs-with-data)\n+\n+ifeq ($(config-machine),riscv64)\n+libmvec-abi-test-arch-cflags = -march=rv64gcv\n+else ifeq ($(config-machine),riscv32)\n+libmvec-abi-test-arch-cflags = -march=rv32gcv\n+endif\n+\n+libmvec-abi-test-cflags = \\\n+  $(libmvec-abi-test-arch-cflags) \\\n+  $(libm-test-fast-math-cflags)   \\\n+  -fno-inline -fopenmp -Wno-unknown-pragmas\n+\n+# The base libmvec ABI tests.\n+libmvec-abi-func-tests = \\\n+  $(addprefix test-float-libmvec-,$(libmvec-float-funcs))  \\\n+  $(addprefix test-double-libmvec-,$(libmvec-double-funcs)) \\\n+\n+$(common-objpfx)libmvec.mk: $(common-objpfx)config.make\n+\t(echo \"ifeq (\\$$(subdir)\\$$(build-mathvec),mathyes)\"; \\\n+\t echo; \\\n+\t for t in $(libmvec-abi-func-tests); do \\\n+\t   echo \"\\$$(objpfx)$$t: \\\\\"; \\\n+\t   echo \"  \\$$(objpfx)$$t.o \\\\\"; \\\n+\t   echo \"  \\$$(libmvec)\"; \\\n+\t   echo \"LDLIBS-$$t = \\$$(libmvec)\"; \\\n+\t   echo; \\\n+\t done; \\\n+\t for t in $(libmvec-abi-func-tests); do \\\n+\t   echo \"CFLAGS-$$t.c = \\\\\"; \\\n+\t   echo \"  \\$$(libmvec-abi-test-cflags)\"; \\\n+\t   echo; \\\n+\t done; \\\n+\t echo \"endif\";)> $@T\n+\tmv -f $@T $@\ndiff --git a/sysdeps/riscv/rvd/Makefile b/sysdeps/riscv/rvd/Makefile\nindex 05cd793906..7f409e3f02 100644\n--- a/sysdeps/riscv/rvd/Makefile\n+++ b/sysdeps/riscv/rvd/Makefile\n@@ -23,3 +23,17 @@ $(foreach f,$(libmvec-sysdep_routines), $(eval $(call riscv32-vector-cflags-temp\n endif\n \n endif\n+\n+ifneq ($(multi-arch),no)\n+ifeq ($(subdir)$(build-mathvec),mathyes)\n+\n+ifneq ($(have-test-clang),yes)\n+\n+tests += \\\n+  $(libmvec-abi-func-tests)     \\\n+\n+endif\n+\n+endif\n+\n+endif\ndiff --git a/sysdeps/riscv/rvd/test-double-libmvec-log.c b/sysdeps/riscv/rvd/test-double-libmvec-log.c\nnew file mode 100644\nindex 0000000000..fa81716a1a\n--- /dev/null\n+++ b/sysdeps/riscv/rvd/test-double-libmvec-log.c\n@@ -0,0 +1,21 @@\n+/* Vector ABI test for RISC-V libmvec log.\n+   Copyright (C) 2026 Free Software Foundation, Inc.\n+   This file is part of the GNU C Library.\n+\n+   The GNU C Library is free software; you can redistribute it and/or\n+   modify it under the terms of the GNU Lesser General Public\n+   License as published by the Free Software Foundation; either\n+   version 2.1 of the License, or (at your option) any later version.\n+\n+   The GNU C Library is distributed in the hope that it will be useful,\n+   but WITHOUT ANY WARRANTY; without even the implied warranty of\n+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n+   Lesser General Public License for more details.\n+\n+   You should have received a copy of the GNU Lesser General Public\n+   License along with the GNU C Library; if not, see\n+   <https://www.gnu.org/licenses/>.  */\n+\n+#define LIBMVEC_TYPE double\n+#define LIBMVEC_FUNC log\n+#include \"test-vector-abi-arg1.h\"\ndiff --git a/sysdeps/riscv/rvd/test-vector-abi-arg1.h b/sysdeps/riscv/rvd/test-vector-abi-arg1.h\nnew file mode 100644\nindex 0000000000..1c28be8aa6\n--- /dev/null\n+++ b/sysdeps/riscv/rvd/test-vector-abi-arg1.h\n@@ -0,0 +1,45 @@\n+/* Test for vector ABI with 1 argument.\n+   Copyright (C) 2026 Free Software Foundation, Inc.\n+   This file is part of the GNU C Library.\n+\n+   The GNU C Library is free software; you can redistribute it and/or\n+   modify it under the terms of the GNU Lesser General Public\n+   License as published by the Free Software Foundation; either\n+   version 2.1 of the License, or (at your option) any later version.\n+\n+   The GNU C Library is distributed in the hope that it will be useful,\n+   but WITHOUT ANY WARRANTY; without even the implied warranty of\n+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n+   Lesser General Public License for more details.\n+\n+   You should have received a copy of the GNU Lesser General Public\n+   License along with the GNU C Library; if not, see\n+   <https://www.gnu.org/licenses/>.  */\n+\n+#include <math.h>\n+#include <support/test-driver.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+   doesn't need other symbols in libsupport_nonshared.a.  */\n+__typeof (support_test_main) *support_test_main_p = support_test_main;\n+\n+#define N 1000\n+LIBMVEC_TYPE x[N], c[N];\n+\n+int\n+test_vector_abi (void)\n+{\n+  int i;\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+\n+  return 0;\n+}\n+\n+#include <test-vector-abi.h>\ndiff --git a/sysdeps/riscv/rvd/test-vector-abi.h b/sysdeps/riscv/rvd/test-vector-abi.h\nnew file mode 100644\nindex 0000000000..35d4d2042a\n--- /dev/null\n+++ b/sysdeps/riscv/rvd/test-vector-abi.h\n@@ -0,0 +1,36 @@\n+/* Test for vector ABI.\n+   Copyright (C) 2026 Free Software Foundation, Inc.\n+   This file is part of the GNU C Library.\n+\n+   The GNU C Library is free software; you can redistribute it and/or\n+   modify it under the terms of the GNU Lesser General Public\n+   License as published by the Free Software Foundation; either\n+   version 2.1 of the License, or (at your option) any later version.\n+\n+   The GNU C Library is distributed in the hope that it will be useful,\n+   but WITHOUT ANY WARRANTY; without even the implied warranty of\n+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n+   Lesser General Public License for more details.\n+\n+   You should have received a copy of the GNU Lesser General Public\n+   License along with the GNU C Library; if not, see\n+   <https://www.gnu.org/licenses/>.  */\n+\n+#include <stdbool.h>\n+#include <support/test-driver.h>\n+#include <sys/hwprobe.h>\n+\n+extern int test_vector_abi (void);\n+\n+static int\n+do_test (void)\n+{\n+  struct riscv_hwprobe pair = { .key = RISCV_HWPROBE_KEY_IMA_EXT_0 };\n+  if (__riscv_hwprobe (&pair, 1, 0, NULL, 0) != 0\n+      || (pair.value & RISCV_HWPROBE_IMA_V) == 0)\n+    return EXIT_UNSUPPORTED;\n+\n+  return test_vector_abi ();\n+}\n+\n+#include <support/test-driver.c>\n",
    "prefixes": [
        "RFC",
        "2/5"
    ]
}