| Message ID | 20240710140602.1707875-11-victor.donascimento@arm.com |
|---|---|
| State | Superseded |
| Headers |
Return-Path: <gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org>
X-Original-To: patchwork@sourceware.org
Delivered-To: patchwork@sourceware.org
Received: from server2.sourceware.org (localhost [IPv6:::1])
by sourceware.org (Postfix) with ESMTP id 996AF3839153
for <patchwork@sourceware.org>; Wed, 10 Jul 2024 14:08:53 +0000 (GMT)
X-Original-To: gcc-patches@gcc.gnu.org
Delivered-To: gcc-patches@gcc.gnu.org
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
(mail-vi1eur05on20601.outbound.protection.outlook.com
[IPv6:2a01:111:f403:2613::601])
by sourceware.org (Postfix) with ESMTPS id EE965384A4B1
for <gcc-patches@gcc.gnu.org>; Wed, 10 Jul 2024 14:07:39 +0000 (GMT)
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org EE965384A4B1
Authentication-Results: sourceware.org;
dmarc=pass (p=none dis=none) header.from=arm.com
Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org EE965384A4B1
Authentication-Results: server2.sourceware.org;
arc=pass smtp.remote-ip=2a01:111:f403:2613::601
ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1720620462; cv=pass;
b=pu/8055KUOcEp/qGKYnylpY4UbZG1F589or1UpbW+T86EEbsINepdUiz2U2XMm3JBOtNmlHoynelccgA1a2DAhTae8jaNumOoI9TFEzBACPelXnQw5vpeFUnoA3kmqmFv++crMkb87yUQm+JOmINI/ngp64MlgF1ZtKKSxG5xUg=
ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key;
t=1720620462; c=relaxed/simple;
bh=iM4HSzzma5dFms1ABxvOZsCEtRzJZZsSpksh/l69zuc=;
h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID:
MIME-Version;
b=q5sUC+X1X317wNqAP0TwEtIWdiw6sPajH2WoMfmD3UtZYYN7PQgNjiMb1gpqJZ0Oay4gfB8YylderxOBmTCWVvh9gF6XsvwHPpY0bM1kwO5Hb8yBBBiAnmECyvEbq01SZ9L9ppJRlT2SPxO4gC5R1y7XDLL5l1K33XBa+/gChkM=
ARC-Authentication-Results: i=3; server2.sourceware.org
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
b=TAolxLAkVxtUGdRaG5YY/lOoAaeEJ2H7Oep5ZoDqoiSS0B5Dk+BOp02r2h/dE/iOphiNzL8oq49b67RL21OlMAoGaxmHrQu7nUN9oqJZn9KF1/ClilNmsADa58Jn4p778KOA2oW2ZWpeRc3N220oWjqLciGmjXWZ7YQf3Y49zG2H2hmPU+SnpjsEsjArdN/O2sNqTiQvQbbXXchhboqYki22ZxdvRTvb9mDgwz9bxd7gnSm1yxjMb5QqGJrX2hvQAdg9XjIIhYL6rOfDsbHUj0ETQlJvC/8EP9kb0k3HTuGrzBkJ8tstSl01CiSMA2GYJwgtDUh3RMqoShwMDht3Kw==
ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
s=arcselector9901;
h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
bh=/KDsqBM/abQHeSwYIVkRPODFmzfAUtPf2WbEHGJ9kwA=;
b=G8AWTyz3m0W8ckndOMtyW4l9wA63NlhnRQQVPPjhHcM+ICV5YU5pVeqm8SPZ0ZDaZ1xdRQPGEIFoZBVKDW7d4TtmcDc14xkF25AE48Ww8ZbzcgKLXlNz5EHqqIa6P3slloKzWKZ2J17AVF8Zz2LrYq1V4dN09ExGsgN+HrYa6LuHX9gSVdk5nIKgYXx46axt54/Yai5GxpKOaTJF0dhq9TyFc1pRDZswEZhYLAhQ2+zRw2qnGvZ/lL1kXYttdrk+YssiHThjkAZSDciaQg//wbTfmVAcdfwDSHlZsthv2PPlZdim4kG3BiKNTMWKAvnC9uiv5uSIpMgffFmt+uvlIQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass
(p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
(signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
bh=/KDsqBM/abQHeSwYIVkRPODFmzfAUtPf2WbEHGJ9kwA=;
b=M94fMEMhL77vB0qJw4wxb3igTtuxPpTmX3nKZ4w6mKW+Wujr0S6zAEsFuFQ8JZwpkpIXCFSTZ0aah0uNKpTdniGEK1e/i081mWe+lhT6sBx+Fdpenl6kgebdjtdA7Eki5YyPMmXnTXY92u/nHz/E1ibrPgYDxAxUC1SRkBQ3WbE=
Received: from AM9P195CA0006.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:21f::11)
by DU0PR08MB7543.eurprd08.prod.outlook.com (2603:10a6:10:314::16)
with Microsoft SMTP Server (version=TLS1_2,
cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.20; Wed, 10 Jul
2024 14:07:37 +0000
Received: from AMS0EPF00000196.eurprd05.prod.outlook.com
(2603:10a6:20b:21f:cafe::7) by AM9P195CA0006.outlook.office365.com
(2603:10a6:20b:21f::11) with Microsoft SMTP Server (version=TLS1_2,
cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.20 via Frontend
Transport; Wed, 10 Jul 2024 14:07:36 +0000
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
smtp.mailfrom=arm.com; dkim=pass (signature was verified)
header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
63.35.35.123 as permitted sender) receiver=protection.outlook.com;
client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
pr=C
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
AMS0EPF00000196.mail.protection.outlook.com (10.167.16.217) with
Microsoft
SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7762.17
via Frontend Transport; Wed, 10 Jul 2024 14:07:36 +0000
Received: ("Tessian outbound 1bd2b4f45798:v359");
Wed, 10 Jul 2024 14:07:36 +0000
X-CheckRecipientChecked: true
X-CR-MTA-CID: 8f5f0214be2ebb68
X-CR-MTA-TID: 64aa7808
Received: from 17b0620bc596.1
by 64aa7808-outbound-1.mta.getcheckrecipient.com id
2DC135AB-4DE8-455F-B362-B513E2EAB7FE.1;
Wed, 10 Jul 2024 14:07:30 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
17b0620bc596.1
(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
Wed, 10 Jul 2024 14:07:30 +0000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
b=amr0dPCv7Z0N3p7NXYGUIS6r9DxRSqSKSe8Peha/MY6AYQI64bJPX09WQy9A2vSev76zSqzmWBK3jzUB3+GtrSBoBW4W4uZRx+2Wc246maYoBkY3rG1+ouJdQtXLTq0rfWwunP8PeNbzC0PabF355EPo7OrSp1UBefhJ/7LwteEu0SRe1xUwsB84ZSXRz/0XFPzb1p+HqgEH77BCtdxMSROLaOD4ZmO7PSXP54UdErO+LPz5aScHsxm1o1b/1xx/jjFJe5VWCwjEuapWxyVSqC1/hCzMJ5IMPXNKGSeBuPnzATqvNN60Hbk9pxKwpLLCKJJGXnBaHzZCuMr4SMHP2A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
s=arcselector9901;
h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
bh=/KDsqBM/abQHeSwYIVkRPODFmzfAUtPf2WbEHGJ9kwA=;
b=OUOLFoOJe8FUwy/JpnIeazIBros6w4InZ68FarPDcDbq2GpnyCGP2tfAwGJOGPBeL2kEw0L2EHyHWlS2+jS/zCtX0h6JSiVW1DnRZBdwciCSe2tLZRsICq3Y7pjhl1P5NvritybGbZXn/s4tGPnO9D8CVPj/wIvYovPLaIW54sj/s//DQXYR2B4weDglfmsCg0K36UTKRr3ueVBdCqGNz58QofIvIJLib3HeBbSgyu/v7wXYGKE0THFp41WGiAuo6aw3e9yq14svy8/lL/6qnHbw7fL7KFbRHBoEN4Pe/JhrsU2+V0F2SPsJdd0/DlqDhk3BQ9Qd0yRH0SUi2xdKmQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
40.67.248.234) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com;
dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com;
dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
bh=/KDsqBM/abQHeSwYIVkRPODFmzfAUtPf2WbEHGJ9kwA=;
b=M94fMEMhL77vB0qJw4wxb3igTtuxPpTmX3nKZ4w6mKW+Wujr0S6zAEsFuFQ8JZwpkpIXCFSTZ0aah0uNKpTdniGEK1e/i081mWe+lhT6sBx+Fdpenl6kgebdjtdA7Eki5YyPMmXnTXY92u/nHz/E1ibrPgYDxAxUC1SRkBQ3WbE=
Received: from DU2PR04CA0030.eurprd04.prod.outlook.com (2603:10a6:10:3b::35)
by DU5PR08MB10701.eurprd08.prod.outlook.com (2603:10a6:10:517::21) with
Microsoft SMTP Server (version=TLS1_2,
cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36; Wed, 10 Jul
2024 14:07:27 +0000
Received: from DU2PEPF00028D0D.eurprd03.prod.outlook.com
(2603:10a6:10:3b:cafe::3b) by DU2PR04CA0030.outlook.office365.com
(2603:10a6:10:3b::35) with Microsoft SMTP Server (version=TLS1_2,
cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.19 via Frontend
Transport; Wed, 10 Jul 2024 14:07:27 +0000
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234)
smtp.mailfrom=arm.com; dkim=none (message not signed)
header.d=none;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
40.67.248.234 as permitted sender) receiver=protection.outlook.com;
client-ip=40.67.248.234; helo=nebula.arm.com; pr=C
Received: from nebula.arm.com (40.67.248.234) by
DU2PEPF00028D0D.mail.protection.outlook.com (10.167.242.21) with Microsoft
SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
15.20.7741.18 via Frontend Transport; Wed, 10 Jul 2024 14:07:27 +0000
Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com
(10.251.24.32) with Microsoft SMTP Server (version=TLS1_2,
cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 10 Jul
2024 14:07:26 +0000
Received: from e133397.arm.com (10.57.7.170) by mail.arm.com (10.251.24.32)
with Microsoft SMTP Server id 15.1.2507.35 via Frontend Transport; Wed, 10
Jul 2024 14:07:26 +0000
From: Victor Do Nascimento <victor.donascimento@arm.com>
To: <gcc-patches@gcc.gnu.org>
CC: <richard.sandiford@arm.com>, <Richard.Earnshaw@arm.com>, "Victor Do
Nascimento" <vicdon01@e125768.arm.com>
Subject: [PATCH 10/10] autovectorizer: Test autovectorization of different
dot-prod modes.
Date: Wed, 10 Jul 2024 15:06:03 +0100
Message-ID: <20240710140602.1707875-11-victor.donascimento@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20240710140602.1707875-1-victor.donascimento@arm.com>
References: <20240710140602.1707875-1-victor.donascimento@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 1
X-MS-TrafficTypeDiagnostic:
DU2PEPF00028D0D:EE_|DU5PR08MB10701:EE_|AMS0EPF00000196:EE_|DU0PR08MB7543:EE_
X-MS-Office365-Filtering-Correlation-Id: b872e649-2e41-409d-fdd5-08dca0e9a701
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
ARA:13230040|82310400026|376014|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info-Original:
0/iYB7nQ8l2GZVSUhU+ujjHeiWJeYcES2q9UhuXZ2RfgpeAbJD/SEgJ1q9EmapTnUNFMAfpC0saKYJTpvzVkMN6A8JZSFMrzEqQAM96a8YjiM0tDNQdHCtUuZmJOTaYSgR+2p+46eVDEZNumMgEZclTW7F1ny1B/QeFOYsdXm1vJDaXmtd0roLM3VhRRrBKBLSqbPCU32KsMAe82kpVnGIMHrPZhaoA5HGDy1srl/DAZkbB6K7jIQpbtYZg8YGBsQ6I7gDyRZCLHwVnLAGx1pEQchDh+B6+7AH/a1c4CEuUR9YU01NtQsgPqRP5/m2HFAoD+V2OVuwlPxKoQFnZEod9Wk6opJPJaeiVefFRAqHpixQ2RToG112AeT0o5iXH1wSD0sUg+m84t+rAkyj9pyPWOyVGqgLUM7QkpWNbefSIXtTGbPq29XXdmKLTwHcQJvoyXX96HL/HANAxS5W6HDHG6xE5Qicr6x7yuQUeNVIsTZs9XotVNszBqzm/Zd9n+b9fawSmtIYTWOxLqVg1MykNPBt45H+WtrtJrA/xp0idh5nHjS0uawMvvovbRaStiFB33RYp7hCSbWAWuP+UHa8pqu9WJwWX8LmC+ndJ3TWnJ4028L3LfdnQjgCuIkydLMb0SV1uv8rwfzj5Zi4r3PSIpixCc+qEWPEALFrx0xpaGtqZdEWHWMGzNI6KKaORab1Mfzzjs53URoKJx8I8mX/ct7vrUHYVbHUP5HlnDw964jmLWpnEzjIW0Ek12icA/xAuB8Q+iTj9cP8oSdjCpFBSNWh1xXjCgWpf3npah7I1pgFb5NDdEO4/p8wLDHHetUNTwrUvhcplcDQaIdievCwlysC+er7P/RWZ33W49esVF1fK8khq35OOfR5Q0TJGbibUfUfw8xKDgFTXGhTrViKbvlqBfJkpt0miJJNOG8i4eCUKihv0gMfagkacIIP96iutKZaYVbK3yQmcRIwRsRUV3M9gVuCOwHM9hcMJ0dkHqQuVvC1LF49dxliTbzv6Zm1Ze/llyba268jdfplJ54HtV4nvqlMvrHZ4bW6VnzHHzCDzn5owF3rX80JlsdTiI8HrX13AjFvfGMYQqDn72OzQsE7VaC9XIW2tSogGW5i80BlWU2jZx4VCG0ihTliKLus/JWzU+5iU4/xGGPSXtOOfOeVUlSYHV5zzS4W/sPLNizV8d0M8PJfwsWjVZicwPhN9a93iYcjQSLArvScrArczj7O2YHqCIe0WCYYRjZl2fR+87HQe8UkmZGlPqbYGSpACM2vREeLHydvgLmh+hx1MYCsk5qAD7EYdHGNpBarM0vT9uuqybfrW6kqtpSK3Co1jPW2OX9kX9fCHqUIje10CneNpv9e6TP/V6rwAUReqQjPHo0DIxNMtfiOVS6nOQsavXDJnkzCLBt/5ZS/Q+YA==
X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234; CTRY:IE; LANG:en;
SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent;
CAT:NONE; SFS:(13230040)(82310400026)(376014)(1800799024)(36860700013);
DIR:OUT; SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR08MB10701
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
AMS0EPF00000196.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
fbd538d0-e161-4564-06bc-08dca0e9a1a6
X-Microsoft-Antispam: BCL:0;
ARA:13230040|36860700013|376014|82310400026|1800799024|35042699022;
X-Microsoft-Antispam-Message-Info:
c0Umo8J/sx/COfGvfzUfe2O/48dmhnm21e4z/id8yMtlc6QBAFPGC9onOemVhdbhPDNalWts0V9Hpzqmv6pejZNNgY0G2//oXOib9fnHR48+8v7xvmMRGRnBeS2A26GFG8dbVW7oEtsSho37HXWpgagcUOeh0aIagHQ33ezp/JwxvZVlVFVU9RokFiI/Wo2iFWkZbsRlURceKUwxRx+bRLP5RxHw7h8uA8N8EXjoRH9tTIWxgBCGx8a3y/KDNYQlQdhSU3xSac3wsfJOVEtddpxdmBanmTVTKIozMmCfGNn0dWIRuenIQfX3ijysVDoLqKlLY6ZJJ4gjbgRymUzXSPNy2yOVz04763LTZbWUpqIkLxliQSe7Rr4mWL7gW0wcNTqcVfgKrfCNaykd6gOD1yzc9Wh2rjxZJntbzPIMb/hSwSq9UGVyfNV56vc+0kb5bYytWL5OnX0XxCG4fVr2hnKxugYZrvLJ2CJ067r2RUBNodPZo9ZuRdycGLNORchG/+BaHvRs2dz5WdU9v4HlqBseUKsoGk/vex/JptzJS4RUAMihlyuxiS2zcaRj/+yrQZF7YAHyJgRIm0ppzH7/aDfBm6zXFTszWRi38enmTZNnMRhMn97RUXlbnZtfAIE0CZjVrHlGnNXghNQE3VLO00HDhgQ/3pQFcJ5lH2kxK4hezmmils9sa+O6AwJNHAIWLQmQQnuYjO2qH8HgVBgw5Fv9zg25J6XH4JQe4yYcwPDNfWpIqcci2ab3jOYYNh/1pncCxlAc0n8/7lILQ+C+s5Kvg3EscMkPPkX1Shl4w4o4YCicOHS21/BJ261fjEYkKhZ+jQT2YZuK0IyZs+911lINU4dTTZKe0+bCv+xwIqLDX7h3A0u2gHMNl9P4nNkBojlaX5kMidyRy3gUw77A9jV/ovbVp2BMLQHgodvt/Kkx6aQhcj/O+dLIlrBGRtfUT2lvQ67bjIDGojlGfROxU1VK9JRqRwPq0I+T1TFj+dL6rYxPyPsQAPIJpTkchzyNPihU1CRfLzUt6fCc1jBUM50TUzkuQdIkm9mdBVAUcjzvPIOjPjH2S82zirLXENpKfU8yqs29epQ+dU5ygU9qNDop15CInTbf6QCfuUqO0CZd0xYL/Dd62l7ppEApP3D1aIW5Q8FHDLKebS4BXd/vQmBg7lTGXESKc10qr64K5EvvyKG6KMuJSZqpBfBv/4XU/SHC4a6Ht5S6VfDpy9/uHZO5/rh6fciXpkDwB2rb6S6MirKJmOVOiWxBxLgdlmcDDo5YXn2ZWH8ee4C5FhfalsndFLrudjO+uq5dNdFXDBlGXY7gQIW3Ct55cvG5Epul2MkUziLPhVIBg+HtR25RSUikO9VuqhJFOzZ5iJ/CH4Neurr25m++0q9xBL+eU9z/p0laGEOe1YuNRelhrxj41w==
X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:;
IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com;
PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE;
SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024)(35042699022);
DIR:OUT; SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 14:07:36.8892 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id:
b872e649-2e41-409d-fdd5-08dca0e9a701
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp:
TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123];
Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
AMS0EPF00000196.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB7543
X-Spam-Status: No, score=-12.0 required=5.0 tests=BAYES_00, DKIM_SIGNED,
DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0,
RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_NONE, TXREP,
UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6
X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on
server2.sourceware.org
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>,
<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>,
<mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>
Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org
|
| Series |
Make `dot_prod' a convert-type optab
|
|
Checks
| Context | Check | Description |
|---|---|---|
| linaro-tcwg-bot/tcwg_gcc_build--master-arm | success | Build passed |
| linaro-tcwg-bot/tcwg_gcc_build--master-aarch64 | success | Build passed |
| linaro-tcwg-bot/tcwg_gcc_check--master-aarch64 | success | Test passed |
| linaro-tcwg-bot/tcwg_gcc_check--master-arm | fail | Test failed |
Commit Message
Victor Do Nascimento
July 10, 2024, 2:06 p.m. UTC
From: Victor Do Nascimento <vicdon01@e125768.arm.com>
Given the novel treatment of the dot product optab as a conversion we
are now able to target, for a given architecture, different
relationships between output modes and input modes.
This is made clearer by way of example. Previously, on AArch64, the
following loop was vectorizable:
uint32_t udot4(int n, uint8_t* data) {
uint32_t sum = 0;
for (int i=0; i<n; i+=1)
sum += data[i] * data[i];
return sum;
}
while the following wasn't:
uint32_t udot2(int n, uint16_t* data) {
uint32_t sum = 0;
for (int i=0; i<n; i+=1)
sum += data[i] * data[i];
return sum;
}
Under the new treatment of the dot product optab, they are both now
vectorizable.
This adds the relevant target-agnostic check to ensure this behaviour
in the autovectorizer.
gcc/testsuite/ChangeLog:
* gcc.dg/vect/vect-dotprod-twoway.c: New.
---
.../gcc.dg/vect/vect-dotprod-twoway.c | 38 +++++++++++++++++++
1 file changed, 38 insertions(+)
create mode 100644 gcc/testsuite/gcc.dg/vect/vect-dotprod-twoway.c
Comments
Hi Victor, > -----Original Message----- > From: Victor Do Nascimento <victor.donascimento@arm.com> > Sent: Wednesday, July 10, 2024 3:06 PM > To: gcc-patches@gcc.gnu.org > Cc: Richard Sandiford <Richard.Sandiford@arm.com>; Richard Earnshaw > <Richard.Earnshaw@arm.com>; Victor Do Nascimento > <vicdon01@e125768.arm.com> > Subject: [PATCH 10/10] autovectorizer: Test autovectorization of different dot- > prod modes. > > From: Victor Do Nascimento <vicdon01@e125768.arm.com> > > Given the novel treatment of the dot product optab as a conversion we > are now able to target, for a given architecture, different > relationships between output modes and input modes. > > This is made clearer by way of example. Previously, on AArch64, the > following loop was vectorizable: > > uint32_t udot4(int n, uint8_t* data) { > uint32_t sum = 0; > for (int i=0; i<n; i+=1) > sum += data[i] * data[i]; > return sum; > } > > while the following wasn't: > > uint32_t udot2(int n, uint16_t* data) { > uint32_t sum = 0; > for (int i=0; i<n; i+=1) > sum += data[i] * data[i]; > return sum; > } > > Under the new treatment of the dot product optab, they are both now > vectorizable. > > This adds the relevant target-agnostic check to ensure this behaviour > in the autovectorizer. > > gcc/testsuite/ChangeLog: > > * gcc.dg/vect/vect-dotprod-twoway.c: New. > --- > .../gcc.dg/vect/vect-dotprod-twoway.c | 38 +++++++++++++++++++ > 1 file changed, 38 insertions(+) > create mode 100644 gcc/testsuite/gcc.dg/vect/vect-dotprod-twoway.c > > diff --git a/gcc/testsuite/gcc.dg/vect/vect-dotprod-twoway.c > b/gcc/testsuite/gcc.dg/vect/vect-dotprod-twoway.c > new file mode 100644 > index 00000000000..5caa7b81fce > --- /dev/null > +++ b/gcc/testsuite/gcc.dg/vect/vect-dotprod-twoway.c > @@ -0,0 +1,38 @@ > +/* { dg-do compile } */ > +/* { dg-require-effective-target vect_int } */ > +/* Ensure both the two-way and four-way dot products are autovectorized. */ > +#include <stdint.h> > + > +uint32_t udot4(int n, uint8_t* data) { > + uint32_t sum = 0; > + for (int i=0; i<n; i+=1) { > + sum += data[i] * data[i]; > + } > + return sum; > +} > + > +int32_t sdot4(int n, int8_t* data) { > + int32_t sum = 0; > + for (int i=0; i<n; i+=1) { > + sum += data[i] * data[i]; > + } > + return sum; > +} > + > +uint32_t udot2(int n, uint16_t* data) { > + uint32_t sum = 0; > + for (int i=0; i<n; i+=1) { > + sum += data[i] * data[i]; > + } > + return sum; > +} > + > +int32_t sdot2(int n, int16_t* data) { > + int32_t sum = 0; > + for (int i=0; i<n; i+=1) { > + sum += data[i] * data[i]; > + } > + return sum; > +} > + > +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 4 "vect" } } */ These tests only test that you have vectorized the loops, not that the loop was vectorized using dotprod. I think you want to have a scan for DOT_PROD_EXPR as well, gated to the targets that support two-way dot prod. Cheers, Tamar > -- > 2.34.1
On Thu, Jul 11, 2024 at 9:03 AM Tamar Christina <Tamar.Christina@arm.com> wrote: > > Hi Victor, > > > -----Original Message----- > > From: Victor Do Nascimento <victor.donascimento@arm.com> > > Sent: Wednesday, July 10, 2024 3:06 PM > > To: gcc-patches@gcc.gnu.org > > Cc: Richard Sandiford <Richard.Sandiford@arm.com>; Richard Earnshaw > > <Richard.Earnshaw@arm.com>; Victor Do Nascimento > > <vicdon01@e125768.arm.com> > > Subject: [PATCH 10/10] autovectorizer: Test autovectorization of different dot- > > prod modes. > > > > From: Victor Do Nascimento <vicdon01@e125768.arm.com> > > > > Given the novel treatment of the dot product optab as a conversion we > > are now able to target, for a given architecture, different > > relationships between output modes and input modes. > > > > This is made clearer by way of example. Previously, on AArch64, the > > following loop was vectorizable: > > > > uint32_t udot4(int n, uint8_t* data) { > > uint32_t sum = 0; > > for (int i=0; i<n; i+=1) > > sum += data[i] * data[i]; > > return sum; > > } > > > > while the following wasn't: > > > > uint32_t udot2(int n, uint16_t* data) { > > uint32_t sum = 0; > > for (int i=0; i<n; i+=1) > > sum += data[i] * data[i]; > > return sum; > > } > > > > Under the new treatment of the dot product optab, they are both now > > vectorizable. > > > > This adds the relevant target-agnostic check to ensure this behaviour > > in the autovectorizer. > > > > gcc/testsuite/ChangeLog: > > > > * gcc.dg/vect/vect-dotprod-twoway.c: New. > > --- > > .../gcc.dg/vect/vect-dotprod-twoway.c | 38 +++++++++++++++++++ > > 1 file changed, 38 insertions(+) > > create mode 100644 gcc/testsuite/gcc.dg/vect/vect-dotprod-twoway.c > > > > diff --git a/gcc/testsuite/gcc.dg/vect/vect-dotprod-twoway.c > > b/gcc/testsuite/gcc.dg/vect/vect-dotprod-twoway.c > > new file mode 100644 > > index 00000000000..5caa7b81fce > > --- /dev/null > > +++ b/gcc/testsuite/gcc.dg/vect/vect-dotprod-twoway.c > > @@ -0,0 +1,38 @@ > > +/* { dg-do compile } */ > > +/* { dg-require-effective-target vect_int } */ > > +/* Ensure both the two-way and four-way dot products are autovectorized. */ > > +#include <stdint.h> > > + > > +uint32_t udot4(int n, uint8_t* data) { > > + uint32_t sum = 0; > > + for (int i=0; i<n; i+=1) { > > + sum += data[i] * data[i]; > > + } > > + return sum; > > +} > > + > > +int32_t sdot4(int n, int8_t* data) { > > + int32_t sum = 0; > > + for (int i=0; i<n; i+=1) { > > + sum += data[i] * data[i]; > > + } > > + return sum; > > +} > > + > > +uint32_t udot2(int n, uint16_t* data) { > > + uint32_t sum = 0; > > + for (int i=0; i<n; i+=1) { > > + sum += data[i] * data[i]; > > + } > > + return sum; > > +} > > + > > +int32_t sdot2(int n, int16_t* data) { > > + int32_t sum = 0; > > + for (int i=0; i<n; i+=1) { > > + sum += data[i] * data[i]; > > + } > > + return sum; > > +} > > + > > +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 4 "vect" } } */ > > These tests only test that you have vectorized the loops, not that the loop was vectorized > using dotprod. I think you want to have a scan for DOT_PROD_EXPR as well, gated to the > targets that support two-way dot prod. Ideally they'd also verify correctness, thus make them have runtime checks. > Cheers, > Tamar > > > -- > > 2.34.1 >
diff --git a/gcc/testsuite/gcc.dg/vect/vect-dotprod-twoway.c b/gcc/testsuite/gcc.dg/vect/vect-dotprod-twoway.c new file mode 100644 index 00000000000..5caa7b81fce --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/vect-dotprod-twoway.c @@ -0,0 +1,38 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target vect_int } */ +/* Ensure both the two-way and four-way dot products are autovectorized. */ +#include <stdint.h> + +uint32_t udot4(int n, uint8_t* data) { + uint32_t sum = 0; + for (int i=0; i<n; i+=1) { + sum += data[i] * data[i]; + } + return sum; +} + +int32_t sdot4(int n, int8_t* data) { + int32_t sum = 0; + for (int i=0; i<n; i+=1) { + sum += data[i] * data[i]; + } + return sum; +} + +uint32_t udot2(int n, uint16_t* data) { + uint32_t sum = 0; + for (int i=0; i<n; i+=1) { + sum += data[i] * data[i]; + } + return sum; +} + +int32_t sdot2(int n, int16_t* data) { + int32_t sum = 0; + for (int i=0; i<n; i+=1) { + sum += data[i] * data[i]; + } + return sum; +} + +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 4 "vect" } } */