From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id B7EAD3858D1E for ; Tue, 14 Feb 2023 22:33:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B7EAD3858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 31EL49BX029535 for ; Tue, 14 Feb 2023 22:33:31 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : in-reply-to : references : date : message-id : content-type : mime-version; s=corp-2022-7-12; bh=zlYda2Q7H/FuWw9kmP1qgoEcP3hVH0GupE87Ewcqukg=; b=u8HO3BG/V8pIKqfOY9ZuhJwAOlpjDHsUrn1MH7Utwz0lJesVaGoR0nWiB+pbPPNbYeDT Fh5IkK0x1SlEISMUtEg9m23F950Nh8zwEizASrE9h3cLxpxfMow1hDBl1bGd1scS5erF RlxV2IBnm03sbF5DoC5OpS04R5q941wNd/zNAlbQbpn5FF5x+gSsjkiyNx5joox7ICvn dCJpIUoeBIt4gQiPSrMlZoiB5PVH5YXZ7lrK4vE/ktvxQeGSQYk+wTgDLYhMnpLLUVxH /5yFv6Ft4AELOR3o+t1znpo2VR285WF3gphJTj9xY4WCCfXZ/mqUi63GLVmGrzmlzzvN QQ== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3np1edeqyc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 14 Feb 2023 22:33:30 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 31ELnVdI032518 for ; Tue, 14 Feb 2023 22:33:30 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2169.outbound.protection.outlook.com [104.47.58.169]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3np1f68pq3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 14 Feb 2023 22:33:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Wp7pjSYi7O/oxOLoPNDZ3kd8gN7JIARniMIf5k3HQtF+QhXpWID1fQ8liVAh/ZtziSTIJVhSmlGiiZ1XlfR2mWQtVP1MKByc32eLNAwfBRa7+l6UXvHNDdOlcQXnthYPtnd6TLhma/OZwEDqeUjH2vUT+e0tVrykajZZAiTwrHekOv6fK9w/Gu59eJAMXD+RNlqdCvUIqUldY/y/E2U8w/wGVhtFKXSmAGduPJ1zIV5CKDx3nGiVpVjSWMu/MEtB5Tj2yEvf0mi3w1iZTP44o8RJqJNypAZf3tW8hyP35wX3m+DiFCCnqAsKo5tFOGsEvFC3yynsnKAUaxNXLP1/4g== 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=zlYda2Q7H/FuWw9kmP1qgoEcP3hVH0GupE87Ewcqukg=; b=GLkndOhMYo2+2O+C8FQMN2m3BzGq+WsAGUsRQilXjae8yYIQnd5J/X79T7SY7LMquCybHtBdntlou+9soa/Ujn+gvA5R0FVKEHdmVflqFmKUEL2+Zyiy4OfybquIkHgALUG3EaSB4iDz7ouFBKylNRT+0u3WU17ealyHY/jaq8spnrP0F3FsMCatxUFcn5dZHhoPFfz7DGMx5Jw3z4+MWOMEIGdgnXTcPJyB67mCbGK2yz73vRhiVWClDxeYC09qYXLsOWz7wURFtEO1voi+JsyfLeij2IjPfHtUnS/l8yc3l4GiOwZ166sjjmPsEMnp2ePD5WTA6y4vte7YgWpO5Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zlYda2Q7H/FuWw9kmP1qgoEcP3hVH0GupE87Ewcqukg=; b=jbfZLAPaHU9k2flRjntAm/qeAZw8yN0q/V/p/cZymwrBo+cJcKV08F9/iZ1CYosnJ72jcBYu3K8oHm1ybduvkJ8mn4pE8JUAHCCKsITMRwjLOn/+uY9Nk5xE1g2RPZrm4ak25AercLhO58PPKWkReQ27/1LyBU0CXOeeNbwXBHA= Received: from BYAPR10MB2888.namprd10.prod.outlook.com (2603:10b6:a03:88::32) by CY5PR10MB6142.namprd10.prod.outlook.com (2603:10b6:930:36::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6111.10; Tue, 14 Feb 2023 22:33:22 +0000 Received: from BYAPR10MB2888.namprd10.prod.outlook.com ([fe80::3cd3:9bef:83f:5a85]) by BYAPR10MB2888.namprd10.prod.outlook.com ([fe80::3cd3:9bef:83f:5a85%7]) with mapi id 15.20.6111.010; Tue, 14 Feb 2023 22:33:22 +0000 From: "Jose E. Marchesi" To: David Faust via Gcc-patches Cc: David Faust Subject: Re: [PATCH] bpf: fix memory constraint of ldx/stx instructions [PR108790] In-Reply-To: <20230214195153.8445-1-david.faust@oracle.com> (David Faust via Gcc-patches's message of "Tue, 14 Feb 2023 11:51:53 -0800") References: <20230214195153.8445-1-david.faust@oracle.com> Date: Tue, 14 Feb 2023 23:33:16 +0100 Message-ID: <87ilg3ri6r.fsf@oracle.com> User-Agent: Gnus/5.13 (Gnus v5.13) Content-Type: text/plain X-ClientProxiedBy: AM8P191CA0003.EURP191.PROD.OUTLOOK.COM (2603:10a6:20b:21a::8) To BYAPR10MB2888.namprd10.prod.outlook.com (2603:10b6:a03:88::32) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BYAPR10MB2888:EE_|CY5PR10MB6142:EE_ X-MS-Office365-Filtering-Correlation-Id: fe6d5af4-9e3c-4bee-35eb-08db0edb7ab7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: iIByhRuzTH84jmQKgrKLw4Rb3bQi6Wmm/dlXWSjhnFkUhqiUNaIG2BWqvgki2QctpJpxbfOaFOXS6jIFsVJ8AY3P9dU6IfIIwzV3um744je9GATh7q0s7TL3hpCY78svcSdvBqsMmTLAGSYqnAapQeYyIIZ91LtMiYTXpUVW7PnYnxY7h1P2q5iJon5yzcJeRphtRpvpYqrhnCZdjVxr0repbrbwK+vk5GXKk3VsMUk15GzZGihdiHZ/9qMe2QUJY2FE3lb6sP3UyiXJLIUg/rSKYLFnUjlPIUO+UcQ/DUIalBeUQfyalgDvidXdGP0B8qI3nSuPf6IWZ1HekhV+YKUXbRWQMyX+5vjz9yuwoBXdgmloOryK59EoOw82R8sohrfBIZcAZXaBE5hurOTGtcJ+kEEb7Oe/F7VPOD731cD98Bq8Ywd1YK5Nub7stqwMHlVOM+VxxDRf0MLQN4/3CI4j6DsFo2YIDJfhH65tTBCrpwHTjd7xKL4xW2mJO614nQNghLd07rkqf6MYm0zvIkHOTlhmDFLRc9nH9Oagn1g67cgCMvu4aseHikJr2LZTHRrvadu8hPqbf2K7Yf3TUVgTOnNYaVTF9ncarT9g8Hy/E8Z7AADgJpQY+v4F6Uah X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB2888.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(396003)(39860400002)(366004)(376002)(136003)(346002)(451199018)(6666004)(2906002)(107886003)(2616005)(478600001)(6486002)(86362001)(8676002)(38100700002)(8936002)(4326008)(6916009)(83380400001)(66476007)(316002)(66556008)(66946007)(36756003)(41300700001)(6506007)(5660300002)(26005)(186003)(6512007)(84970400001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?xgXbtKdDxbLlinci699x+cgqnLh5dDrwtBWlCNfmliacRBtaovMvzeZ9CZdH?= =?us-ascii?Q?u6mD/hqUYJBQsR5j6/aaIkH1OSnprWAC64QV/Tx1yBDXexlLCnFo96Ui4i8L?= =?us-ascii?Q?FgYVHAmaRzBL3BzCL7dLMPZ/23QhqfhaMRKGhFUm7ynXfGqLCAbAiaHubrDZ?= =?us-ascii?Q?ZY3M35vRVeuAa62lekKo6VNoNNZOEdtUry5mFWT3h6dY+DZrl+QGHaHmi/xv?= =?us-ascii?Q?CcNNG6ffaxHUGEUIjl9xnvppCChuoijB8EZRN3jLE2yxiO2Rjgv2MenQ8X10?= =?us-ascii?Q?6MjOKs2MvX8NduWP0YcJrl99EZYzFU9eCU88IHXmFL04+zArxKqOhRpRLUof?= =?us-ascii?Q?3OHLq+zkxjleepurmIlyCSWiu2SiXvcbuuBDoC2dD3LekYjcHQfHRRrI+aKO?= =?us-ascii?Q?JITeOKiA3ylM4k5P+OTO3bxDblCOUdpBuSENSTkfH4zQqPNKKdU9HHV1SFkI?= =?us-ascii?Q?Y26s6DOWJHJ18dryGZ8LR5YR/NBH1YYmDNoc/nslwf7GR0foIL3SgfksEk1k?= =?us-ascii?Q?r64cVRwkJl8eBWFaliMIC+1SktlYHzTNbSJlu9zzGXTOqCHdnXRyBy599XJs?= =?us-ascii?Q?1fSqkGqWPd8AuOaXAbGmaypLto5SLI3hyA0Pc9ASRGvdzK9AuMGJ/olBjZQG?= =?us-ascii?Q?3Ktg4Kad9/vG5fRiVj0AqPrYT8vJvCr9Gq9ncNdW7e/IJNqImXtcD2l8atrK?= =?us-ascii?Q?7i8J27gl/lkKoeV7t/0eT0W0JIJE7C3KAN0cLjRbVs+6qTSe0d7ZZfk1lixy?= =?us-ascii?Q?3EL4CxhXkZ3VY9ltHJU0aBgS7tCfCU+64Eh6lXaagLmQLzg4BZVc987jopZI?= =?us-ascii?Q?lJOdTiEdm+bLE8nN9jqfl22P+0MsZVcBr7lraHSH4VRvg5KXq9F01yQerVh0?= =?us-ascii?Q?UyyAPRt3g33Ysw5ig9ejpMIbeKMLPJ3x6/JgIAdhvO7ptEY+XAxOP79Vv2X9?= =?us-ascii?Q?eDH6d8tyvu04UyrIVe/4Dm/9W1hza76h+olNwiVCeKOJyQP/WxOyr8K/ytlv?= =?us-ascii?Q?CrPRx+oNyyXWu929h0SW3cYWFeA0xTkWFiRTe/vyADnY3cP1Y5+PVO3WWmLY?= =?us-ascii?Q?/oXmAoQe/tOaFgxR6ZrRKlOSKKkCf55UBmyJPOB7HYjSZKUHf4QOVktDeFCZ?= =?us-ascii?Q?eVCtmsZo4OEMAXgnF5w6eYDQMylSoe2V5noe4lR9mwUnHZUh5iWU2FRSY9W5?= =?us-ascii?Q?5L7QyQaOr9R9+dfFLLxFqc8lulJwaHQPBUiUpwgYF3uj6i8JwgCHm51xgNLa?= =?us-ascii?Q?Xd3JxCfZVJgGpWhRpAEFq+oss3eTLXRcndQ4YM49eVp1v5JZkVzRMj492+0C?= =?us-ascii?Q?zCtghjTaY8T4FsJ5nAY+FvLFbZxlSWWWDozaOsT7+XsSV3boIPUNLlw8n4CQ?= =?us-ascii?Q?02L6iAUfloG8D0p3LSvXi1GZxPRshj7mOp5JJXcaYbiZqBqPErcUiIlTZ0Tm?= =?us-ascii?Q?LEW6vi12o/Tk0CHGdJO3Gehd7M+ZoedEZ7N6NHinpTVmx6hH8Px58vA8Fr1B?= =?us-ascii?Q?mT7/av6T6aQGSuE1lK5Ek+CASSDH/9ohNFcLLpD2pUPcksyhPRuiLpniuIYO?= =?us-ascii?Q?NH7YLHTFSos7+o1TAuk7YOnROkbJ5XkHOzDQdFpYD2jsMKoMyYUZoiphL3N2?= =?us-ascii?Q?3A=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Q9RfhId2s+EgzRAMPSH5FOMs2hka1mIZm3WQS94pMMUppNsQDs7o/hqwO4BWvFfKsu4/izjGasgKUnOO7cGz6AiRtBW97ChpxpnKNOpkfVyQ6iKvr5erbKXXnNB2ekjW7eInOroXI41YYcLMEAtLNkw45m5THn1aUvIaBiYsNL9Naw95HVtwSlNN7Ivf0NpbpBAajd9iAkEfbwOSMp1clcRXzjdaKSzAheUHTZJxZHdceJ/Ww/Aao1qP2KaEMIaQPo/RzGvA3QCYYTilhzj0gZ4eQ+CGkgKNqeQ6MzeoA7303v61CpBxDHAg4OzV2yaMC1ocsM8pxWYscT5D7Dccqr+oWKVNj4nSLP1HG4aolhhvXCwqaibIIhoT7kBaZNJKLQMBs8LCxJCgWzAghfoAIA77OB03PLAiMCYmwYviYb+6ZTqHct7Zz6uu2W27qQTDRwy9fg6YyE0hMChBsJNzYjA3ExO0G6VKgOvrlwWrNJo0BjGD/neH7ECJjFyyHnGtN2NMIMRQMb30H6wfoDkK03yLvXzIb+qvc1PxKYxx7YedmtCCPIpVGTdJS23uUwrFfWvHHsfKkKbgZcfwl6+ycyA9KhfVzmAPYpCl+zGib9rrHaHr52hcysIs3/MrnX8TTcx6+f06RUHRP/t8qN2JJTaxCdsKuS09WA0xrBbXbGK09qwl65gnlg56tYbWxzv0sIeQXfgmG2mIwayFCllpY4RNnDDgx2vL2GDTtnf89lwX9JMUox/3kwbpoh8wdEW7 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: fe6d5af4-9e3c-4bee-35eb-08db0edb7ab7 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2888.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Feb 2023 22:33:22.5792 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: QKeecuA7Ov9p0Tgk5dKURQr89m+zSA1g9gXtP1H6Cv8pWdLOWFWhQEULfmy6ezZRRmqU9W2lnaeMWw8LBmIcP2dQMyfFosSlzH9RyhSulPU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB6142 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.170.22 definitions=2023-02-14_15,2023-02-14_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 adultscore=0 mlxscore=0 bulkscore=0 malwarescore=0 phishscore=0 mlxlogscore=999 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2302140193 X-Proofpoint-GUID: xlmGFbC8a0jswrof2rnSKlwvJpUywq3Y X-Proofpoint-ORIG-GUID: xlmGFbC8a0jswrof2rnSKlwvJpUywq3Y X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,TXREP 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: Hi David. > In some cases where the target memory address for an ldx or stx > instruction could be reduced to a constant, GCC could emit a malformed > instruction like: > > ldxdw %r0,0 > > Rather than the expected form: > > ldxdw %rX, [%rY + OFFSET] > > This is due to the constraint allowing a const_int operand, which the > output templates do not handle. > > Fix it by introducing a new memory constraint for the appropriate > operands of these instructions, which is identical to 'm' except that > it does not accept const_int. > > Tested with bpf-unknown-none, no known regressions. > OK? OK. Thanks for the patch. > Thanks. > > gcc/ > > PR target/108790 > * config/bpf/constraints.md (q): New memory constraint. > * config/bpf/bpf.md (zero_extendhidi2): Use it here. > (zero_extendqidi2): Likewise. > (zero_extendsidi2): Likewise. > (*mov): Likewise. > > gcc/testsuite/ > > PR target/108790 > * gcc.target/bpf/ldxdw.c: New test. > --- > gcc/config/bpf/bpf.md | 10 +++++----- > gcc/config/bpf/constraints.md | 11 +++++++++++ > gcc/testsuite/gcc.target/bpf/ldxdw.c | 12 ++++++++++++ > 3 files changed, 28 insertions(+), 5 deletions(-) > create mode 100644 gcc/testsuite/gcc.target/bpf/ldxdw.c > > diff --git a/gcc/config/bpf/bpf.md b/gcc/config/bpf/bpf.md > index d9af98384ef..f6be0a21234 100644 > --- a/gcc/config/bpf/bpf.md > +++ b/gcc/config/bpf/bpf.md > @@ -242,7 +242,7 @@ (define_insn "xor3" > > (define_insn "zero_extendhidi2" > [(set (match_operand:DI 0 "register_operand" "=r,r,r") > - (zero_extend:DI (match_operand:HI 1 "nonimmediate_operand" "0,r,m")))] > + (zero_extend:DI (match_operand:HI 1 "nonimmediate_operand" "0,r,q")))] > "" > "@ > and\t%0,0xffff > @@ -252,7 +252,7 @@ (define_insn "zero_extendhidi2" > > (define_insn "zero_extendqidi2" > [(set (match_operand:DI 0 "register_operand" "=r,r,r") > - (zero_extend:DI (match_operand:QI 1 "nonimmediate_operand" "0,r,m")))] > + (zero_extend:DI (match_operand:QI 1 "nonimmediate_operand" "0,r,q")))] > "" > "@ > and\t%0,0xff > @@ -263,7 +263,7 @@ (define_insn "zero_extendqidi2" > (define_insn "zero_extendsidi2" > [(set (match_operand:DI 0 "register_operand" "=r,r") > (zero_extend:DI > - (match_operand:SI 1 "nonimmediate_operand" "r,m")))] > + (match_operand:SI 1 "nonimmediate_operand" "r,q")))] > "" > "@ > * return bpf_has_alu32 ? \"mov32\t%0,%1\" : \"mov\t%0,%1\;and\t%0,0xffffffff\"; > @@ -302,8 +302,8 @@ (define_expand "mov" > }") > > (define_insn "*mov" > - [(set (match_operand:MM 0 "nonimmediate_operand" "=r, r,r,m,m") > - (match_operand:MM 1 "mov_src_operand" " m,rI,B,r,I"))] > + [(set (match_operand:MM 0 "nonimmediate_operand" "=r, r,r,q,q") > + (match_operand:MM 1 "mov_src_operand" " q,rI,B,r,I"))] > "" > "@ > ldx\t%0,%1 > diff --git a/gcc/config/bpf/constraints.md b/gcc/config/bpf/constraints.md > index c8a65cfcddb..33f9177b8eb 100644 > --- a/gcc/config/bpf/constraints.md > +++ b/gcc/config/bpf/constraints.md > @@ -29,3 +29,14 @@ (define_constraint "B" > (define_constraint "S" > "A constant call address." > (match_code "const,symbol_ref,label_ref,const_int")) > + > +;; > +;; Memory constraints. > +;; > + > +; Just like 'm' but disallows const_int. > +; Used for ldx[b,h,w,dw] and stx[b,h,w,dw] instructions. > +(define_memory_constraint "q" > + "Memory reference which is not a constant integer." > + (and (match_code "mem") > + (match_test "GET_CODE(XEXP(op, 0)) != CONST_INT"))) > diff --git a/gcc/testsuite/gcc.target/bpf/ldxdw.c b/gcc/testsuite/gcc.target/bpf/ldxdw.c > new file mode 100644 > index 00000000000..0985ea3e6ac > --- /dev/null > +++ b/gcc/testsuite/gcc.target/bpf/ldxdw.c > @@ -0,0 +1,12 @@ > +/* Verify that we do not generate a malformed ldxdw instruction > + with a constant instead of register + offset. */ > + > +/* { dg-do compile } */ > +/* { dg-options "-O2" } */ > + > +/* { dg-final { scan-assembler-times "ldxdw\t%r.,\\\[%r.+0\\\]" 1 } } */ > +/* { dg-final { scan-assembler-not "ldxdw\t%r.,\[0-9\]+" } } */ > + > +unsigned long long test () { > + return *((unsigned long long *) 0x4000); > +}