From patchwork Tue Jan 10 19:12:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 41603 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp2926013wrt; Tue, 10 Jan 2023 11:18:07 -0800 (PST) X-Google-Smtp-Source: AMrXdXvKV+KWk0aiZqOwuD8f5ovGmN8YWS5S7QNYfOE5TfivqbTs8A36U8cJulB2K4/cVDvTs7k5 X-Received: by 2002:aa7:d599:0:b0:496:b479:e437 with SMTP id r25-20020aa7d599000000b00496b479e437mr14310241edq.27.1673378287406; Tue, 10 Jan 2023 11:18:07 -0800 (PST) Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id wv4-20020a170907080400b007b8b7da6480si12620031ejb.659.2023.01.10.11.18.07 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Jan 2023 11:18:07 -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=SdovJ7SJ; 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 1AA8B38582A3 for ; Tue, 10 Jan 2023 19:18:06 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1AA8B38582A3 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1673378286; bh=w5MGdCTJpNiwwDDxvWfI9e7N3mVfG/4T1iATW04ggF0=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=SdovJ7SJZjeSQiu5mMIKwnPDUw/nA/FIn6g2AHIu4keTXcH1Ngjzz8QWHo90Ahajr XC7AWX2TGOTLxUZkSgZCG5SmqBXFf4tPjuT8a1UesQLGXs8+qZkU8A2ODDZv2Zxy6O 0k7Wm0zCb+8W0/aLXs3PEPVMrDlGPYc91eQ3qtYk= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id CBA4B3858D33 for ; Tue, 10 Jan 2023 19:17:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CBA4B3858D33 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 30AJ3nCG012267 for ; Tue, 10 Jan 2023 19:17:19 GMT Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n1cbq895d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 10 Jan 2023 19:17:19 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30AIXYs6020893 for ; Tue, 10 Jan 2023 19:17:18 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2105.outbound.protection.outlook.com [104.47.58.105]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n1ddbj0gm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 10 Jan 2023 19:17:18 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YF2bBuSXulGVGkbUg8B1JIslPEV1NfCVujG70J2BxXykxsDKTaO41fnf+86Z05TAhgVztopH3crcXs6wM/EjutrE/oPCteemg6wBCwACRFATtdj0PCC6B1SM8ZJEFixIN+u+IRYuSHkFBYrvbwKpilXjh7EiFa6GkHDwdZRnFJiB8JQXAD1l2nyPU7/qSBBjSRqx/HZRcUD9G5tB1kuLes6zPD9WpvpED//7vaT6w8n6x8wvx3AKkZMGEWvJLNOdc46o63gYUmuidaxPu3/DgbMRQiN3FSdaF4eJvSxNcK0TSrU+oifcfZ2WOPYMjzYeZIrm7ggULruXtMTarVEqhw== 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=w5MGdCTJpNiwwDDxvWfI9e7N3mVfG/4T1iATW04ggF0=; b=ZZRlDNmXY5w6Ml7SeWKT+Q13r2EwCk6nGmRe6t4np5Ccfbipm2AhdMhZHER5QXoNJJowF0DAsSSDWzpUuf8Ivxbo+Ipb3mztTVs5kRzBTbI9wb7UvMUvJifhuQXuQXqVZDBLRqEeyq8sEBUbdqfq6vGNKZszbiarhGq8luFkLywsn3BpshT8FjmWE7bTZpsoDzZaa04skGsZvv+bbYpk4qb8bk6mt0QDVGb3QQcphXHpibvzYdIecthLcfnywH9rFLbpo3DdPsKDTu72xIM/R7yvsmOIJe2E9rumSNrah93CecR0HCsoqt3kgtl4vM5B+iG69C/SA9sNatfpee4tEg== 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 BN0PR10MB5111.namprd10.prod.outlook.com (2603:10b6:408:123::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.11; Tue, 10 Jan 2023 19:12:15 +0000 Received: from MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::6b7d:5afd:3d9e:e5aa]) by MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::6b7d:5afd:3d9e:e5aa%6]) with mapi id 15.20.6002.012; Tue, 10 Jan 2023 19:12:15 +0000 To: jose.marchesi@oracle.com Cc: gcc-patches@gcc.gnu.org Subject: [PATCH v2] bpf: correct bpf_print_operand for floats [PR108293] Date: Tue, 10 Jan 2023 11:12:02 -0800 Message-Id: <20230110191202.8641-1-david.faust@oracle.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <87sfgi1zim.fsf@oracle.com> References: <87sfgi1zim.fsf@oracle.com> X-ClientProxiedBy: DM6PR02CA0131.namprd02.prod.outlook.com (2603:10b6:5:1b4::33) To MN2PR10MB3213.namprd10.prod.outlook.com (2603:10b6:208:131::33) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN2PR10MB3213:EE_|BN0PR10MB5111:EE_ X-MS-Office365-Filtering-Correlation-Id: 6ce684e4-25ce-4887-c9b8-08daf33e959f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EdGI8HX4k/hXCdsW4e2zTRvAeVtnN1Ds804sOhHsdCIcTK3AaLziBsjueRsDgHi3GazeyzAlmUqwvCoaSu+vLNJq3MIybr9W8wFf/q9qvRw4sS9M9usxhfkFKWQGkQhWAzTANJDD5DdGF8StzroP6PxwWQK5n47AwX+BPi99VXUAw32A4b2XFIv1yDS2/b9aHy1fhwALNuLm660XZSlZkQgaBuBHTPwUD5QZ/hdfE+aTi+zXAgPDFdZI625VS+K7QB5uLDOuZRRarY7f6dgt9tQYw0HgjZ1711tKqLId9BsNoeoFKMpenjlEytz+CjWSpYMHOlpqnViIWA12+LNcFbigKYfq+Bp2O+0dBsO3bI+aF7f18Y2SLg2+5rqC/fy2Kw5oMVh49aiafgFImpOnrywZgUpW9LQaDTO14mABiJQ1JBFRkgB4vjkSdgzuPfniPQgPtrWGsssYeDH4+GpxgIJu+jTh3c1MrBNCCy8YtBTseLrZvOEm3V2M/bazr1n6mWtipDQiUxDEvfwPRc/XxSTqH8BOqrQPVp76FLtyIkLLRenPjVE1Md0MhWMo/SFAuMB5+LvaYz/6mI7gnbcful9nlt/tFcmY3un6FtBi8pIgq6OyS1H9rhpBWxjydhxD1/47xmhDfwUDEi93/y1FUuvWaw4ft1904M6OcAat1iM= 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:(13230022)(346002)(39860400002)(136003)(366004)(376002)(396003)(451199015)(2616005)(5660300002)(44832011)(1076003)(478600001)(316002)(26005)(186003)(6512007)(6486002)(41300700001)(4326008)(66476007)(8676002)(66556008)(6636002)(66946007)(34206002)(83380400001)(8936002)(36756003)(86362001)(37006003)(6506007)(38100700002)(84970400001)(6666004)(2906002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: EAMqFrd3Qpbh2peLx+iVRRoah31XMDjmDYl+g1DARXNb4EWSmq3IpOFP4rN4gjbTuC6afa/jiWxSBHAa3KbL/3IvGS1ZUWFebFYVv6dKDyw0a6NK7lBg4I7WWxhbLAwF9uXf9T+qtoeG7LuL3jNgyeh3YtRSBaeF4RYTT6xhRR2nHOyfS6Xj7gYKgvjQ+4GlrN8AE7Df+kyvlNXpoH6vGGBL9607UipwPWOgo609ad3SF1ut7UJqkxX/QkhGXidMo0PEAJ/zlkbCyS6j64qijdaE9y497JVGRyrgYftHVKXe5PPqQ7xWoAhX3D+RD+drAE0aSmMFfrGjZwoYurODpmvDHRDVLbmKna9VKURDg1PqnYlWXPbIp8zlq+8Wng1GsDNDTwLrLI1cl+gyXtOG25fZ15iaq9cJClw44RNikLV7s1114b0SItajVMKu2wW913lKYPMouK5aAUPN8ZpzSiBxCFvV5EBx5Rz0AyYGFlThnP/y+nZHRHHdXB7zJ5EPS+N+ZzufGWWSdVKJtka0P5dG7/HgKG1ilZfhhrgci5M+CF5XaejK9dJtR1ku/BAQhItOIvB30TxFMLZPK7qjkFP1a6Wm6tCcadr1hIUxIkykJ3SWE+3oNXaj6wa5nG3ocf2snRzqeBYlsJxqXiOXyAi8dXeT5ORe1eEoPN0rQisVjj+fE6ZFSURbdXnq0ITcmDRd+wQ0Lta4xLrQ8PKkKr+FAsScTe7vbeYNAOPbBNMGWEoenoldjQyMCLRM4bP1ddRcFQT4krqMyV5ISJjTeKVLrsii009Rqrb2+YV4JZ+nbdKrhTSAkfHfAW0Hl9cFO1COsEo3vs7tNwcFggX5LXTnR57KIjDbZZvsXPNAgk4t22FvRPwgc93Fcl0UOGKlDL+6yaAbx6czQnkIYuJGDdJaOgj9ct2hG3rGdZvoP1fkLJue/ChRYFwAeAv+m+y43WlnW9n3rcE1IWB+v2k1Vgufcrfcts5dc4m1scy7eSB7xpJxengxK+SZnSCNPGLQ6yM3ISBVEfMPpuu4FNoYEWnFECG0OsiOSN/DhlfQKDeaQ5Azi9Ct3NgeGlbKMQEfy5Smez83pwsljF5Yn0tAkC964p0KY00I9hMZJ2pyiVdkFivXKI97QsQlNpMhMH9NvHMZ2RYywmtF5hMD00JPl8+CmVx98XUMcCb2mxNAFYqf0BiLtDRcDGlxKMowaREnlK/3E1+SjWz2hoMhDJiUnPZEZKG7L367NdTuIWcDW3LDveOI4JCPK2tn+NxbZRmCLs3Gg6Yn84szPi1UpdB2dO28per7x7Y7wyqZWvEkEtVUQSzNhH6vYoSEbKitMPiNAgdlLBRjgJORiJ1ZjLszeesBktDyj1Hvjg5N5vf5653g+Mth8fHhSmSN3LOUdg9wq2rDMpLAFPUFiW7WE5xM5D3ZkkBJbfwddWUe00CKleDn2f9oTKE9EgC3D1HCCDEMCOkcHcUJb4xsqVP+7QGQ2QoaG31VT1tQfzXbfG+zE4+lV2lfPcqYH5JY7hGVL73dFjrj/4W/SDZ993gUd4JJpYhTdw/4MoRK4WZzp1CP46gT7MbLGlTARnWZ5RswP8Sf X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: K+br3sFFfk2uI9v4ktnWQ57FMZouiuezlrZYijyJUGkwVRneM8vRfTOhrL3DBdzaQ9+EMTJxuYP2yYP6ELS9apNrwKl3eyurNcmUjwBErkf63RlfcNQDGZCOiZKpGHqL7HDqfAtruPpqcgpvf4PnVhf36V0bghNm3or/f0I86swP6TTUU5SIyrHb8bNlK3S5GMb3aDCjO41tXaMy4FnTyCr1qQSb1s/AjWjPbaaGnVcLvGvKa62VVYD9fyis3ixb8xiFvTMcKodVkxO5pUQ8BDvzYu/1mhciafVS9yMT9ws3nB+CGgtrxlN2Gyn9YLNPjuqyODMca0MOyo12TmED4KeKUv/uAM29bXr0HbYBxRvCT+K+3Ax8QqLnUHjJyq18bRgIRDme+6Jg72kWrfK2Kw1GJb/8kNi+V9mjkF7F5OHMl9FP1jxECmn1JLuk882NA8S0g8bf7xRha/yzev6NEYJJ3dqY41DHgcyjwcISp5YvTM1/Rj6RSowEkLL0Fo/LUXgCmkh4fbfvSamStAsJgNI8j6GfcYCRpmvYnpYhITq83qD4IoYPv3Zzfe9JPpEaqgYdtwYHFbRS5VCmMvJsGdo5PQLXYBzEV6xZ6HqVja/2OdU5xDiDAK4JtZktLl3dxZpiGFIoipnlkFZJMjgsxrdpns1cxfoQiFx9Rvf8lobMvJrfiCfvlr5vl5hnrClFnxPSOGIFFbOeXgoZ0WziW3PtdWcAlFNrU87ajSG7b790NcWrG+cP10Bch7LE+fBf X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6ce684e4-25ce-4887-c9b8-08daf33e959f X-MS-Exchange-CrossTenant-AuthSource: MN2PR10MB3213.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jan 2023 19:12:15.2020 (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: gtL1+FGq5phqUzhV7HWfL3C5ZYJpBFI7/O2JsvY7NDS72bzJfjTaMyCXKLQt1MB04Tkky+Hc1xU36tqdZoccAQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN0PR10MB5111 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-10_08,2023-01-10_03,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 bulkscore=0 phishscore=0 suspectscore=0 mlxscore=0 spamscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301100126 X-Proofpoint-ORIG-GUID: GDYd5Djy4DsXcjs878uOUmZo_okHyiyF X-Proofpoint-GUID: GDYd5Djy4DsXcjs878uOUmZo_okHyiyF 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?1754586658790211437?= X-GMAIL-MSGID: =?utf-8?q?1754664310934879100?= Hi Jose, As we discussed on IRC, since we don't currently define TARGET_SUPPORTS_WIDE_INT it is safer to keep the handling for VOIDmode CONST_DOUBLEs. My current understanding is that it may be needed if the host is a 32-bit platform. I also added a gcc_unreachable () as you pointed out. V2 below. Tested with bpf-unknown-none on x86_64 host, no known regressions. WDYT? Thanks, David --- [Changes from v1: - Keep handling for VOIDmode CONST_DOUBLE, just in case. - Add a gcc_unreachable () if `op` is none of VOIDmode, SFmode, nor DFmode. ] The existing logic in bpf_print_operand was only correct for integral CONST_DOUBLEs, and emitted garbage for floating point modes. Fix it so floating point mode operands are correctly handled. PR target/108293 gcc/ * config/bpf/bpf.cc (bpf_print_operand): Correct handling for floating point modes. gcc/testsuite/ * gcc.target/bpf/double-1.c: New test. * gcc.target/bpf/double-2.c: New test. * gcc.target/bpf/float-1.c: New test. --- gcc/config/bpf/bpf.cc | 34 ++++++++++++++++++++----- gcc/testsuite/gcc.target/bpf/double-1.c | 12 +++++++++ gcc/testsuite/gcc.target/bpf/double-2.c | 12 +++++++++ gcc/testsuite/gcc.target/bpf/float-1.c | 12 +++++++++ 4 files changed, 64 insertions(+), 6 deletions(-) create mode 100644 gcc/testsuite/gcc.target/bpf/double-1.c create mode 100644 gcc/testsuite/gcc.target/bpf/double-2.c create mode 100644 gcc/testsuite/gcc.target/bpf/float-1.c diff --git a/gcc/config/bpf/bpf.cc b/gcc/config/bpf/bpf.cc index 2aeaeaf309b..576a1fe8eab 100644 --- a/gcc/config/bpf/bpf.cc +++ b/gcc/config/bpf/bpf.cc @@ -880,13 +880,35 @@ bpf_print_operand (FILE *file, rtx op, int code ATTRIBUTE_UNUSED) output_address (GET_MODE (op), XEXP (op, 0)); break; case CONST_DOUBLE: - if (CONST_DOUBLE_HIGH (op)) - fprintf (file, HOST_WIDE_INT_PRINT_DOUBLE_HEX, - CONST_DOUBLE_HIGH (op), CONST_DOUBLE_LOW (op)); - else if (CONST_DOUBLE_LOW (op) < 0) - fprintf (file, HOST_WIDE_INT_PRINT_HEX, CONST_DOUBLE_LOW (op)); + if (GET_MODE (op) == VOIDmode) + { + if (CONST_DOUBLE_HIGH (op)) + fprintf (file, HOST_WIDE_INT_PRINT_DOUBLE_HEX, + CONST_DOUBLE_HIGH (op), CONST_DOUBLE_LOW (op)); + else if (CONST_DOUBLE_LOW (op) < 0) + fprintf (file, HOST_WIDE_INT_PRINT_HEX, CONST_DOUBLE_LOW (op)); + else + fprintf (file, HOST_WIDE_INT_PRINT_DEC, CONST_DOUBLE_LOW (op)); + } else - fprintf (file, HOST_WIDE_INT_PRINT_DEC, CONST_DOUBLE_LOW (op)); + { + long vals[2]; + real_to_target (vals, CONST_DOUBLE_REAL_VALUE (op), GET_MODE (op)); + vals[0] &= 0xffffffff; + vals[1] &= 0xffffffff; + if (GET_MODE (op) == SFmode) + fprintf (file, "0x%08lx", vals[0]); + else if (GET_MODE (op) == DFmode) + { + /* Note: real_to_target puts vals in target word order. */ + if (WORDS_BIG_ENDIAN) + fprintf (file, "0x%08lx%08lx", vals[0], vals[1]); + else + fprintf (file, "0x%08lx%08lx", vals[1], vals[0]); + } + else + gcc_unreachable (); + } break; default: output_addr_const (file, op); diff --git a/gcc/testsuite/gcc.target/bpf/double-1.c b/gcc/testsuite/gcc.target/bpf/double-1.c new file mode 100644 index 00000000000..200f1bd18f8 --- /dev/null +++ b/gcc/testsuite/gcc.target/bpf/double-1.c @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-options "-mlittle-endian" } */ + +double f; +double a() { f = 1.0; return 1.0; } +double b() { f = 2.0; return 2.0; } +double c() { f = 2.0; return 3.0; } +double d() { f = 3.0; return 3.0; } + +/* { dg-final { scan-assembler-times "lddw\t%r.,0x3ff0000000000000" 2 } } */ +/* { dg-final { scan-assembler-times "lddw\t%r.,0x4000000000000000" 3 } } */ +/* { dg-final { scan-assembler-times "lddw\t%r.,0x4008000000000000" 3 } } */ diff --git a/gcc/testsuite/gcc.target/bpf/double-2.c b/gcc/testsuite/gcc.target/bpf/double-2.c new file mode 100644 index 00000000000..d04ddd0c575 --- /dev/null +++ b/gcc/testsuite/gcc.target/bpf/double-2.c @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-options "-mbig-endian" } */ + +double f; +double a() { f = 1.0; return 1.0; } +double b() { f = 2.0; return 2.0; } +double c() { f = 2.0; return 3.0; } +double d() { f = 3.0; return 3.0; } + +/* { dg-final { scan-assembler-times "lddw\t%r.,0x3ff0000000000000" 2 } } */ +/* { dg-final { scan-assembler-times "lddw\t%r.,0x4000000000000000" 3 } } */ +/* { dg-final { scan-assembler-times "lddw\t%r.,0x4008000000000000" 3 } } */ diff --git a/gcc/testsuite/gcc.target/bpf/float-1.c b/gcc/testsuite/gcc.target/bpf/float-1.c new file mode 100644 index 00000000000..05ed7bb651d --- /dev/null +++ b/gcc/testsuite/gcc.target/bpf/float-1.c @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-options "-mlittle-endian" } */ + +float f; +float a() { f = 1.0; return 1.0; } +float b() { f = 2.0; return 2.0; } +float c() { f = 2.0; return 3.0; } +float d() { f = 3.0; return 3.0; } + +/* { dg-final { scan-assembler-times "lddw\t%r.,0x3f800000" 2 } } */ +/* { dg-final { scan-assembler-times "lddw\t%r.,0x40000000" 3 } } */ +/* { dg-final { scan-assembler-times "lddw\t%r.,0x40400000" 3 } } */