From patchwork Tue Feb 14 19:51:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 57186 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp3169344wrn; Tue, 14 Feb 2023 11:52:53 -0800 (PST) X-Google-Smtp-Source: AK7set+EyMy7W7pEQTeELgzM5+oxrvloVSG9XPMyAwufhPy7MAKyMyQsbHwVWW9NrjeQFJUdY/DQ X-Received: by 2002:a17:907:10cf:b0:89f:1a76:e2dc with SMTP id rv15-20020a17090710cf00b0089f1a76e2dcmr4200734ejb.0.1676404373031; Tue, 14 Feb 2023 11:52:53 -0800 (PST) Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id bp14-20020a170907918e00b008af43a5f9f4si15403500ejb.285.2023.02.14.11.52.52 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Feb 2023 11:52:53 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b="Ac/md9+4"; arc=fail (signature failed); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B6F353858D33 for ; Tue, 14 Feb 2023 19:52:51 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B6F353858D33 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1676404371; bh=MbvDOs8g7Y1p3w9I39cjgckAJw1wPZuTR21YreYAjSs=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=Ac/md9+4dm18hR3Iv5DKUGdrLIDTLGLAmvInKBUQLWOhDorwHLLODq6MkxVxF2RFE U1MumXrn23oeaj4TnpHUAG2D9g3HSZDxDw+zsg3f5bQwEuVB3HYIEflJw2ap7Rhz9y yNESFAILK7XjEXZPDwT48w3pIFW8HL2kYNoBTTdw= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id 766CE385841C for ; Tue, 14 Feb 2023 19:52:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 766CE385841C Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 31EJOf5V009755 for ; Tue, 14 Feb 2023 19:52:04 GMT Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3np3jtxcxh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 14 Feb 2023 19:52:03 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 31EIHx13003713 for ; Tue, 14 Feb 2023 19:52:02 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04lp2168.outbound.protection.outlook.com [104.47.73.168]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3np1f6jnsa-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 14 Feb 2023 19:52:02 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AnCgwCEDgkpqj4StfvRRdfJ+DQY1HROodxuDl0kjiTZ9eeaJQW3esNcSo6etd6xu36iGGiC3n2T+Ks8Ijb3hogXjRM2vIcWcsXoci74EpOGHdjqqRUmBZ1yKpQEKlx6y+XLA/ohyggzOC5UkP9+SbRSDEWqgYtuEdM3zTniWd+w4i1p+YTN5PPpgirtuNlpdFP3aAepf9n3WJ3Iy/pORLz2y7VLIB3qMS0fLIurEKEeN6Wrr6Y+S352PQ3UdM1DlC2tkvt+W8O5e+J3ZWLZXtJnh0vYEIAyii/Rz+Ib0x0LECgA4yUoXZQIu5kUITSKQR6lkLQVXxGgZmuVc83Tegg== 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=MbvDOs8g7Y1p3w9I39cjgckAJw1wPZuTR21YreYAjSs=; b=Y3K9W1smWDyekm1WS7lxd0rGHizX+ImFSh7wM5RABjB92ibrtSBpdEM+k6/NDS238D82sU0oOZp2GJn437+7CJPIB4DMEcjYIrmtazkJP/dvvhu54Zm6LNKBeWECe+fYxX/OGnFlifBiZmfo2W3SUhHLpjFBlUULCPAH0eRniEJIp0RF7FhwZeW1w3dKQL54ek//UBD4+KvxoeZVE5GGxsYx3HeJ9ZsimZ0lgnjvNLjZPdBJT+J7T1i3pjt06AclhtU9uBNLN/8aLpnDUeyu1BZK5d3FWl85D9KBPUeqKTr6f9CTjtpKtbilwI0tYaSJ2qnb1p8omUBOiDncSdil6w== 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 Received: from MN2PR10MB3213.namprd10.prod.outlook.com (2603:10b6:208:131::33) by PH7PR10MB5815.namprd10.prod.outlook.com (2603:10b6:510:126::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 19:52:00 +0000 Received: from MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::13a5:8183:f0c1:be7d]) by MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::13a5:8183:f0c1:be7d%4]) with mapi id 15.20.6086.019; Tue, 14 Feb 2023 19:51:59 +0000 To: gcc-patches@gcc.gnu.org Subject: [PATCH] bpf: fix memory constraint of ldx/stx instructions [PR108790] Date: Tue, 14 Feb 2023 11:51:53 -0800 Message-Id: <20230214195153.8445-1-david.faust@oracle.com> X-Mailer: git-send-email 2.39.1 X-ClientProxiedBy: BYAPR08CA0003.namprd08.prod.outlook.com (2603:10b6:a03:100::16) To MN2PR10MB3213.namprd10.prod.outlook.com (2603:10b6:208:131::33) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN2PR10MB3213:EE_|PH7PR10MB5815:EE_ X-MS-Office365-Filtering-Correlation-Id: ede25fef-53d9-46bf-3578-08db0ec4ef7f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jkJehL3+auIMrxOfGRW+BZFUqN7eNXRvUqy61UtnMMKw/IOnv2jMEkGJ7GiFLze5XXmCsBy2kDTpI2NmEhhcZW0NzEMs4xEjhWyovFgJOIw6pjm94LpsNxTaHMedvysoYNTYl6VXWhfwh2jQ7hN/jA6sVnqf9hcU8nwzRZg003mDiARs8Ct5cs/JlAUEkx1TEsLgnNkpgnBfvC0MQz1GN4NzJDIkgSASNAqrIzNJIx4ePJGl4hMTv2RIGHdITGv/IepfJcPEQyczauTc2318vtmF+pNfe3XfthcIz4y81SrSy59sGs94aMQNgYMmJX/pjEXk6Z14fOg+oNdwPh//QguhJREWS9aKglg7sd7Gg0u/N/riOSVdsSK4rb6ZysPNsxcnoj7iS2HROQO8qNEb2KlrQvcDR95lNxxuMuALNLJY5qJgy1+H/Z0OotXBKldvRCIE58H7KBqjDrHGv+TwS5CAXnRb0mOKZz8YBsBOBOIz+mb9xLHs/04sAkM9yYomt9SkgvVergXroQLaSmsqClac2KQMow9mt7snOh46dQdiVASHNMMJP7H8MsyqDWX1Is7vJOwYqULBBsvajlRMbJreJlcI1xo2jOB/GOvmO3+6lZcsPo8eBtrN+OOsiNMs X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR10MB3213.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(136003)(366004)(346002)(39860400002)(396003)(376002)(451199018)(2616005)(6486002)(84970400001)(36756003)(6506007)(6666004)(6512007)(83380400001)(478600001)(316002)(186003)(1076003)(26005)(6916009)(38100700002)(66946007)(66556008)(66476007)(41300700001)(5660300002)(44832011)(8676002)(86362001)(2906002)(8936002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: SfCXLaQgeVCUCrThvavDurGgvtdiWPaKYYSNJVgOILbbAq1euzspqT3m0X50t+a2OvOWpViBew30K2m5LHTJnNQcxtq4+Aqp0ynPNogt2NqudEDXjwdzJ4tgODRlTJ+VrMI6TPS1WNHjKMm29qWmQ2LlXfA31k8d4lzn5FOlgd7bR7OgC3tcwp70wi99gjRyWnOrBXPsngeH46qWYE0ijyjlwU2Suty0wQ+rjnT2wYzyDOQA3IPDFMqIhgT2u2bytVe749hi1XF7YoaECRMMg6sZL/dDg99TgZw0EvGo8LGSJgMCW6rgN2ClXUtd2GMIqpzB4DzAeJudf5Ng2pZNEG+VIQkI1PrHAeOoF6Dg6AC3N53mQSAv6NLpqxls2nvICOeRMbFmS8nlmqkO6O38w1iarQ/rPtpNJqcKqUw2lFDmWfyqsOu3Cp+dBPjjnWu2gRL3QOaffIDWxf7f1ij7SnYjMnaRoONxgzirestFbYLtRSYVzDL6ek2BtmNKfLQJ5Ex2UZzYVfpJ3F3fFUSoGhYgKB1BudZuHKL+wmHBCk48wxByGbLkTY11xzcu6vUhlfhX2Tb1vEASZE4kRmbmukVtqheZv342ZmRM+hbS9fNMVYyOMcDZcpUFSpz5s0/2THf6Hz8jGiWJpr6OrY9hyllt4tJUdyZHWl9yHCwyHIZckbrA3K38be0wIPe45ClmRYtsyKaATvkJgoYFHzsZhsNADtzPdrds+7YcxnxEQ0UsWX6RSoZkbBUyiZ86+WryXzj3TJKQroqqoTn2rIPPPyKZZ0PW/xtuwR7L2F56ufapjnDRTri48DygHB0ewb1X/x61oepj9BAZZTUd2cTmKa3sdbCpLzfCRsKZcFrulQ3PcLICGm25r3DL12DMMjxX9sOcpJ3gmnPTy5B31yzWZXSgIWeUu5GLkucM3My2R5c2PTUEDJJYYtWmhMx8LmAUAboYMay8YnIai7w8jnK3xENV1DuB+yz+mp6GgoFgwCrX2G8wfsQkHAhnVQ3n3GluLwrzLhKgJ1PrpVT5N9cJ5xW94COI1RHUNG9xEpTisb1qy4SjAIS5aovlvKXg4RhMwG+LqC96aqtoM5I1+94PiPXCM7CktP5fX7/1JA08+VJAYHrzTD4vCmxFZLTse94c0ksbTEWDA0zxDGl985IrfBdzjP7TjDBuB43cRJr1e6N/DSdbPeaEMHsaZjAWfwEfVe/ZWBu/QJj4XJwDtKDsHLphPH8hxNVV0aslI7Wsl5lKQn0SYax/HP45bYb4vlWLbD5ALg7oo2zGsw8SQwN3CP+3eUMAo9XYoHkR/aebKtVV2EUwrpeHDs6Ps2QBgtWA/gFL6/WwJFnRrCHnBf7QdalHHdQwv/MwzNndHssk3Wt1gX5ROoCsFJ3oEa25b7oxLHyKMUY4weNtCOQf6XNQdOzNdt0jN/WwqYsSmU2rSuzB4QpkkKQdd17lBMt4nMswcs1RXhskpXrZu188zi+crVowJ6llao/A/T0YbLlE9viNH0yHyzwnmwXbvHqDmvSlHIDz1879JZZU9Et0NYjNuZnAZcm4JLiPxLxxmCi83Gy7m/FJ6Sy20p3B4ja5ZK7z X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: PqvDTFAjJHCHSdHVMGvuIZOLf8kYDlaqYSPUd4SGoo/OG22YDY6hjavzJ/zv+ZEQQISYik5R5BoQYNYLvAUGtz1wGBBr4jGMVmLUpsahT+GMLSltoXNLy7GI09JYDr1vSn58Z1zLBNOY953oRet3qQ1JXPmck+tkgPH8JIF2dcizqkbBJOJ0uE3V0g8iA7AQ1A2HEwORukH35Lc6M7ggUeS8vcgy06qQpl6NdTZ9BM8x8O3F8k5gv8jYrv42mmbcKxmgyTw+AwAdLB8WSzg+xE8dkXtmNt5+0oOYbrUC2sYtydfEq+g6K9ugkIcQhjZLVXC8vU+DmiRcGZQcgvkOYXWEELbjmoDjFYDIa/R2z07a1T2QhtgpGVxLSf1Tyv2qYw7uhI4UdZ/Sog2m65gFDTsu/OJAteRhPAQpdmfxP1Ucjzk2eHjLrcTWqJT1nw18LEDRToxBvofNV3ojiOdLnXRbwL/xxyZQnMYsYcQrrn0e5xaYVIthJ2F/XPuhWbecO9peVRNVzu1kBkNdOGZh4uQ6FLMIDNDE/Ns8YovmErHRGMzhKuNZwb1TPO3LwyAGjECEO5t3Noa01oZuMMEYuaE50S2ww6QoAZuFOtdxS9o2E5rrAeAX0HwLYhKLMJ31S51ePRh36GP1fsij4pIlEZrB2v3xl5cGvtoZlBmqxoIur8m94d++P3YKB3r09iNw7kva3flUdbSqPpeyWOrNatBqhQYyhqDyARVHf/TQKEilFbERHLhWSY6h1t0/5nAV X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ede25fef-53d9-46bf-3578-08db0ec4ef7f X-MS-Exchange-CrossTenant-AuthSource: MN2PR10MB3213.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Feb 2023 19:51:59.8933 (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: U913k1vQfSXtiIIvWBgXfVY3WbBzlYKRKyehT+fLrko8Go+NQJcj3YFJpkKNTrbp2nrQLLh7xjEJ/b6u3vgl5A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB5815 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_14,2023-02-14_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 mlxscore=0 adultscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2302140172 X-Proofpoint-ORIG-GUID: lOaTT6sv0ahj3UJ3zqAR0T83PL1Yv4Qu X-Proofpoint-GUID: lOaTT6sv0ahj3UJ3zqAR0T83PL1Yv4Qu X-Spam-Status: No, score=-13.2 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 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: David Faust via Gcc-patches From: David Faust Reply-To: David Faust Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1757837392255281706?= X-GMAIL-MSGID: =?utf-8?q?1757837392255281706?= 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? 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); +}