{"id":2226255,"url":"http://patchwork.ozlabs.org/api/1.2/patches/2226255/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/patch/bmm.hhubd62wbc.gcc.gcc-TEST.pinskia.20.1.6@forge-stage.sourceware.org/","project":{"id":17,"url":"http://patchwork.ozlabs.org/api/1.2/projects/17/?format=json","name":"GNU Compiler Collection","link_name":"gcc","list_id":"gcc-patches.gcc.gnu.org","list_email":"gcc-patches@gcc.gnu.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<bmm.hhubd62wbc.gcc.gcc-TEST.pinskia.20.1.6@forge-stage.sourceware.org>","list_archive_url":null,"date":"2026-04-22T10:29:51","name":"[v1,06/11] Add more testcases","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"15eda1fc8bd08326e6754e19221ba707638cd6cd","submitter":{"id":93219,"url":"http://patchwork.ozlabs.org/api/1.2/people/93219/?format=json","name":"Andrew Pinski via Sourceware Forge","email":"forge-bot+pinskia@forge-stage.sourceware.org"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/gcc/patch/bmm.hhubd62wbc.gcc.gcc-TEST.pinskia.20.1.6@forge-stage.sourceware.org/mbox/","series":[{"id":500972,"url":"http://patchwork.ozlabs.org/api/1.2/series/500972/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/list/?series=500972","date":"2026-04-22T10:29:49","name":"WIP: v2hiv4qi","version":1,"mbox":"http://patchwork.ozlabs.org/series/500972/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2226255/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2226255/checks/","tags":{},"related":[],"headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org","sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org","server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39"],"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 4g0wvH5ZC6z1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 20:48:59 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id A178E42DB219\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 10:48:57 +0000 (GMT)","from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id 23B0048FE090\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:31:09 +0000 (GMT)","from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id 5B82E42609\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:31:06 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org A178E42DB219","OpenDKIM Filter v2.11.0 sourceware.org 23B0048FE090"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 23B0048FE090","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 23B0048FE090","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776853869; cv=none;\n b=jTD3kkZVbvk9lDWXNdT45jW9SYk6YlSgXnG/AJBBW5nGp+ZS9w3yF6H+1PrJW7ucG9LYbZ9lQCQyyPP9uuO2KgljppK4B4HkFADxFzdMW0lt/fJNlZYMVo6fuMzXEFGmSbcpfjqmqfspSw0TC7rCF2df4mFXLy571QRbXqHxG0E=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776853869; c=relaxed/simple;\n bh=kXBgvhorOT1SdRtSmidbjFBocMD2cRcXWWd5I85p/98=;\n h=From:Date:Subject:To:Message-ID;\n b=ss345CGCznm/DjL7p8e7uamklTJ7KQTlO3b/4f6jpgyL/6hYwD0SYlr9Yk/3/07FyVLYYiLTHv8r83Y8AqJZNFenCfD9N1PHufCTbYwX7mwXZLSy+ZBLLriwAcJW8NNcePTWhAwr2YnQWKB0BpAPiM2fLAggbKKja8dF/HwwnDU=","ARC-Authentication-Results":"i=1; server2.sourceware.org","From":"Andrew Pinski via Sourceware Forge\n <forge-bot+pinskia@forge-stage.sourceware.org>","Date":"Wed, 22 Apr 2026 10:29:51 +0000","Subject":"[PATCH v1 06/11] Add more testcases","To":"gcc-patches mailing list <gcc-patches@gcc.gnu.org>","Message-ID":"\n <bmm.hhubd62wbc.gcc.gcc-TEST.pinskia.20.1.6@forge-stage.sourceware.org>","X-Mailer":"batrachomyomachia","X-Pull-Request-Organization":"gcc","X-Pull-Request-Repository":"gcc-TEST","X-Pull-Request":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/20","References":"\n <bmm.hhubd62wbc.gcc.gcc-TEST.pinskia.20.1.0@forge-stage.sourceware.org>","In-Reply-To":"\n <bmm.hhubd62wbc.gcc.gcc-TEST.pinskia.20.1.0@forge-stage.sourceware.org>","X-Patch-URL":"\n https://forge.sourceware.org/pinskia/gcc-TEST/commit/9241b4021be8e6f8134d4341483d8b8cbefcbd7e","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Reply-To":"gcc-patches mailing list <gcc-patches@gcc.gnu.org>,\n pinskia@gcc.gnu.org","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"},"content":"From: Andrew Pinski <quic_apinski@quicinc.com>\n\ngcc/testsuite/ChangeLog:\n\n\t* gcc.target/aarch64/v2hiv8qi_5.c: New test.\n\t* gcc.target/aarch64/v2hiv8qi_6.c: New test.\n\nSigned-off-by: Andrew Pinski <quic_apinski@quicinc.com>\n---\n gcc/testsuite/gcc.target/aarch64/v2hiv8qi_5.c | 72 ++++++++++++++\n gcc/testsuite/gcc.target/aarch64/v2hiv8qi_6.c | 96 +++++++++++++++++++\n 2 files changed, 168 insertions(+)\n create mode 100644 gcc/testsuite/gcc.target/aarch64/v2hiv8qi_5.c\n create mode 100644 gcc/testsuite/gcc.target/aarch64/v2hiv8qi_6.c","diff":"diff --git a/gcc/testsuite/gcc.target/aarch64/v2hiv8qi_5.c b/gcc/testsuite/gcc.target/aarch64/v2hiv8qi_5.c\nnew file mode 100644\nindex 000000000000..c8352d49c212\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/v2hiv8qi_5.c\n@@ -0,0 +1,72 @@\n+/* { dg-do compile } */\n+/* { dg-options \"-O2 -fno-vect-cost-model\" } */\n+/* { dg-final { check-function-bodies \"**\" \"\" \"\" { target aarch64_little_endian } } } */\n+\n+/* Emulate V2HI with V4HI and V4QI with V8QI,\n+   testing mul SLP and pattern. */\n+\n+/*\n+** v2hi_umul:\n+**\tdup\tv([0-9]+).4h, w1\n+**\tldr\ts([0-9]+), \\[x0\\]\n+**\tmul\tv([0-9]+).4h, v\\2.4h, v\\1.4h\n+**\tstr\ts\\3, \\[x0\\]\n+**\tret\n+*/\n+\n+void v2hi_umul(unsigned short *t, unsigned short tt)\n+{\n+  t[0] *= tt;\n+  t[1] *= tt;\n+}\n+\n+/*\n+ PR tree-optimization/115833\n+** v2hi_smul: { xfail *-*-* }\n+**\tdup\tv([0-9]+).4h, w1\n+**\tldr\ts([0-9]+), \\[x0\\]\n+**\tmul\tv([0-9]+).4h, v\\2.4h, v\\1.4h\n+**\tstr\ts\\3, \\[x0\\]\n+**\tret\n+*/\n+\n+void v2hi_smul(signed short *t, signed short tt)\n+{\n+  t[0] *= tt;\n+  t[1] *= tt;\n+}\n+\n+/*\n+** v4qi_umul:\n+**\tdup\tv([0-9]+).8b, w1\n+**\tldr\ts([0-9]+), \\[x0\\]\n+**\tmul\tv([0-9]+).8b, v\\2.8b, v\\1.8b\n+**\tstr\ts\\3, \\[x0\\]\n+**\tret\n+*/\n+\n+void v4qi_umul(unsigned char *t, unsigned char tt)\n+{\n+  t[0] *= tt;\n+  t[1] *= tt;\n+  t[2] *= tt;\n+  t[3] *= tt;\n+}\n+\n+/*\n+ PR tree-optimization/115833\n+** v4qi_smul: { xfail *-*-* }\n+**\tdup\tv([0-9]+).8b, w1\n+**\tldr\ts([0-9]+), \\[x0\\]\n+**\tmul\tv([0-9]+).8b, v\\2.8b, v\\1.8b\n+**\tstr\ts\\3, \\[x0\\]\n+**\tret\n+*/\n+\n+void v4qi_smul(signed char *t, signed char tt)\n+{\n+  t[0] *= tt;\n+  t[1] *= tt;\n+  t[2] *= tt;\n+  t[3] *= tt;\n+}\n\\ No newline at end of file\ndiff --git a/gcc/testsuite/gcc.target/aarch64/v2hiv8qi_6.c b/gcc/testsuite/gcc.target/aarch64/v2hiv8qi_6.c\nnew file mode 100644\nindex 000000000000..64270ff89a5c\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/v2hiv8qi_6.c\n@@ -0,0 +1,96 @@\n+/* { dg-do compile } */\n+/* { dg-options \"-O2 -fno-vect-cost-model\" } */\n+/* { dg-final { check-function-bodies \"**\" \"\" \"\" { target aarch64_little_endian } } } */\n+\n+/* Emulate V2HI with V4HI and V4QI with V8QI,\n+   testing neg/not/abs SLP and pattern. */\n+\n+/*\n+** v2hi_neg:\n+**\tldr\ts([0-9]+), \\[x0\\]\n+**\tneg\tv([0-9]+).4h, v\\1.4h\n+**\tstr\ts\\2, \\[x0\\]\n+**\tret\n+*/\n+\n+void v2hi_neg(short *t)\n+{\n+  t[0] = -t[0];\n+  t[1] = -t[1];\n+}\n+\n+/*\n+** v2hi_not:\n+**\tldr\ts([0-9]+), \\[x0\\]\n+**\tnot\tv([0-9]+).8b, v\\1.8b\n+**\tstr\ts\\2, \\[x0\\]\n+**\tret\n+*/\n+\n+void v2hi_not(short *t)\n+{\n+  t[0] = ~t[0];\n+  t[1] = ~t[1];\n+}\n+\n+/*\n+** v2hi_abs:\n+**\tldr\ts([0-9]+), \\[x0\\]\n+**\tabs\tv([0-9]+).4h, v\\1.4h\n+**\tstr\ts\\2, \\[x0\\]\n+**\tret\n+*/\n+\n+void v2hi_abs(short *t)\n+{\n+  t[0] = t[0] > 0 ? t[0] : -t[0];\n+  t[1] = t[1] > 0 ? t[1] : -t[1];\n+}\n+\n+/*\n+** v4qi_neg:\n+**\tldr\ts([0-9]+), \\[x0\\]\n+**\tneg\tv([0-9]+).8b, v\\1.8b\n+**\tstr\ts\\2, \\[x0\\]\n+**\tret\n+*/\n+\n+void v4qi_neg(char *t)\n+{\n+  t[0] = -t[0];\n+  t[1] = -t[1];\n+  t[2] = -t[2];\n+  t[3] = -t[3];\n+}\n+\n+/*\n+** v4qi_not:\n+**\tldr\ts([0-9]+), \\[x0\\]\n+**\tnot\tv([0-9]+).8b, v\\1.8b\n+**\tstr\ts\\2, \\[x0\\]\n+**\tret\n+*/\n+\n+void v4qi_not(char *t, char tt)\n+{\n+  t[0] = ~t[0];\n+  t[1] = ~t[1];\n+  t[2] = ~t[2];\n+  t[3] = ~t[3];\n+}\n+\n+/*\n+** v4qi_abs:\n+**\tldr\ts([0-9]+), \\[x0\\]\n+**\tabs\tv([0-9]+).8b, v\\1.8b\n+**\tstr\ts\\2, \\[x0\\]\n+**\tret\n+*/\n+\n+void v4qi_abs(signed char *t)\n+{\n+  t[0] = t[0] > 0 ? t[0] : -t[0];\n+  t[1] = t[1] > 0 ? t[1] : -t[1];\n+  t[2] = t[2] > 0 ? t[2] : -t[2];\n+  t[3] = t[3] > 0 ? t[3] : -t[3];\n+}\n\\ No newline at end of file\n","prefixes":["v1","06/11"]}