From patchwork Wed Jul 13 13:39:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Carlotti X-Patchwork-Id: 1656034 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=O/8CLZ56; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LjdzP2dPzz9ryY for ; Wed, 13 Jul 2022 23:40:15 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id BAD27383A373 for ; Wed, 13 Jul 2022 13:40:11 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BAD27383A373 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1657719611; bh=hmwyXRM5p32UDDl02zuBhbw0SasxkkaKJ1bnL/WK9rA=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=O/8CLZ56KpEp/GysbIGT/wmt730zr7XIX15cVLBDd2MB2/3oeW02VmGQey0mlokSM bzMXOZrdyyh84g04OrcAPv2UEVKpn2cMGM4TM51++ueUMbd9eXPozYN8IHy2C+k9kJ 84dmWMYABXcLBk6GttF2OTXzkzpLE93HXZIoBbss= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70071.outbound.protection.outlook.com [40.107.7.71]) by sourceware.org (Postfix) with ESMTPS id CC2883856DD2 for ; Wed, 13 Jul 2022 13:39:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org CC2883856DD2 ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=K6m9UZ/MjBL0+j15R3dYuajmHyy3fg/rqQOuIHd7hA+iOK4JkERaKTQ5nM59+hTS4mQ6Qdehp9gZFc059XYVJyNmFb+6apF+PCwsDwmLVIJqZASXIBrDhQSyb7N2RDAyr9vPPykkxXg+9eji13N1+OFB/NHb6VAbW/9HKzl9eZVm7zmcEIpMaxtcrbSaUtWaQSziVS9XQ1moQgm2S341m6TrAf7idFhCmAgZN64TOf+nd0dMGbhhD+A0W4+95eSGEUp3iLCWkOSs04/epVmWFiQllFKk8EWlFMmPbom2tjGavh+SNVJpCHie92cN4/Hc7ha+Nga0pd74Bx0v4GO4Sw== 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=hmwyXRM5p32UDDl02zuBhbw0SasxkkaKJ1bnL/WK9rA=; b=N8MWYwlBa+FBeTuo0TvnNNaZ1rcTLI5rZrIm6KBm2HOFThUYH78kXvDYvtfF27F9aND/cfsiDCSD+/20D6oKzI+rtqpf/+TJa/9ZsjvMaenyigGOoOu+piHpOe3iHdXiNp5xrMhngJZ1sZ3tWGVg8DhNjTeSt4PGo1AFflGw3I0axv3C5u2Ut5hCLH5vcUp3zMh308rTJs8A+Bw2b16epRj7mzWvZbbV1gJiY3cqfWgQynKpmZZwlpEa0NtueAWSfGvI9IKZiSb6JJcr+E+iyPx6OPYrinu/+aCB1qODlS7xnhMC6xd+sJaV0Vkl1flKTnXRxta6F7QOkHvF4mNy3g== 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=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) Received: from AM7PR02CA0009.eurprd02.prod.outlook.com (2603:10a6:20b:100::19) by DB6PR08MB2904.eurprd08.prod.outlook.com (2603:10a6:6:1e::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.20; Wed, 13 Jul 2022 13:39:45 +0000 Received: from VE1EUR03FT062.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:100:cafe::a1) by AM7PR02CA0009.outlook.office365.com (2603:10a6:20b:100::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5438.11 via Frontend Transport; Wed, 13 Jul 2022 13:39:45 +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=armh.onmicrosoft.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 VE1EUR03FT062.mail.protection.outlook.com (10.152.18.252) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.16 via Frontend Transport; Wed, 13 Jul 2022 13:39:44 +0000 Received: ("Tessian outbound f9f15f9daab2:v122"); Wed, 13 Jul 2022 13:39:44 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: bd3a5a6b52f95811 X-CR-MTA-TID: 64aa7808 Received: from ba35e658e726.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id EDD28138-0CE4-49B5-9F8C-6EF1BCE5A37E.1; Wed, 13 Jul 2022 13:39:33 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id ba35e658e726.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 13 Jul 2022 13:39:33 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JGGUWOJ/FC8Udp9kwRkvVT7d4mg76AGznp70mbtIJshAuT87edYBUsWUWhZ7dgtIaZ0vVakj7j3qs8qhVSqn1UZi8M/sOCB4USXI5wmpOXLq/FMq1niPp3zXMBRs3U5qt7WXdLyzNYRao4ZLiPVFWzg8plDYAI6wPmRMS5N0O15XG2YAb9esNYlgvltAOWEsWL1zOatxxZpXe1Z8VK3nRYwiHfzR8a2sF2gY2XQW1QGm/Cqe32vuOlamOUw+CKVEAT5XH1C3LB+PlglHUhuahuKGcfFfB52c5Ie6kbO7/myK5mZGzDytgmZOU0yodQ5h4dqga6iMFtin73JEl+qSKg== 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=hmwyXRM5p32UDDl02zuBhbw0SasxkkaKJ1bnL/WK9rA=; b=SOtnxrohFMedBi8F+C+i2ussZOs9fMQTzkqp+tuOq9YEuuF41GmUrSChtDZji96msW1sTsuO9sn5Mo93i9Ex93yWOUN0QhushciV/xzaDopCJj73D7dElj6APRwrCE2NPxGLyRWUQMx+OdZ2jAUcJUoyP0W9S0v4A/pRsPPHSwhUjBVXPf9wkjTmdIg0paxY9ZnqsWiKVm0E0N9mZ/6fxgdv/FsH6cddzVqAe8kAFrRi9kwh4b2i6TmlIV0pU3UmZ/St6FR+m4xdo0p5xyGvOFz7CfmR37vDzTES7dy5lqe3aam1Xt4sZgEfcisbDHWOWPGGRcz5KwF00Exsaa9msw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from AS8PR08MB6678.eurprd08.prod.outlook.com (2603:10a6:20b:398::8) by PA4PR08MB6302.eurprd08.prod.outlook.com (2603:10a6:102:ed::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5438.12; Wed, 13 Jul 2022 13:39:32 +0000 Received: from AS8PR08MB6678.eurprd08.prod.outlook.com ([fe80::90e1:2317:2ab:bd1e]) by AS8PR08MB6678.eurprd08.prod.outlook.com ([fe80::90e1:2317:2ab:bd1e%9]) with mapi id 15.20.5438.012; Wed, 13 Jul 2022 13:39:32 +0000 Date: Wed, 13 Jul 2022 14:39:40 +0100 To: gcc-patches@gcc.gnu.org Subject: [PATCH v2 1/4] aarch64: Add V1DI mode Message-ID: Content-Disposition: inline X-ClientProxiedBy: LO4P265CA0089.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2bc::6) To AS8PR08MB6678.eurprd08.prod.outlook.com (2603:10a6:20b:398::8) MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: af9003ae-cbfb-471c-c4d4-08da64d525bd X-MS-TrafficTypeDiagnostic: PA4PR08MB6302:EE_|VE1EUR03FT062:EE_|DB6PR08MB2904:EE_ x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: odBqVnm+d5NkuI2VJg4yiCNgQaQG+67fISq//s9tzvbcaPnpx9q3vv3dgimmGgCX3VcaPLcBX8qwWAbH3zdcCZ75XCDX3Oq8FbeJRPnM3D8ZCzlC0Zsa9Bcp4yFv3UU0Le6aVHlm0HLJJ3BzIXQniX9bSkdxz5VB0J9Eqh/ofGO1f6TTOxDdTpLJ61cpnVhdViE02mD2DyA6hIgSNqRduAdCLCbzeTx1PaMfED/DuYn6dFqWLd4atXptVRbqMNJxq+PUedAQO6ieR09CIgJ/Wtg2XsQAIwRQpuOcRCzz2s0ONuufmMjVURkoxg4vcJCYuTCInAuxsp7TqeYkJLEmmG2Oj3BulHiEezDfmzptb6Nqnfqt84HeTkBuOF336LwhAiK0TlPQY2JwQQtGo+A9iFDfgMsthQQPLsUlCm+H3hHB3wf6iU8rAxTsXj6vCFd6MZlqypDZUo+2oqYkuHQz9iqu5BWTmjFEhoGfYA3irMegAOJZXaAljJbKH4yQWeMsXuK/fFoCeJba0j3HI3l23u7qLkaMp/JLI+btwyPWB+P+u90liFt5+4WXzUIO0s8toaYUTKVngPaSdU++lpxBuwbBp7BbkJaE6ofhrxrEhjEN3kwqNFqiLHDiCaw98uS18x7mh7RdS5d6kxL6fVKcYLnNVXLhLPr5to2cnvxfk+8E0nOYL/BUVq5tArc9b3QsCmqMA+6pTL13wXWKimqsvSkZ3fqwshgx1P7ou3+ct9+tGalUxmYoCIyBIDFVco2M+ATXCh5ShcV76yCixcrJXkfqmDuDIXoRxKn60x3uH25vzBTkPwsmDzhPHnras/S8vVWDk1LVAhlwJMQYljgRhQ== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB6678.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(39860400002)(376002)(136003)(346002)(396003)(6506007)(6666004)(41300700001)(6486002)(6512007)(478600001)(26005)(66556008)(8676002)(66476007)(86362001)(66946007)(316002)(4326008)(38100700002)(6916009)(186003)(8936002)(5660300002)(2906002)(44832011)(32563001)(414714003); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6302 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT062.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: f7a5a186-ebb8-4558-81d0-08da64d51df0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Uk9ePiqWA7+VdvWSDLMWq8rDnquddCP3cByOdSwXxr491rJ22/5svfcaYLI+i2AzleYHl1UWN/bzH/IjC4WgZRW7IVysOfnfYUyHqz7vED5GOaxw9Gvy79YxN/LUq9kJ8q5G1PQtzecq6RiMQprAQwjWbJvH1gH0lSax5FFQhS2DEE55lcGPm2x5jVY4WakBbFOgy/84nfvTrryOFbjBKuQaev2pHDJAfdnB0dr5LtzZpN31EltviGCxxL2AA4cihbFFCGxqBopFTOINNUNr+Ej8ub/LAEPkUk7zrQoVT2L08lBQtfUYdH5WvoJPAyEsKm1veMXItkNpQZvckn/EHGbmzi0i3akuL65I76j+mUaLP/yp/HnFDj9ARygyX5jwbpW3QCFulqECXv8KItJZ6qLBAs6l3JXo2a62B8NFyBDuWuYr+Lwls1d/MEEXLqqspKmHngZSkYTLYsuofY4lJt1UJyVRdIRqyIwUWp0u0XD6Z98f1U2s6TFI93UjMcakq7vU+8DL1xIWtNLT0j4ULiTGGdFyP6wbaZQnOnZiCGAuPCLeyvaq9CgiR26O3vlsqYh3g+agLmWByW+RDZLNtzMXwSg2PfFZgPXObs9Z5j+lfpa3ut2L1FOYr90joWkCJ76gZGQjHC7X7bF1gO70e+EpTg4XfjUfwXZraPehAQgOPpmX8QQzrkTl01hq5uWLdOO8Bx3DLo9lIozItaUOENVdScQoCqPTvSI+Oz2KpcZadGmU/NfBRQ6KV3x/xmIPfmrh4X7WBWHQwcQaMQqExTDMhR2PgEPVIH/lRmKXyF70Ay8jlzElWZGvUZQYobngAkMM4+Ry3J3YymR0tBM2JCwcmYOo0ek69s1zV2ESaqNOQdIMaAUaz32SWBPdZjbh 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:(13230016)(4636009)(136003)(376002)(396003)(346002)(39860400002)(36840700001)(40470700004)(46966006)(86362001)(478600001)(186003)(4326008)(8676002)(6486002)(356005)(82740400003)(6512007)(336012)(47076005)(6506007)(6916009)(316002)(26005)(82310400005)(70206006)(41300700001)(70586007)(6666004)(40460700003)(40480700001)(36860700001)(44832011)(8936002)(5660300002)(81166007)(2906002)(32563001)(414714003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jul 2022 13:39:44.8945 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: af9003ae-cbfb-471c-c4d4-08da64d525bd 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: VE1EUR03FT062.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR08MB2904 X-Spam-Status: No, score=-13.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_NONE, KAM_LOTSOFHASH, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE, 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.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Andrew Carlotti via Gcc-patches From: Andrew Carlotti Reply-To: Andrew Carlotti Cc: Richard Sandiford Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" We already have a V1DF mode, so this makes the vector modes more consistent. Additionally, this allows us to recognise uint64x1_t and int64x1_t types given only the mode and type qualifiers (e.g. in aarch64_lookup_simd_builtin_type). gcc/ChangeLog: * config/aarch64/aarch64-builtins.cc (v1di_UP): Add V1DI mode to _UP macros. * config/aarch64/aarch64-modes.def (VECTOR_MODE): Add V1DI mode * config/aarch64/aarch64-simd-builtin-types.def: Use V1DI mode * config/aarch64/aarch64-simd.md (vec_extractv2dfv1df): Replace with... (vec_extract): ...this. * config/aarch64/aarch64.cc (aarch64_classify_vector_mode): Add V1DI mode * config/aarch64/iterators.md (VQ_2E, V1HALF, V1half): New. (nunits): Add V1DI mode. diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc index c21476d7ae963450b12efa24418ce4004a3c74bf..52d27c6978990ca3e6c523654fe1cdc952e77ad7 100644 --- a/gcc/config/aarch64/aarch64-builtins.cc +++ b/gcc/config/aarch64/aarch64-builtins.cc @@ -55,6 +55,7 @@ #define v2si_UP E_V2SImode #define v2sf_UP E_V2SFmode #define v1df_UP E_V1DFmode +#define v1di_UP E_V1DImode #define di_UP E_DImode #define df_UP E_DFmode #define v16qi_UP E_V16QImode diff --git a/gcc/config/aarch64/aarch64-modes.def b/gcc/config/aarch64/aarch64-modes.def index 8f399225a8048d93108e33e9d49c736aeb5612ce..d3c9b74434cd2c0d0cb1a2fd26af8c0bf38a4cfa 100644 --- a/gcc/config/aarch64/aarch64-modes.def +++ b/gcc/config/aarch64/aarch64-modes.def @@ -70,6 +70,7 @@ VECTOR_MODES (INT, 8); /* V8QI V4HI V2SI. */ VECTOR_MODES (INT, 16); /* V16QI V8HI V4SI V2DI. */ VECTOR_MODES (FLOAT, 8); /* V2SF. */ VECTOR_MODES (FLOAT, 16); /* V4SF V2DF. */ +VECTOR_MODE (INT, DI, 1); /* V1DI. */ VECTOR_MODE (FLOAT, DF, 1); /* V1DF. */ VECTOR_MODE (FLOAT, HF, 2); /* V2HF. */ diff --git a/gcc/config/aarch64/aarch64-simd-builtin-types.def b/gcc/config/aarch64/aarch64-simd-builtin-types.def index 248e51e96549fb640817d79c099a3f5e62c71317..40545581408e2ee2be84f08abb5801058c4ea42e 100644 --- a/gcc/config/aarch64/aarch64-simd-builtin-types.def +++ b/gcc/config/aarch64/aarch64-simd-builtin-types.def @@ -24,7 +24,7 @@ ENTRY (Int16x8_t, V8HI, none, 11) ENTRY (Int32x2_t, V2SI, none, 11) ENTRY (Int32x4_t, V4SI, none, 11) - ENTRY (Int64x1_t, DI, none, 11) + ENTRY (Int64x1_t, V1DI, none, 11) ENTRY (Int64x2_t, V2DI, none, 11) ENTRY (Uint8x8_t, V8QI, unsigned, 11) ENTRY (Uint8x16_t, V16QI, unsigned, 12) @@ -32,7 +32,7 @@ ENTRY (Uint16x8_t, V8HI, unsigned, 12) ENTRY (Uint32x2_t, V2SI, unsigned, 12) ENTRY (Uint32x4_t, V4SI, unsigned, 12) - ENTRY (Uint64x1_t, DI, unsigned, 12) + ENTRY (Uint64x1_t, V1DI, unsigned, 12) ENTRY (Uint64x2_t, V2DI, unsigned, 12) ENTRY (Poly8_t, QI, poly, 9) ENTRY (Poly16_t, HI, poly, 10) @@ -42,7 +42,7 @@ ENTRY (Poly8x16_t, V16QI, poly, 12) ENTRY (Poly16x4_t, V4HI, poly, 12) ENTRY (Poly16x8_t, V8HI, poly, 12) - ENTRY (Poly64x1_t, DI, poly, 12) + ENTRY (Poly64x1_t, V1DI, poly, 12) ENTRY (Poly64x2_t, V2DI, poly, 12) ENTRY (Float16x4_t, V4HF, none, 13) ENTRY (Float16x8_t, V8HF, none, 13) diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md index a00e1c6ef8d6b43d8b1a0fe4701e6b8c1f0f622f..587a45d77721e1b39accbad7dbeca4d741eccb10 100644 --- a/gcc/config/aarch64/aarch64-simd.md +++ b/gcc/config/aarch64/aarch64-simd.md @@ -8026,16 +8026,16 @@ }) ;; Extract a single-element 64-bit vector from one half of a 128-bit vector. -(define_expand "vec_extractv2dfv1df" - [(match_operand:V1DF 0 "register_operand") - (match_operand:V2DF 1 "register_operand") +(define_expand "vec_extract" + [(match_operand: 0 "register_operand") + (match_operand:VQ_2E 1 "register_operand") (match_operand 2 "immediate_operand")] "TARGET_SIMD" { - /* V1DF is rarely used by other patterns, so it should be better to hide - it in a subreg destination of a normal DF op. */ - rtx scalar0 = gen_lowpart (DFmode, operands[0]); - emit_insn (gen_vec_extractv2dfdf (scalar0, operands[1], operands[2])); + /* V1DI and V1DF are rarely used by other patterns, so it should be better + to hide it in a subreg destination of a normal DI or DF op. */ + rtx scalar0 = gen_lowpart (mode, operands[0]); + emit_insn (gen_vec_extract (scalar0, operands[1], operands[2])); DONE; }) diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index f650abbc4ce49cf0947049931f86bad1130c3428..278910af0a38c0203a962d34c6792191f0fe9e31 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -3568,7 +3568,7 @@ aarch64_classify_vector_mode (machine_mode mode) case E_V8QImode: case E_V4HImode: case E_V2SImode: - /* ...E_V1DImode doesn't exist. */ + case E_V1DImode: case E_V4HFmode: case E_V4BFmode: case E_V2SFmode: diff --git a/gcc/config/aarch64/iterators.md b/gcc/config/aarch64/iterators.md index e72fdf35a82e596844bbdbbcb23a13f763aac775..bb989d4417defa1d61d0fdbd90095ff8e71b1a37 100644 --- a/gcc/config/aarch64/iterators.md +++ b/gcc/config/aarch64/iterators.md @@ -128,6 +128,9 @@ ;; VQ without 2 element modes. (define_mode_iterator VQ_NO2E [V16QI V8HI V4SI V8HF V4SF V8BF]) +;; 2 element quad vector modes. +(define_mode_iterator VQ_2E [V2DI V2DF]) + ;; BFmode vector modes. (define_mode_iterator VBF [V4BF V8BF]) @@ -1060,12 +1063,13 @@ (define_mode_attr nunits [(V8QI "8") (V16QI "16") (V4HI "4") (V8HI "8") (V2SI "2") (V4SI "4") - (V2DI "2") (V8DI "8") + (V1DI "1") (V2DI "2") (V4HF "4") (V8HF "8") (V4BF "4") (V8BF "8") (V2SF "2") (V4SF "4") (V1DF "1") (V2DF "2") - (DI "1") (DF "1")]) + (DI "1") (DF "1") + (V8DI "8")]) ;; Map a mode to the number of bits in it, if the size of the mode ;; is constant. @@ -1435,6 +1439,12 @@ (V2DI "di") (V2SF "sf") (V4SF "v2sf") (V2DF "df")]) +;; Single-element half modes of quad vector modes. +(define_mode_attr V1HALF [(V2DI "V1DI") (V2DF "V1DF")]) + +;; Single-element half modes of quad vector modes, in lower-case +(define_mode_attr V1half [(V2DI "v1di") (V2DF "v1df")]) + ;; Double modes of vector modes. (define_mode_attr VDBL [(V8QI "V16QI") (V4HI "V8HI") (V4HF "V8HF") (V4BF "V8BF")