{"id":2224537,"url":"http://patchwork.ozlabs.org/api/1.2/covers/2224537/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/cover/cover.1776437127.git.chao.liu.zevorn@gmail.com/","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/1.2/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<cover.1776437127.git.chao.liu.zevorn@gmail.com>","list_archive_url":null,"date":"2026-04-17T14:49:30","name":"[v10,0/2] Generate strided vector loads/stores with tcg nodes","submitter":{"id":92265,"url":"http://patchwork.ozlabs.org/api/1.2/people/92265/?format=json","name":"Chao Liu","email":"chao.liu.zevorn@gmail.com"},"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/cover/cover.1776437127.git.chao.liu.zevorn@gmail.com/mbox/","series":[{"id":500357,"url":"http://patchwork.ozlabs.org/api/1.2/series/500357/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/list/?series=500357","date":"2026-04-17T14:49:31","name":"Generate strided vector loads/stores with tcg nodes","version":10,"mbox":"http://patchwork.ozlabs.org/series/500357/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/covers/2224537/comments/","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=PXZorjOh;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fxyVr41vHz1yDF\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 18 Apr 2026 00:51:00 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wDkW6-0005oK-32; Fri, 17 Apr 2026 10:49:58 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <chao.liu.zevorn@gmail.com>)\n id 1wDkW3-0005Xw-Gy\n for qemu-devel@nongnu.org; Fri, 17 Apr 2026 10:49:55 -0400","from mail-vk1-xa42.google.com ([2607:f8b0:4864:20::a42])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <chao.liu.zevorn@gmail.com>)\n id 1wDkW1-0007JC-Fx\n for qemu-devel@nongnu.org; Fri, 17 Apr 2026 10:49:55 -0400","by mail-vk1-xa42.google.com with SMTP id\n 71dfb90a1353d-5674d8be45eso261730e0c.1\n for <qemu-devel@nongnu.org>; Fri, 17 Apr 2026 07:49:53 -0700 (PDT)","from ZEVORN-PC.bbrouter ([162.244.208.119])\n by smtp.gmail.com with ESMTPSA id\n 71dfb90a1353d-56fa92f21bbsm954365e0c.11.2026.04.17.07.49.47\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Fri, 17 Apr 2026 07:49:51 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1776437392; x=1777042192; darn=nongnu.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=LGiZOmd5qc8W7roUFwF4hqXN40Se0zUW8OOKu9bU4NQ=;\n b=PXZorjOhwj9d6CBEJDVW3GpH6xGb0zoW4x0mOgW3g295Ia4NUqr8mzpgqLLAaRVXV2\n 2LepgaPTlQMczr/za7xyhpjg3za5xjclq4n9e7SofVk5wdSq1MpReOmTrmEXjuHR0urg\n CpVhLfwzb7Rvx2tA1KHMKdCryAuoi+aykeaLLe0yCnu2qCX8W6cKAATFGBqMDfLuPVnC\n Ru2M/bogI0eEmd0UFydO+IrDHMtr4m+tA3MJnUCPNi+yNa7YjzYCz6HbtLeojxIoyn6E\n opaA68FeuY0gPp0EHKH+3E3//+0ygw1j4YKiKtpmzqT66MTj6bnVHBBPdjPqY6GbGPgX\n OOOQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776437392; x=1777042192;\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=LGiZOmd5qc8W7roUFwF4hqXN40Se0zUW8OOKu9bU4NQ=;\n b=kK3aZhR33FyLVglscz6BLEdssnTKKbN//v/mwdsaAw5Z0t/vhbRURnsmXuTpHrKGR4\n +X1HWsodcPevZFWr6TkfTy2GhWXuA95gWLOU0BN/j7H3xS1tJjwkaPoBZpoPwrKkcSOy\n OaqTH1x/C/Lz7WIDNOcfqRHxZEIHr6pkRLMvoVUFhyFzZRJLWYaxxzWie7d57GaxRadz\n vinxRkGmsTVN8meOvq835btQEf4av1dL0JtppVMwFlLB/J4cY/fyJrNTOfO1wPaPNS88\n TGk/X5nkvNShXTj83gyEnUOxyzlRpLLUgURKGCrBy6nSxYuRPlsAci5pzD/ULvukaMoW\n +/+g==","X-Gm-Message-State":"AOJu0YwWExaN8ptV7uVzXns1X2yIbm2QePOOiNkaM8BRI1T7vrCQ4VL/\n lByeAJ8mtCG04wB3nR1pSwXBlLuOlzqRxjqC8XOiE1i9yfi79RTqWG55","X-Gm-Gg":"AeBDieu08wyK+wGzyFDgA+I7bMGW9qtLVTDOufifNpan7ToTs5q/teSgCqssS3Us5rB\n Zvqd2PHa7721G2KaM2wAJmSHFqlKdYJr3soXJOE99UC8HpZShLllZvAU1XmAOxrDrHYFnffRklo\n cDVrNzUSdG+OCdRFZf777tvlxSHXk4XinDtMfnoXGFZipWbpbxa8sXwJFE2p1nOBwM5ziWMhQIA\n xm17o91d7+kgzBCiHsmcbrHZGIVRtRW12T9zvTJ/zU2wXo5dC4IS1vFnDPkoqcyiFWDMbATx2+2\n cgxSHomsAokcKV8zJGWPHn1TMfgxS0CTba7cMoyJfH/nzbgKusV3t4bFPf/+V1VcNEAQF2Q2+hS\n OKUSdowAYeoQ3ZPOU0ilcXbkJD17icOLPQjS7DAeisoTGRnOsgnnsSfLpXhIGYqGBhfuM5sCJ6y\n XB4+rSf/TLXGlOG+8lCBZECygfWASwiezVGmplCwZYT7q2sosuqJ48zh/gbeLlU8LOeZtlkfs4U\n AYRisM=","X-Received":"by 2002:a05:6122:8b10:b0:56b:5e7e:d3fa with SMTP id\n 71dfb90a1353d-56fa58c1168mr1532040e0c.7.1776437391957;\n Fri, 17 Apr 2026 07:49:51 -0700 (PDT)","From":"Chao Liu <chao.liu.zevorn@gmail.com>","To":"Palmer Dabbelt <palmer@dabbelt.com>,\n Alistair Francis <alistair.francis@wdc.com>,\n Weiwei Li <liwei1518@gmail.com>,\n Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>,\n Liu Zhiwei <zhiwei_liu@linux.alibaba.com>,\n Chao Liu <chao.liu.zevorn@gmail.com>","Cc":"qemu-devel@nongnu.org,\n\tqemu-riscv@nongnu.org","Subject":"[PATCH v10 0/2] Generate strided vector loads/stores with tcg nodes","Date":"Fri, 17 Apr 2026 22:49:30 +0800","Message-ID":"<cover.1776437127.git.chao.liu.zevorn@gmail.com>","X-Mailer":"git-send-email 2.53.0","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit","Received-SPF":"pass client-ip=2607:f8b0:4864:20::a42;\n envelope-from=chao.liu.zevorn@gmail.com; helo=mail-vk1-xa42.google.com","X-Spam_score_int":"-20","X-Spam_score":"-2.1","X-Spam_bar":"--","X-Spam_report":"(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=ham autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"qemu development <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"},"content":"Hi Alistair,\n\nIn patch v10:\n\n- Update the email address of the patch submitter.\n- Rebase on the latest riscv-to-apply.next branch.\n\nHistory of changes:\n\npatch v9:\n- Simplify the implementation of gen_check_vext_elem_mask():\n  remove the `mask` argument, compute the mask directly inside the function,\n  and eliminate redundant code.\n- Limit the bit width to 8 bits when loading the mask from memory.\n- Remove the `vreg` argument in gen_ldst_vreg().\n  https://lore.kernel.org/qemu-devel/cover.1758006834.git.chao.liu@zevorn.cn/\n\npatch v8:\n- Use the right TCGv type for each variable — for example, make mask_elem\n  type TCGv_i64.\n- Use tcg_gen_trunc_i64_ptr() to change TCGv types — don't use C-style\n  casting.\n- Use TCG_COND_TSTNE, not TCG_COND_NE in tcg_gen_brcond_i64() to represent:\n  if (vext_elem_mask(v0, i) != 0)\n  https://lore.kernel.org/qemu-devel/cover.1757690407.git.chao.liu@zevorn.cn/\n\npatch v7:\n- Standardize the subject line of patch 1 and remove the trailing period.\n- Split into sub-functions to improve the patch's code readability and\n  facilitate review.\n- Use more faster TCG ops, use tcg_gen_andi_tl() instead of tcg_gen_rem_tl().\n- Add a tested-by signature for patch 2, as Eric has already tested it.\n  https://lore.kernel.org/qemu-devel/cover.1756975571.git.chao.liu@zevorn.cn/\n\npatch v6:\n- If a strided vector memory access instruction has non-zero vstart,\n  check it through vlse/vsse helpers function.\n- Adjust the tcg test Makefile.\n  https://lore.kernel.org/qemu-devel/cover.1756906528.git.chao.liu@zevorn.cn/\n\nPatch v5:\n- Removed the redundant call to mark_vs_dirty(s) within the\n  gen_ldst_stride_main_loop() function.\n  https://lore.kernel.org/qemu-riscv/cover.1755609029.git.chao.liu@zevorn.cn/\n\nPatch v4:\n- Use ctz32() replace to for-loop\n  https://lore.kernel.org/qemu-devel/cover.1755333616.git.chao.liu@yeah.net/\n\nPatch v3:\n- Fix the get_log2() function:\n  https://lore.kernel.org/qemu-riscv/cover.1755287531.git.chao.liu@yeah.net/T/#t\n- Add test for vlsseg8e32 instruction.\n- Rebase on top of the latest master.\n\nPatch v2:\n- Split the TCG node emulation of the complex strided load/store operation into\n  two separate functions to simplify the implementation:\n  https://lore.kernel.org/qemu-riscv/20250312155547.289642-1-paolo.savini@embecosm.com/\n\nPatch v1:\n- Paolo submitted the initial version of the patch.\n  https://lore.kernel.org/qemu-devel/20250211182056.412867-1-paolo.savini@embecosm.com/\n\n\nThanks,\nChao\n\nChao Liu (2):\n  target/riscv: Use tcg nodes for strided vector ld/st generation\n  tests/tcg/riscv64: Add test for vlsseg8e32 instruction\n\n target/riscv/insn_trans/trans_rvv.c.inc   | 354 ++++++++++++++++++++--\n tests/tcg/riscv64/Makefile.softmmu-target |   7 +-\n tests/tcg/riscv64/test-vlsseg8e32.S       | 107 +++++++\n 3 files changed, 450 insertions(+), 18 deletions(-)\n create mode 100644 tests/tcg/riscv64/test-vlsseg8e32.S\n\n--\n2.53.0"}