From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70052.outbound.protection.outlook.com [40.107.7.52]) by sourceware.org (Postfix) with ESMTPS id 91121388451E for ; Fri, 11 Nov 2022 14:34:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 91121388451E 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-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=OplZCMhRNRDWu8Sl6dA0YqAK4uFDFABpw7XnqXqCn92MTWaGz955Hr8M6ajNK9QdXptAQmoUUX5BC8Go0EbpF20pcDgZnqx9htbkskzLowABNdGuEu+8w3ht95FLQ3EoBTUVBGakIg53c1jLUOLMj1PcPn7Q8I37wQ6FRMyr3XRwDN80kIRHsN3QS149GdUY3PjUVU+TH8aMUjPmAp79T2JTVjyNG6cYUOTqlY2DjDgr4ba0KJoUbT5tNEO9RWeRZSOoHwrpNec7hDfGpfOdxnjYmYuJ1c5bc/LHso1Gsi5YWOo4uG7oEuDIAxQUA7fW2L8gpsbV36wLXKRyyZLeuA== 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=S3hrA0ze7gfeYg8HS+nFm0BFIjspCJgegIQ/xCtII7s=; b=n0fLoS+7T+zsv/pg3/6DfGO3VCMwhwNysw/lOtXXJkYKNdL+qpg7C/3KaBwl9/yD+JW1PwHFxQUHgluhiUvTNJBFwzO5CN8zj0jx89rma0uvqQBSZIB1SQXSC9c+l+F3mWtlRh7+kcSqZh31p+xsBqhbQFm1+FrRWbY8WV82xCgHMNKcAhlCH0KdvqYn1l0WbU8Hf3kI0SDypwo86im1/nQjWRfRTHSsWyxcWR5+a0u6rvg/p4jpBOztUbOVjBhkLu+JBMTA/Wg672+52xyaJJEfOGinBlaOouiYX1ZoVcEnJE8j4FwXXFyTRXuIgyzOdPOyTsLgbO6ewn6xRQkFYg== 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]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=S3hrA0ze7gfeYg8HS+nFm0BFIjspCJgegIQ/xCtII7s=; b=EAyTHsRjPTlFucPOwEkfk7Po+0FJwxnefAl+oWwv4ujFaUxJ+wGZ6wgBco5Q2hjMIcMZfVodL08c1CneI/vX4Aal3MpP+e2KWQPFPQD10rsR4K6s5sNjWkU4bZf6tWLLOBxEe7qIKXe5i+7cT4pR0doX3gquhAvUfBJIyhsiiEU= Received: from FR3P281CA0111.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a3::14) by PA4PR08MB6112.eurprd08.prod.outlook.com (2603:10a6:102:f1::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.13; Fri, 11 Nov 2022 14:34:03 +0000 Received: from VI1EUR03FT047.eop-EUR03.prod.protection.outlook.com (2603:10a6:d10:a3:cafe::88) by FR3P281CA0111.outlook.office365.com (2603:10a6:d10:a3::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.13 via Frontend Transport; Fri, 11 Nov 2022 14:34:03 +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 VI1EUR03FT047.mail.protection.outlook.com (100.127.144.198) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.12 via Frontend Transport; Fri, 11 Nov 2022 14:34:03 +0000 Received: ("Tessian outbound 0800d254cb3b:v130"); Fri, 11 Nov 2022 14:34:02 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: e5eea8033bbd691f X-CR-MTA-TID: 64aa7808 Received: from 9b52938d0330.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id FB35EB90-F45C-459F-B7E3-7F31E21CCC06.1; Fri, 11 Nov 2022 14:33:55 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 9b52938d0330.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 11 Nov 2022 14:33:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VJkhLUYeatTWzO1wr5x/sa+G5Qch3AybRGiOZa/tLMQbsFr/f7IvxQ9o/dYUdKb0AnSK77m5tg5sHdBGjyviYjF0U5IpsfO9u6Is6BFuLiO8fUq+rlehIEHSNTnNEmIUSW4jOVIsMAaRbeXPWnR5uf8wmitiHXc5Hp1K0szuoh+1YW1xV/6nAURQ0KvklwMLGzKwdz7RxtOLW0YsA2LZXYCsgMbiLzkkX/A/DCwvwSkD/Dn/5SNRmGOUD6EEo19gSPfOTlcEr5FrXoWYyLEYtVqi/mWEOytGRh6xiZ3YZrBeP33YP7tHnY6LWJ+Hgbf1wgELKe8qqsShASTNwzkwTA== 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=S3hrA0ze7gfeYg8HS+nFm0BFIjspCJgegIQ/xCtII7s=; b=CuNpPMCAj6MFYYewv1292U0DvwI9gz7KWlu4k1RV8uGyIfrDhKUsrLJvMUw6lpvvMECJhLpRw7/QLa2SHqg6Yq8LTzmc7LtxfH6zWOsGvU01Sox8JW9ogFUj9cod5CxdvjHioPwY2QG4kfwlNMjjZ80GB+C9wX2Uc8YFtis22RMESRYfbfTOcsULQmQyg4aVWHcoCLN+Iy5tB9pPLUXt5RR/6r795o9LHfXfYU99Nry+8TPQNldYCHrgDMH/HT2611ve2JddWxZm5Sx0JfUjsjISYX50h185OEz2ZzuQSEaW+UiJ1mXh4zU+hbF6wH7O1rTLO0eRIgKa7AWSYwM2kg== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=S3hrA0ze7gfeYg8HS+nFm0BFIjspCJgegIQ/xCtII7s=; b=EAyTHsRjPTlFucPOwEkfk7Po+0FJwxnefAl+oWwv4ujFaUxJ+wGZ6wgBco5Q2hjMIcMZfVodL08c1CneI/vX4Aal3MpP+e2KWQPFPQD10rsR4K6s5sNjWkU4bZf6tWLLOBxEe7qIKXe5i+7cT4pR0doX3gquhAvUfBJIyhsiiEU= Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by PAWPR08MB10284.eurprd08.prod.outlook.com (2603:10a6:102:369::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.13; Fri, 11 Nov 2022 14:33:54 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::bd2a:aff9:b1a0:2fc7]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::bd2a:aff9:b1a0:2fc7%4]) with mapi id 15.20.5813.013; Fri, 11 Nov 2022 14:33:54 +0000 From: Tamar Christina To: Richard Sandiford , Tamar Christina via Gcc-patches CC: nd , "rguenther@suse.de" Subject: RE: [PATCH 3/8]middle-end: Support extractions of subvectors from arbitrary element position inside a vector Thread-Topic: [PATCH 3/8]middle-end: Support extractions of subvectors from arbitrary element position inside a vector Thread-Index: AQHY7R/+Onw1Yt3zEUm+UmrslTQtgq4qIVlhgA+4eKA= Date: Fri, 11 Nov 2022 14:33:54 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ts-tracking-id: C27391EF841CF1428325B1AED2316C3C.0 Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: VI1PR08MB5325:EE_|PAWPR08MB10284:EE_|VI1EUR03FT047:EE_|PA4PR08MB6112:EE_ X-MS-Office365-Filtering-Correlation-Id: 242ed575-cb2c-440c-3be3-08dac3f1c7db 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: dmTsWOL12EaMJIkSVuLgEMhBvYoJpISDeeJ5hz3vtkL3oRWZkfiJlwtF8+860BAdsVq/WosZJdq4dLn02EwNSA0K7NJhU7bvhZpQCW1nxiFAHRn/vddF2BDnEJDSaxU8/LeGrN6WcXF5NxmPv7B1oceEBENSCZzEZYfjtLURsQ6jAxmQuz8ML3vfs4DvIHbc4jJdvj15MdDVGFPXGxpP1NEdZy2KcKVO9aowyT8BXBuQRaooaq3G2St7Xt3rDdFFhNYUwSbP+3/kSqbBZfqixcFbiu2bKDTRMLIBV8euW98Lq/F4+GwfbROOeGY1oeF7EV0K6sqye4eSJbjTQYGkXQxAJb/E8w/j+0UVIJMl1ylcoKvJsb+EkF9aYI39NjoH72U182mw6ccP7ZN8MM4HryXlNEHGPmCNrfHPGMu6fzJC/WeZtcZUqZ8NCizH0kJId521XOThjmrEEJKIZTlOD/ZuSrUsqu4sjBt6iSSZBUkb+OHIkHEgDyTiEU9wpFdduJ6lwhofhydbg52X3M1kS77ciuf5k975MyCJE10ILBKVY6umnBIMSWRRUfqaxEib+GRVrrO0kL3u3goHPLT1I/2kH1p/Jxigc/ndG8o0GshygSraNswcn8UNLcIz5Ql4gyOkwqIrIPxXyo+jlzUMljLThUcjzIBNfne7ogk6YiZHYMhqH8XHjpLwxOSy/678x4zrBzkOEuXkHLoy/7hie/+0kORieJW+4J5Y5bA3X9SYw8Wf6pZWC8NLDM7c0SjIZvvoF25tz9fK+jYr9nTmdwXUcMPq3w/qKeff+urXAa8= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR08MB5325.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(346002)(396003)(39860400002)(136003)(366004)(376002)(451199015)(38100700002)(99936003)(122000001)(76116006)(41300700001)(110136005)(86362001)(33656002)(7696005)(5660300002)(2906002)(6506007)(38070700005)(4326008)(9686003)(55016003)(478600001)(66556008)(54906003)(66946007)(66446008)(8676002)(316002)(64756008)(66476007)(71200400001)(26005)(52536014)(8936002)(186003)(83380400001)(84970400001);DIR:OUT;SFP:1101; Content-Type: multipart/mixed; boundary="_002_VI1PR08MB532500008BED94FC1630BE2DFF009VI1PR08MB5325eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB10284 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: VI1EUR03FT047.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 7d909fae-02cf-4428-d157-08dac3f1c254 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1T6hpWvYL22XKA4PcAELtWp6/3O1Ewl87J3aOh1F7UhQZiURN7+eI6bK/crsG3NydwotBF4aqjaoxKu3pKD53CefDT3irGtO2hn670kSbAjCMEFg4bC0zT2n5+UUJBlzBas2nbH6mdHCyVsHnGTN6PQuetQX3ozCaFjFgyqtsEnVsGJsiy9SVjwEc6KeQUKiC9aaTJ4nrvw2m6y2FCboFnjhjIA+60mgZo8D/JBnhuUTbXJ+MQhEaCjVUULUzepnedgiT2IpjQVGUZ/7MVT4ceIWjmeLcpFFUbNz3or5xnJnHRaSeiMC58obqpbJmiED1dqvvp1gYG0WWy41lnvJScLjlEFIaVQoQpujSntehchxGiGfjLdFDLsyvTFrafeqwiCJo/qyBuCnCAdBKHXwgg2oQbY0Dz+aS+2pJRTQb4jmGpkgsVrSzdnUwJmD9/V2AGjxTP/rsVbuCsP+pI1CxgevCOloHVWCskK54H0fHcX7Gt3pRTLDG0pcjAmvBgo4DVhREn3qc6uLRcCD1xwlN30zEYdACgZynl0lL3heQtb7WAsZlV+GTbMj9JIPE4a4zYrCkC/uFmDE13TqqIcQdanal0bHu2mixyBP097w3QiIag+zd40YceZQ8yLl5dPlx8uXFcD/Vkbh27xvoeZNRQC8EO9KreyOnAnFb1RUzc5phDNiVw+CgOYCrhp+GfkpM5o0vUoLGKH1xg6Cj0TLZYvWi0QWIczSl3A6URBPpWOSHz7Z9BY4XiWIXHhpDFLRC3wY5vi9379dRCFLlnJAUQPc2yXZx8ig60oTS7NBvgw= 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:(13230022)(4636009)(376002)(136003)(346002)(39860400002)(396003)(451199015)(40470700004)(36840700001)(46966006)(86362001)(82310400005)(47076005)(316002)(33656002)(110136005)(54906003)(83380400001)(81166007)(336012)(186003)(99936003)(107886003)(40460700003)(70206006)(70586007)(6506007)(5660300002)(235185007)(41300700001)(9686003)(2906002)(26005)(40480700001)(7696005)(356005)(52536014)(84970400001)(8936002)(478600001)(55016003)(36860700001)(4326008)(82740400003)(8676002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2022 14:34:03.2352 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 242ed575-cb2c-440c-3be3-08dac3f1c7db 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: VI1EUR03FT047.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6112 X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,KAM_LOTSOFHASH,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,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 List-Id: --_002_VI1PR08MB532500008BED94FC1630BE2DFF009VI1PR08MB5325eurp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi, >=20 > ...can we use expand_vec_perm_const here? It will try the constant > expansion first, which is the preferred order. It also has a few variati= ons up > its sleeve. >=20 We can, however it this function seems to be incorrectly assuming it can al= ways Convert the input mode to a QI vector mode. When I started using it we got= a number of miscompilations in the AArch64 codegen. This had the knock-on effect of= uncovering bugs in both the AArch64 backend and i386. I'll send patched out for those= separately. For now here's the new patch using that hook and updating the permute expan= sion code: Bootstrapped Regtested on aarch64-none-linux-gnu, x86_64-pc-linux-gnu and no issues. Ok for master? Thanks, Tamar gcc/ChangeLog: * expmed.cc (extract_bit_field_1): Add support for vector element extracts. * optabs.cc (expand_vec_perm_const): Add checks before converting permute to QImode fallback. gcc/testsuite/ChangeLog: * gcc.target/aarch64/ext_1.c: New. --- inline copy of patch --- diff --git a/gcc/expmed.cc b/gcc/expmed.cc index bab020c07222afa38305ef8d7333f271b1965b78..7d38045ae525c8a4665a0c1384f= c515e4de88c67 100644 --- a/gcc/expmed.cc +++ b/gcc/expmed.cc @@ -1718,6 +1718,21 @@ extract_bit_field_1 (rtx str_rtx, poly_uint64 bitsiz= e, poly_uint64 bitnum, return target; } } + else if (!known_eq (bitnum, 0U) + && multiple_p (GET_MODE_UNIT_BITSIZE (tmode), bitnum, &pos)) + { + /* The encoding has a single stepped pattern. */ + poly_uint64 nunits =3D GET_MODE_NUNITS (new_mode); + vec_perm_builder sel (nunits, 1, 3); + sel.quick_push (pos); + sel.quick_push (pos + 1); + sel.quick_push (pos + 2); + + rtx res + =3D expand_vec_perm_const (new_mode, op0, op0, sel, new_mode, NULL); + if (res) + return simplify_gen_subreg (tmode, res, new_mode, 0); + } } =20 /* See if we can get a better vector mode before extracting. */ diff --git a/gcc/optabs.cc b/gcc/optabs.cc index cff37ccb0dfc3dd79b97d0abfd872f340855dc96..f338df410265dfe55b689616009= 0a453cc6a28d9 100644 --- a/gcc/optabs.cc +++ b/gcc/optabs.cc @@ -6267,6 +6267,7 @@ expand_vec_perm_const (machine_mode mode, rtx v0, rtx= v1, v0_qi =3D gen_lowpart (qimode, v0); v1_qi =3D gen_lowpart (qimode, v1); if (targetm.vectorize.vec_perm_const !=3D NULL + && targetm.can_change_mode_class (mode, qimode, ALL_REGS) && targetm.vectorize.vec_perm_const (qimode, qimode, target_qi, v0_qi, v1_qi, qimode_indices)) return gen_lowpart (mode, target_qi); @@ -6311,7 +6312,8 @@ expand_vec_perm_const (machine_mode mode, rtx v0, rtx= v1, } =20 if (qimode !=3D VOIDmode - && selector_fits_mode_p (qimode, qimode_indices)) + && selector_fits_mode_p (qimode, qimode_indices) + && targetm.can_change_mode_class (mode, qimode, ALL_REGS)) { icode =3D direct_optab_handler (vec_perm_optab, qimode); if (icode !=3D CODE_FOR_nothing) diff --git a/gcc/testsuite/gcc.target/aarch64/ext_1.c b/gcc/testsuite/gcc.t= arget/aarch64/ext_1.c new file mode 100644 index 0000000000000000000000000000000000000000..18a10a14f1161584267a8472e57= 1b3bc2ddf887a --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/ext_1.c @@ -0,0 +1,54 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-O" } */ +/* { dg-final { check-function-bodies "**" "" "" } } */ + +#include + +typedef unsigned int v4si __attribute__((vector_size (16))); +typedef unsigned int v2si __attribute__((vector_size (8))); + +/* +** extract: { xfail *-*-* } +** ext v0.16b, v0.16b, v0.16b, #4 +** ret +*/ +v2si extract (v4si x) +{ + v2si res =3D {x[1], x[2]}; + return res; +} + +/* +** extract1: { xfail *-*-* } +** ext v0.16b, v0.16b, v0.16b, #4 +** ret +*/ +v2si extract1 (v4si x) +{ + v2si res; + memcpy (&res, ((int*)&x)+1, sizeof(res)); + return res; +} + +typedef struct cast { + int a; + v2si b __attribute__((packed)); +} cast_t; + +typedef union Data { + v4si x; + cast_t y; +} data; =20 + +/* +** extract2: +** ext v0.16b, v0.16b, v0.16b, #4 +** ret +*/ +v2si extract2 (v4si x) +{ + data d; + d.x =3D x; + return d.y.b; +} + --_002_VI1PR08MB532500008BED94FC1630BE2DFF009VI1PR08MB5325eurp_ Content-Type: application/octet-stream; name="rb16242.patch" Content-Description: rb16242.patch Content-Disposition: attachment; filename="rb16242.patch"; size=3098; creation-date="Fri, 11 Nov 2022 14:33:32 GMT"; modification-date="Fri, 11 Nov 2022 14:33:53 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9leHBtZWQuY2MgYi9nY2MvZXhwbWVkLmNjCmluZGV4IGJhYjAyMGMw NzIyMmFmYTM4MzA1ZWY4ZDczMzNmMjcxYjE5NjViNzguLjdkMzgwNDVhZTUyNWM4YTQ2NjVhMGMx Mzg0ZmM1MTVlNGRlODhjNjcgMTAwNjQ0Ci0tLSBhL2djYy9leHBtZWQuY2MKKysrIGIvZ2NjL2V4 cG1lZC5jYwpAQCAtMTcxOCw2ICsxNzE4LDIxIEBAIGV4dHJhY3RfYml0X2ZpZWxkXzEgKHJ0eCBz dHJfcnR4LCBwb2x5X3VpbnQ2NCBiaXRzaXplLCBwb2x5X3VpbnQ2NCBiaXRudW0sCiAJICAgICAg cmV0dXJuIHRhcmdldDsKIAkgICAgfQogCX0KKyAgICAgIGVsc2UgaWYgKCFrbm93bl9lcSAoYml0 bnVtLCAwVSkKKwkgICAgICAgJiYgbXVsdGlwbGVfcCAoR0VUX01PREVfVU5JVF9CSVRTSVpFICh0 bW9kZSksIGJpdG51bSwgJnBvcykpCisJeworCSAgLyogVGhlIGVuY29kaW5nIGhhcyBhIHNpbmds ZSBzdGVwcGVkIHBhdHRlcm4uICAqLworCSAgcG9seV91aW50NjQgbnVuaXRzID0gR0VUX01PREVf TlVOSVRTIChuZXdfbW9kZSk7CisJICB2ZWNfcGVybV9idWlsZGVyIHNlbCAobnVuaXRzLCAxLCAz KTsKKwkgIHNlbC5xdWlja19wdXNoIChwb3MpOworCSAgc2VsLnF1aWNrX3B1c2ggKHBvcyArIDEp OworCSAgc2VsLnF1aWNrX3B1c2ggKHBvcyArIDIpOworCisJICBydHggcmVzCisJICAgID0gZXhw YW5kX3ZlY19wZXJtX2NvbnN0IChuZXdfbW9kZSwgb3AwLCBvcDAsIHNlbCwgbmV3X21vZGUsIE5V TEwpOworCSAgaWYgKHJlcykKKwkgICAgcmV0dXJuIHNpbXBsaWZ5X2dlbl9zdWJyZWcgKHRtb2Rl LCByZXMsIG5ld19tb2RlLCAwKTsKKwl9CiAgICAgfQogCiAgIC8qIFNlZSBpZiB3ZSBjYW4gZ2V0 IGEgYmV0dGVyIHZlY3RvciBtb2RlIGJlZm9yZSBleHRyYWN0aW5nLiAgKi8KZGlmZiAtLWdpdCBh L2djYy9vcHRhYnMuY2MgYi9nY2Mvb3B0YWJzLmNjCmluZGV4IGNmZjM3Y2NiMGRmYzNkZDc5Yjk3 ZDBhYmZkODcyZjM0MDg1NWRjOTYuLmYzMzhkZjQxMDI2NWRmZTU1YjY4OTYxNjAwOTBhNDUzY2M2 YTI4ZDkgMTAwNjQ0Ci0tLSBhL2djYy9vcHRhYnMuY2MKKysrIGIvZ2NjL29wdGFicy5jYwpAQCAt NjI2Nyw2ICs2MjY3LDcgQEAgZXhwYW5kX3ZlY19wZXJtX2NvbnN0IChtYWNoaW5lX21vZGUgbW9k ZSwgcnR4IHYwLCBydHggdjEsCiAgICAgICB2MF9xaSA9IGdlbl9sb3dwYXJ0IChxaW1vZGUsIHYw KTsKICAgICAgIHYxX3FpID0gZ2VuX2xvd3BhcnQgKHFpbW9kZSwgdjEpOwogICAgICAgaWYgKHRh cmdldG0udmVjdG9yaXplLnZlY19wZXJtX2NvbnN0ICE9IE5VTEwKKwkgICYmIHRhcmdldG0uY2Fu X2NoYW5nZV9tb2RlX2NsYXNzIChtb2RlLCBxaW1vZGUsIEFMTF9SRUdTKQogCSAgJiYgdGFyZ2V0 bS52ZWN0b3JpemUudmVjX3Blcm1fY29uc3QgKHFpbW9kZSwgcWltb2RlLCB0YXJnZXRfcWksIHYw X3FpLAogCQkJCQkgICAgICAgdjFfcWksIHFpbW9kZV9pbmRpY2VzKSkKIAlyZXR1cm4gZ2VuX2xv d3BhcnQgKG1vZGUsIHRhcmdldF9xaSk7CkBAIC02MzExLDcgKzYzMTIsOCBAQCBleHBhbmRfdmVj X3Blcm1fY29uc3QgKG1hY2hpbmVfbW9kZSBtb2RlLCBydHggdjAsIHJ0eCB2MSwKICAgICB9CiAK ICAgaWYgKHFpbW9kZSAhPSBWT0lEbW9kZQotICAgICAgJiYgc2VsZWN0b3JfZml0c19tb2RlX3Ag KHFpbW9kZSwgcWltb2RlX2luZGljZXMpKQorICAgICAgJiYgc2VsZWN0b3JfZml0c19tb2RlX3Ag KHFpbW9kZSwgcWltb2RlX2luZGljZXMpCisgICAgICAmJiB0YXJnZXRtLmNhbl9jaGFuZ2VfbW9k ZV9jbGFzcyAobW9kZSwgcWltb2RlLCBBTExfUkVHUykpCiAgICAgewogICAgICAgaWNvZGUgPSBk aXJlY3Rfb3B0YWJfaGFuZGxlciAodmVjX3Blcm1fb3B0YWIsIHFpbW9kZSk7CiAgICAgICBpZiAo aWNvZGUgIT0gQ09ERV9GT1Jfbm90aGluZykKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9hYXJjaDY0L2V4dF8xLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2 NC9leHRfMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4YTEwYTE0ZjExNjE1ODQyNjdhODQ3MmU1NzFiM2JjMmRk Zjg4N2EKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2 NC9leHRfMS5jCkBAIC0wLDAgKzEsNTQgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7 IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLU8iIH0gKi8KKy8qIHsgZGctZmluYWwgeyBjaGVjay1m dW5jdGlvbi1ib2RpZXMgIioqIiAiIiAiIiB9IH0gKi8KKworI2luY2x1ZGUgPHN0cmluZy5oPgor Cit0eXBlZGVmIHVuc2lnbmVkIGludCB2NHNpIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplICgx NikpKTsKK3R5cGVkZWYgdW5zaWduZWQgaW50IHYyc2kgX19hdHRyaWJ1dGVfXygodmVjdG9yX3Np emUgKDgpKSk7CisKKy8qCisqKiBleHRyYWN0OiB7IHhmYWlsICotKi0qIH0KKyoqCWV4dAl2MC4x NmIsIHYwLjE2YiwgdjAuMTZiLCAjNAorKioJcmV0CisqLwordjJzaSBleHRyYWN0ICh2NHNpIHgp Cit7CisgICAgdjJzaSByZXMgPSB7eFsxXSwgeFsyXX07CisgICAgcmV0dXJuIHJlczsKK30KKwor LyoKKyoqIGV4dHJhY3QxOiB7IHhmYWlsICotKi0qIH0KKyoqCWV4dAl2MC4xNmIsIHYwLjE2Yiwg djAuMTZiLCAjNAorKioJcmV0CisqLwordjJzaSBleHRyYWN0MSAodjRzaSB4KQoreworICAgIHYy c2kgcmVzOworICAgIG1lbWNweSAoJnJlcywgKChpbnQqKSZ4KSsxLCBzaXplb2YocmVzKSk7Cisg ICAgcmV0dXJuIHJlczsKK30KKwordHlwZWRlZiBzdHJ1Y3QgY2FzdCB7CisgIGludCBhOworICB2 MnNpIGIgX19hdHRyaWJ1dGVfXygocGFja2VkKSk7Cit9IGNhc3RfdDsKKwordHlwZWRlZiB1bmlv biBEYXRhIHsKKyAgIHY0c2kgeDsKKyAgIGNhc3RfdCB5OworfSBkYXRhOyAgCisKKy8qCisqKiBl eHRyYWN0MjoKKyoqCWV4dAl2MC4xNmIsIHYwLjE2YiwgdjAuMTZiLCAjNAorKioJcmV0CisqLwor djJzaSBleHRyYWN0MiAodjRzaSB4KQoreworICAgIGRhdGEgZDsKKyAgICBkLnggPSB4OworICAg IHJldHVybiBkLnkuYjsKK30KKwo= --_002_VI1PR08MB532500008BED94FC1630BE2DFF009VI1PR08MB5325eurp_--