From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2076.outbound.protection.outlook.com [40.107.22.76]) by sourceware.org (Postfix) with ESMTPS id D2B773857831 for ; Fri, 18 Jun 2021 16:27:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D2B773857831 Received: from FR0P281CA0072.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:49::9) by AM8PR08MB6561.eurprd08.prod.outlook.com (2603:10a6:20b:368::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.16; Fri, 18 Jun 2021 16:27:40 +0000 Received: from VE1EUR03FT008.eop-EUR03.prod.protection.outlook.com (2603:10a6:d10:49:cafe::70) by FR0P281CA0072.outlook.office365.com (2603:10a6:d10:49::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.10 via Frontend Transport; Fri, 18 Jun 2021 16:27:40 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; 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; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT008.mail.protection.outlook.com (10.152.18.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.16 via Frontend Transport; Fri, 18 Jun 2021 16:27:39 +0000 Received: ("Tessian outbound 7799c3c2ab28:v96"); Fri, 18 Jun 2021 16:27:39 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 8d00ed0f4b696483 X-CR-MTA-TID: 64aa7808 Received: from da04b47aae20.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 097D56EF-F0F1-49D5-82C6-F028A3F7CFB4.1; Fri, 18 Jun 2021 16:27:27 +0000 Received: from EUR04-DB3-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id da04b47aae20.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 18 Jun 2021 16:27:27 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ng6zpXh4R7MsN5OPrlZDZFgt0cWYTYDw2HfQDC1M+BSPQJd6pKH+M78hhy5JbAPDpco8qDQoKU3gRWh0dRVIM63Y34EER288XQPzDZn1i3L9hnJmy5zQynSmcqQCIoD6qmm2HWQPY93ysbD0/r88e+YdE7OaSGFGhVvKe13Ty0Ad+gV63/2HU7GLc9ey5dX4O7FExMDurvqHRUKEhDUoVTU/DyZ/+TAggO199cElJrMII/t1lPrbXdgEp9qLDG70GyI37p59aBV7bBL0/MKmjoK+yGg9X1brYWZbdPRqr24q2vj0lbjeH+8AeWbi6FfFe7E1HH0I6z96YqN26ZZytA== 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-SenderADCheck; bh=zB07V4/ESvpjzfJw9M0HA6DmJtbQyRtQP0f3RgK1G5Y=; b=YnEemKqLaJGYUkur093dl7CsTqwa71gaANgOsnnqm3PM8rUGMHjP5G/55W5ySwP/BJvU9oo9exAIg6xzyaPnD/FxcvxoAA7M7Qnska2ChfRp2hNaiEOb/JzRjQdsWJ3TgvFKPa2qXBSJGfngeqwLUnvmTJqXgh2B+QR1nuEHHzUEHicncE/ske6emz9vzS4rW82nxRaJaVOGNW6pV7dBf0kAKvrt+ugTLFMQQBaYQc92OWwVpHQCu52xCtgV43RII5ULuqFnJdZghMcswcq85SvT0aDxEILraRvLQ24CzIueEvm/zJzMZtR5+NTCt/WjMwKJiu552Eo1/Rn1wWPYpg== 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 Received: from VE1PR08MB5599.eurprd08.prod.outlook.com (2603:10a6:800:1a1::12) by VI1PR0802MB2159.eurprd08.prod.outlook.com (2603:10a6:800:a3::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.16; Fri, 18 Jun 2021 16:27:23 +0000 Received: from VE1PR08MB5599.eurprd08.prod.outlook.com ([fe80::8c25:b5e8:b9be:13ac]) by VE1PR08MB5599.eurprd08.prod.outlook.com ([fe80::8c25:b5e8:b9be:13ac%5]) with mapi id 15.20.4242.021; Fri, 18 Jun 2021 16:27:23 +0000 From: Wilco Dijkstra To: GCC Patches CC: Kyrylo Tkachov , Richard Sandiford Subject: [PATCH] AArch64: Add support for __builtin_roundeven[f] [PR100966] Thread-Topic: [PATCH] AArch64: Add support for __builtin_roundeven[f] [PR100966] Thread-Index: AQHXZF5s8CmGBa5PfkmXWKkHSVC50A== Date: Fri, 18 Jun 2021 16:27:23 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: Authentication-Results-Original: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; x-originating-ip: [82.24.249.100] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: b21a9c75-3de7-4de0-315e-08d93275fdae x-ms-traffictypediagnostic: VI1PR0802MB2159:|AM8PR08MB6561: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:167;OLM:167; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: zm1IN1NTPQid8dGp0zcDz24HQ9EkvpQJTJkm5zTnzhtRh7PxuchLwu7WkzMmofv/fCWCQhnec5fNBpdwUj9fuxaMoL0oaOcaSubCQk/FD4k5hU3mf1uwHUXLheLeEKlQhN+J+ByBxvy3gWfDJdEpC3CdQ5fKjrCf+WJCU576yvbTAJKDvlJxpBZeZz8aUTamkjDtnyu8CQJVXrZakphMeo/5HWpkstRhg9MZEwsbrVOWk+O8pjv0s0t2X0ZWsPfWToqB6/KWUjGFTWuKqJ5YwpM90QIN3yzFGvRsMx3qk+dg3bJAPiTy0cUANCmDL6vfZrq343yYuBwWpSR0IzWJQkrLnN5anYweXabAQZuo2L+fyilK2AfhC+XEkBtwYcJL5aL+YrcZsfT/Gs0EK14koN7dqRR4VK/ULf77NqLCvOmLQfx7aXgKxmQCNGEqjiuIuVsZWJuCP38uWhyttb8/Iv47W2dwIuGYoVGXkbWqJD/extWkWqCQDvPTmqyNs1oOY2S5sxC6qIQlDP9wRp9LR0p2Qidby5Cj+yt5XEbyT00aBlC+kB/AWqfky0abSdMoIh2nVzCx5uDpub+7SpLgc3e/21VmKD/DkJ1IhcWdh7xzUNnWXQ4ZZ5o0wVPg2qBy1lTe+bR4NxX7Hi1uFctutw== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VE1PR08MB5599.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39850400004)(376002)(346002)(136003)(366004)(396003)(186003)(91956017)(66946007)(7696005)(76116006)(66446008)(64756008)(66556008)(66476007)(52536014)(2906002)(55016002)(9686003)(5660300002)(8676002)(26005)(33656002)(71200400001)(8936002)(6916009)(122000001)(54906003)(6506007)(38100700002)(86362001)(478600001)(4326008)(316002)(357404004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?0dQAv0hhisgQVBLYfWLrled37mVL2/cDowNdOLfaJZnq3GS52IKp+q5Grz?= =?iso-8859-1?Q?tyo5nBojy5q5N2IBNb4EJYUCih1O0fgoIZvW2u8uPsretNv8koogkcEo60?= =?iso-8859-1?Q?5Y0o/4OJAewi/zm/RclgKc62Ptk1FzCdsE780dypuuHoFIGrk6CPjpWadi?= =?iso-8859-1?Q?Ci2n96rGnwlMbzXZcnTtFP+WoZxtLGjeGBl9HH/vNNLvC2JA13bxBEpoPu?= =?iso-8859-1?Q?qiNV/tkFKhFaKqWt4Qj5t9xJCvy+DuTys4W0PZpfQ+f8XRKAxJLO8XGc/l?= =?iso-8859-1?Q?4Iz0w4zSSulrSTmYlKbvcMwMt3Ujr8jFEQ8u/iGSO4+zvVFnq4SDSwZnpR?= =?iso-8859-1?Q?c1VBv6Fhw7Z/W6TaD9c5p9d8kq9f8p666V7oV76BPve6oIjACGRTVuUQAK?= =?iso-8859-1?Q?CAK+d8yHGa/TZ2IAdAZSJSfs4P4awU70mXvv9F++t+ERAHqgVDGx/CuU9a?= =?iso-8859-1?Q?oyaKTk6MNhrpJxD83PjyoFM90USJaiAkV1FdLkREufpMHJ38lnDW+/Bosd?= =?iso-8859-1?Q?cTgMrUcYaXd43bTpJQwzl/zfrvriwtaEA589EeAUj2ZqaVRU6eIce3kE0t?= =?iso-8859-1?Q?MKwxhmclpj/BJoa2eCz4jvW09T3h4hX3UI1LWFGChsW5AXIpS5oka2vzYu?= =?iso-8859-1?Q?aEBxMO39isbfkkNFA8XwVkmWg9BoiAnrUj7Akdao2Rniy4BoDt8+i3iSEm?= =?iso-8859-1?Q?GWYQInMftsCAZfRpAl+6irv1V7xXHkHslWv2gJ0z9jfDusksqiL753LSG2?= =?iso-8859-1?Q?DCVrw2f+0hCLRRjAg9p/zFIVqe2RwRQ2R/sEN/dWtZHGTpCdmE+jROPKtk?= =?iso-8859-1?Q?YMOSLwLq8jgwKLDI5lLXIssKIOWBlt/Wyu9zd+fcYf6nyezl+Icd8fC61s?= =?iso-8859-1?Q?IWCMtvniRK2+4VhqPsYCnuXpnqZNyeL1rssZBAeWgfo0MqLduqDqpL4juu?= =?iso-8859-1?Q?0RkFP9MZkIPAJnE2mpPdYADW18UAdSyBDrNbpCCr2QDaaJFI6W8goy2VxA?= =?iso-8859-1?Q?CgysrMyWC50bR4dCwlgcG231vc33NUvLEcx0dL155P5JyTY4c8QHPFQY+K?= =?iso-8859-1?Q?bMY8nf1tR4Qpjtz7DWMV9LYPgGa85DDGOI3Z83dYAutfT6EB4K/uvBryc3?= =?iso-8859-1?Q?cP/SqZL2paA8okiyyH5oA/E+J0zhUAvD+R4Zfj6VyKsrxwXwi2wvMkGUWy?= =?iso-8859-1?Q?zHr4n3nOE6pBxPl4rII6fS1wZpMBYJ9lyrUGMjeMMOeOKm/Mh46IQQ0ce4?= =?iso-8859-1?Q?tneNmzK+yDjsx7qYtcz+4+TksWTcysd6MufC1kgI4OLrx6Aj1Qoi05d+RV?= =?iso-8859-1?Q?V4bwlTAjJW/SKt80VMGM+3T9PPv++GvQbzwM9a5PtUczDGk=3D?= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0802MB2159 Original-Authentication-Results: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT008.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 55c445b2-515e-4293-04a1-08d93275f3ef X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pH4LXK0o0pPE20xW6qfAHAayC4i7DGOAGOD6TwK7ditOQKHCcy1BBlgVge01QvBev3daJU2NvcliKQUX5oBROnHrEL+p4pgEWe0pD3VGTSXXROZw3kCeYDwp7HfAdwN3WIPS/NsHMOo47riqDJUH9Cc6j5r41XTlLRNtN6TgCDmV2go9GMkqprMRc8KAZwnDlENkhl7fyE9TvhvaQg4qrUR195oaAekpCUglhPN7Jc4dya4NwZ0ujWvssFGd21BJFKpfJ0uSJcgIcGxBUJdSh6ZVB1RMDINH+1ak0VEQOOm8DCV11D3e6ubh+X/G2ZSa+X8eOvb/lKyXUy9HVUUZNFldkSKqlOQTdO6e5AwqRtN7/rDK6dufCGbbImWkQhXj+/JoWanJ+NZED+jlH0cWBA66XVJSC4Oltlktgv7z5zllJzji6JnwmOGf2tuqbVJF2+kr5RAlgYOZyt0ggsGunwY+1i7QUDHBtuYrX0ihQpaQMEoUEz0Q0XatFfR12hsAQ+Pr1dDOczDkWCXvhOEdLHU85HNJiGXzVFRnr71pTCqRQlxeF6Algrm4tmtFtVTKyjbI/vHri12rypnKEPAoYF7g9Tsq369pzW9cx9DGWrv+E5CR3V1jSTSfrk4cWpA3+NZd8/sYoqVfwBPMlB3crqcigUdkYQ1IA0SZ3u7UaAQ6dOp3fnmAwpijYJLUIMMa 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:(4636009)(39850400004)(396003)(136003)(376002)(346002)(46966006)(36840700001)(8676002)(356005)(2906002)(4326008)(47076005)(478600001)(82310400003)(6916009)(86362001)(7696005)(52536014)(70586007)(8936002)(54906003)(70206006)(81166007)(9686003)(26005)(5660300002)(33656002)(6506007)(82740400003)(186003)(36860700001)(55016002)(316002)(336012)(357404004); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jun 2021 16:27:39.7100 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b21a9c75-3de7-4de0-315e-08d93275fdae 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: VE1EUR03FT008.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6561 X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_LOTSOFHASH, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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-List-Received-Date: Fri, 18 Jun 2021 16:27:44 -0000 Enable __builtin_roundeven[f] by adding roundeven as an alias to the=0A= existing frintn support.=0A= =0A= Bootstrap OK and passes regress.=0A= =0A= ChangeLog:=0A= 2021-06-18 Wilco Dijkstra =0A= =0A= PR target/100966=0A= * config/aarch64/aarch64.md (UNSPEC_FRINTR): Add.=0A= * config/aarch64/aarch64.c (aarch64_frint_unspec_p): Add UNSPEC_FRI= NTR.=0A= (aarch64_rtx_cost): Likewise.=0A= * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTR.=0A= (frint_pattern): Likewise.=0A= (frint_suffix): Likewise.=0A= =0A= gcc/testsuite=0A= PR target/100966=0A= * gcc.target/aarch64/frint.x: Add roundeven tests. =0A= * gcc.target/aarch64/frint_double.c: Likewise.=0A= * gcc.target/aarch64/frint_float.c: Likewise.=0A= =0A= ---=0A= =0A= diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c=0A= index f4d264bbc817153b330bac9ab423bf561689ebf2..63bd49d475433c04faa89bb380a= 9d17e4ad4bc6c 100644=0A= --- a/gcc/config/aarch64/aarch64.c=0A= +++ b/gcc/config/aarch64/aarch64.c=0A= @@ -12253,6 +12253,7 @@ aarch64_frint_unspec_p (unsigned int u)=0A= case UNSPEC_FRINTM:=0A= case UNSPEC_FRINTA:=0A= case UNSPEC_FRINTN:=0A= + case UNSPEC_FRINTR:=0A= case UNSPEC_FRINTX:=0A= case UNSPEC_FRINTI:=0A= return true;=0A= @@ -13648,6 +13649,7 @@ cost_plus:=0A= || uns_code =3D=3D UNSPEC_FRINTM=0A= || uns_code =3D=3D UNSPEC_FRINTN=0A= || uns_code =3D=3D UNSPEC_FRINTP=0A= + || uns_code =3D=3D UNSPEC_FRINTR=0A= || uns_code =3D=3D UNSPEC_FRINTZ)=0A= x =3D XVECEXP (x, 0, 0);=0A= }=0A= diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md= =0A= index 30effca6f3562f6870a6cc8097750e63bb0d424d..70e46f28259640a273d444a2b96= 3246ed9a91109 100644=0A= --- a/gcc/config/aarch64/aarch64.md=0A= +++ b/gcc/config/aarch64/aarch64.md=0A= @@ -167,6 +167,7 @@ (define_c_enum "unspec" [=0A= UNSPEC_FRINTM=0A= UNSPEC_FRINTN=0A= UNSPEC_FRINTP=0A= + UNSPEC_FRINTR=0A= UNSPEC_FRINTX=0A= UNSPEC_FRINTZ=0A= UNSPEC_GOTSMALLPIC=0A= diff --git a/gcc/config/aarch64/iterators.md b/gcc/config/aarch64/iterators= .md=0A= index cac33ae812b382cd55611b0da8a6e9eac3a513c4..1542661c6d101ed53c6e1c8683c= bca32baefebbd 100644=0A= --- a/gcc/config/aarch64/iterators.md=0A= +++ b/gcc/config/aarch64/iterators.md=0A= @@ -2291,7 +2291,7 @@ (define_int_iterator REVERSE [UNSPEC_REV64 UNSPEC_REV= 32 UNSPEC_REV16])=0A= =0A= (define_int_iterator FRINT [UNSPEC_FRINTZ UNSPEC_FRINTP UNSPEC_FRINTM=0A= UNSPEC_FRINTN UNSPEC_FRINTI UNSPEC_FRINTX=0A= - UNSPEC_FRINTA])=0A= + UNSPEC_FRINTA UNSPEC_FRINTR ])=0A= =0A= (define_int_iterator FCVT [UNSPEC_FRINTZ UNSPEC_FRINTP UNSPEC_FRINTM=0A= UNSPEC_FRINTA UNSPEC_FRINTN])=0A= @@ -3079,13 +3079,14 @@ (define_int_attr frint_pattern [(UNSPEC_FRINTZ "btr= unc")=0A= (UNSPEC_FRINTI "nearbyint")=0A= (UNSPEC_FRINTX "rint")=0A= (UNSPEC_FRINTA "round")=0A= - (UNSPEC_FRINTN "frintn")])=0A= + (UNSPEC_FRINTN "frintn")=0A= + (UNSPEC_FRINTR "roundeven")])=0A= =0A= ;; frint suffix for floating-point rounding instructions.=0A= (define_int_attr frint_suffix [(UNSPEC_FRINTZ "z") (UNSPEC_FRINTP "p")=0A= (UNSPEC_FRINTM "m") (UNSPEC_FRINTI "i")=0A= (UNSPEC_FRINTX "x") (UNSPEC_FRINTA "a")=0A= - (UNSPEC_FRINTN "n")])=0A= + (UNSPEC_FRINTN "n") (UNSPEC_FRINTR "n")])=0A= =0A= (define_int_attr fcvt_pattern [(UNSPEC_FRINTZ "btrunc") (UNSPEC_FRINTA "ro= und")=0A= (UNSPEC_FRINTP "ceil") (UNSPEC_FRINTM "floor")=0A= diff --git a/gcc/testsuite/gcc.target/aarch64/frint.x b/gcc/testsuite/gcc.t= arget/aarch64/frint.x=0A= index 1403740686ea3927d2c39eb2466ef8cc67e223b2..d598a25ff21b8feeca6a96de798= 48b2fbde7f31e 100644=0A= --- a/gcc/testsuite/gcc.target/aarch64/frint.x=0A= +++ b/gcc/testsuite/gcc.target/aarch64/frint.x=0A= @@ -4,6 +4,7 @@ extern GPF SUFFIX(floor) (GPF);=0A= extern GPF SUFFIX(nearbyint) (GPF);=0A= extern GPF SUFFIX(rint) (GPF);=0A= extern GPF SUFFIX(round) (GPF);=0A= +extern GPF SUFFIX(roundeven) (GPF);=0A= =0A= GPF test1a (GPF x)=0A= {=0A= @@ -64,3 +65,14 @@ GPF test6b (GPF x)=0A= {=0A= return SUFFIX(round)(x);=0A= }=0A= +=0A= +GPF test7a (GPF x)=0A= +{=0A= + return SUFFIX(__builtin_roundeven)(x);=0A= +}=0A= +=0A= +GPF test7b (GPF x)=0A= +{=0A= + return SUFFIX(roundeven)(x);=0A= +}=0A= +=0A= diff --git a/gcc/testsuite/gcc.target/aarch64/frint_double.c b/gcc/testsuit= e/gcc.target/aarch64/frint_double.c=0A= index 96139496ca454cebd41d31e8b018dab7ffa33a3f..1d28eb09e11842802ab632a7696= de4407263f8ce 100644=0A= --- a/gcc/testsuite/gcc.target/aarch64/frint_double.c=0A= +++ b/gcc/testsuite/gcc.target/aarch64/frint_double.c=0A= @@ -12,3 +12,4 @@=0A= /* { dg-final { scan-assembler-times "frinti\td\[0-9\]" 2 } } */=0A= /* { dg-final { scan-assembler-times "frintx\td\[0-9\]" 2 } } */=0A= /* { dg-final { scan-assembler-times "frinta\td\[0-9\]" 2 } } */=0A= +/* { dg-final { scan-assembler-times "frintn\td\[0-9\]" 2 } } */=0A= diff --git a/gcc/testsuite/gcc.target/aarch64/frint_float.c b/gcc/testsuite= /gcc.target/aarch64/frint_float.c=0A= index 493ec37f940a6e8cb01ea7e324073fa22099636c..530cf975db3d52c30bce43d0c40= 229b2b375cdea 100644=0A= --- a/gcc/testsuite/gcc.target/aarch64/frint_float.c=0A= +++ b/gcc/testsuite/gcc.target/aarch64/frint_float.c=0A= @@ -12,3 +12,4 @@=0A= /* { dg-final { scan-assembler-times "frinti\ts\[0-9\]" 2 } } */=0A= /* { dg-final { scan-assembler-times "frintx\ts\[0-9\]" 2 } } */=0A= /* { dg-final { scan-assembler-times "frinta\ts\[0-9\]" 2 } } */=0A= +/* { dg-final { scan-assembler-times "frintn\ts\[0-9\]" 2 } } */=0A=