From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2051.outbound.protection.outlook.com [40.107.21.51]) by sourceware.org (Postfix) with ESMTPS id 318DC3858CDA for ; Tue, 24 Oct 2023 17:27:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 318DC3858CDA 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-Filter: OpenARC Filter v1.0.0 sourceware.org 318DC3858CDA Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.21.51 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1698168470; cv=pass; b=wDdiBEo8cl+R80Km7JLTFpAuZhhTLxrrOrTHB4dq7e0kN9eJevTIpzhwGwra/J0/KR2JQszdr/yjm/yaZM61nNKs7uqc+qrTD70r77NVTXweTjNxRLpy4x0oUxjIypd45plOtSSWO0G7f2ZVIKoBGZJrgpYNEIU+iWiMek+45cw= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1698168470; c=relaxed/simple; bh=v70K5cL0SMKAjcU09CDmCC5DsgbdQLUB5f7jaMxyV2I=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=jto1pgNwSRrEH2eajLCUyBcFeBecP/4s3zqpWwxEqPu3mDJSvC9fQ9LB76IEZ6nFPzr5GlW5g7T7z1kIe4xu3J6E7sTZwxAzrdoDu/cufr5n6toHLjxQvnn0MG4hULeeIABYz82jIZFB27K5SKmOqMRKoOowOCWajc3HOb5dD7Q= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=k7R71BXRmYdW3akEGZHboXRnVJwepGHEpfitltW3PsTwJcZPNWSAJihbmiyxxM+YGhPGyQh+3PntMpE51D1kGNY8D8/Zkfdxf9mJWEcthm9moLr6XJOGGb0Ng/pjMkN3YWak5wvZdFwo2FJxXkxeP9lGKApA3zWBGZrieIhR+tzhrlQxM2nmgLdYruWA2hCxM8nKdPE1vnLFM2bJ/q5W46Qz6gwPmhaM4mA6BTotNjyupU0OwJd4W24ITEW288FAnIHI5rnfW6Yc3rcr6+XzUtfatKYWSX2w2GJlmwXAl9dBwj6o4vCqQbOh2MTg/V4YbCM+yo2qbWWsl+ll+vZC7g== 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=lMHvecnvPUZ7DySBZUkBxrg4F1jVNPGMwQ/0aTtx/BI=; b=be57sRBOZW6748fRFmDDKmuT2BLN712KLYOUc/TynTlrk/Z0NcBpQUwnWf0zctBrWzjjyvggaWhCvgnLZ14KQ3/56RDmz+YTyZPteD4d/aRk101vAsRxM2iVg7D8/3lgDy02BIM8N2mL+cqak6MexuMPoh0Cz8Jpm2Ctf2PV6dZpfwJ/WMyPYJlXOWx7RHwErCpEvbf+BthhF9UbVwpSkiqQ6mcqPNIXLwEGE54k4KLyIqgcaqEgZ6lplA3dVgpakJZAswLVXCAictrIEPF7hBvSn/CjArmbvQsRiy7B2k2oWyDDYLMVoA9yZWCXqTTl0h/PPoy7a682W3hSlCvocA== 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=lMHvecnvPUZ7DySBZUkBxrg4F1jVNPGMwQ/0aTtx/BI=; b=pqPP4OfonTjitFxfbDPqgzfcMKsqZgqvnXiQ3e3o+tSTVCp536hCvQ+Z1nR5hfmWjBMHqKZbh/m5/8CFgAbaMMPzG+Bg8fJuzaU5k3+qotoF5tqBm4pHAGkR9Eb657ceIFcWvgrz/myG/uPWjqBA97DNj5Xqs9Xz7m6sVD1KZ6I= Received: from AS9PR05CA0247.eurprd05.prod.outlook.com (2603:10a6:20b:493::11) by PR3PR08MB5610.eurprd08.prod.outlook.com (2603:10a6:102:91::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.33; Tue, 24 Oct 2023 17:27:45 +0000 Received: from AM1PEPF000252E1.eurprd07.prod.outlook.com (2603:10a6:20b:493:cafe::c8) by AS9PR05CA0247.outlook.office365.com (2603:10a6:20b:493::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.34 via Frontend Transport; Tue, 24 Oct 2023 17:27:45 +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 AM1PEPF000252E1.mail.protection.outlook.com (10.167.16.59) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.15 via Frontend Transport; Tue, 24 Oct 2023 17:27:45 +0000 Received: ("Tessian outbound 9e011a9ddd13:v215"); Tue, 24 Oct 2023 17:27:45 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 79c269b1f8c215c6 X-CR-MTA-TID: 64aa7808 Received: from 5b6d4baee4e4.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id C17FED69-8087-4F34-B533-3959C448CD96.1; Tue, 24 Oct 2023 17:27:33 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 5b6d4baee4e4.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 24 Oct 2023 17:27:33 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lQJIjyppwhi5SqlT4UCHojqDR52CFg7fWNyNnNN9NltF4LNER9S+JLPnrLgbGrO1nFE1oi9VaHAFPMAjRSXu2JRmTX7Frs8QuJzUE48bQnxli3K1z0r4EDNaTISfbaPBYwn48fWq0vnjo+61XqdE18bO1nSNQGfPo7X5xelIAwqO7XULc93QPUf0fEtpDgess+Wv3kLj/t7IB1x1ZnToASvHawik/tlPZqCsbmU8BEmYyTeY3go/Zxw7ytObDZje4p1ICkcufVeiPSbunFzu0y9WEOBK+B/eWR8aKCCDtgkhRyZJAHihPVuNDZjUCno+nQ4XiJxEuqrfUhL4+SAaQA== 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=lMHvecnvPUZ7DySBZUkBxrg4F1jVNPGMwQ/0aTtx/BI=; b=MCdddQ/0AQH6r+7vZcKd8Zv0z1BFMCtmCy3l/UkdtJjXe3ftYEwNK+dNR5ON6ZxbtwVMq0XUkpeYi8JgLvALzepX+9ewhWrebhw5MHkV437mQ2xb63Kr1WQHl+Q9bP4rB4yfQZI3YQ09ms1az1MYjoTNw1GIzmSoNRqixkHyFwXh4SVxzYbW/srKfYZSCSHFSqIFg67mZqg9NnsFeQVfrBzTymqa/y5Ir74TcLsRIT+NM1GYfrfCPTPNK1yEwbmawYPBwoZd2uIfZe8gFZzfbYgnmlOyXKxMWJZr6/Z9ZaorPJ8gh6u7CJ2tX1+ly/tgWWyJngVXwuhLN/CTGKVqZA== 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=lMHvecnvPUZ7DySBZUkBxrg4F1jVNPGMwQ/0aTtx/BI=; b=pqPP4OfonTjitFxfbDPqgzfcMKsqZgqvnXiQ3e3o+tSTVCp536hCvQ+Z1nR5hfmWjBMHqKZbh/m5/8CFgAbaMMPzG+Bg8fJuzaU5k3+qotoF5tqBm4pHAGkR9Eb657ceIFcWvgrz/myG/uPWjqBA97DNj5Xqs9Xz7m6sVD1KZ6I= Received: from PAWPR08MB8982.eurprd08.prod.outlook.com (2603:10a6:102:33f::20) by GVXPR08MB10519.eurprd08.prod.outlook.com (2603:10a6:150:152::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.33; Tue, 24 Oct 2023 17:27:31 +0000 Received: from PAWPR08MB8982.eurprd08.prod.outlook.com ([fe80::2939:a00c:af3:2551]) by PAWPR08MB8982.eurprd08.prod.outlook.com ([fe80::2939:a00c:af3:2551%4]) with mapi id 15.20.6907.032; Tue, 24 Oct 2023 17:27:28 +0000 From: Wilco Dijkstra To: Richard Earnshaw CC: GCC Patches Subject: [PATCH v2] AArch64: Improve immediate generation Thread-Topic: [PATCH v2] AArch64: Improve immediate generation Thread-Index: AQHaBp77EXod+/FsTESgYM4CPhWqNA== Date: Tue, 24 Oct 2023 17:27:28 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: PAWPR08MB8982:EE_|GVXPR08MB10519:EE_|AM1PEPF000252E1:EE_|PR3PR08MB5610:EE_ X-MS-Office365-Filtering-Correlation-Id: 36ef2fc5-4f84-4b68-63e5-08dbd4b68926 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: BLLLjSMBDZ4gayAohdC5MK6rjW7fbjZ2bBiM1Y0htHNJVbyYDcNFgWAu+XqkMBlv1/KEShlYU3Rg2maVHAT0MdATn8lAj3D9Ec2yWTKjxKahpv8bfK5PosFZZ5qHabxidCmUHJQ2r3bHS0IJsfTnsKu4b2LR++cRb0Go5PxVCno4BOfiOEvCDPVtMsGPDfvTQXO6yqR9gRrGIeMdE1FmWA7VqrpsY2LE7nMl4pmSwhddXh2rr/w8fsOXWnL8KktGkjqHoS3PctdAozv5IoJIZqRq4ajw3reLoZZqcruQ6R/OHRR2myAi/8vIxCvEjG/nBfdeJp8ALxDSrJqexBiT6mZPxcsy0JPB2BvYy0p5Vh5DlIqEOy0jEZZEdD29KjeJ3hh+fHxqyZgBAuysA+ikLIgqcOYXwW6cikuRBb2IJNrrcumNLnwBtwkGNPjSD94U4BDw5XDftGhdd5fIxzJhyWH5wz3IvXt4PgvoCq5crSH7NIaIinwKkjgO8MShrr9LAGeq64C2watbgk16BIfYHRgbexiZTehaJ+zPQF9vT3MyJS5GKVMDPikLD0uE1TV3+X40qE6YqO6O5OBSQXUSI8E7KOUjQsXgAWrxJiuCYr2nP37zXZzOGYgcVuWinqDpMR47KBumYwvpOVFoWgdOJNh88/jTnlTZVhpQzinEXdk= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAWPR08MB8982.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(366004)(396003)(346002)(136003)(376002)(230922051799003)(64100799003)(451199024)(186009)(1800799009)(86362001)(55016003)(2906002)(38100700002)(91956017)(41300700001)(66476007)(122000001)(66446008)(316002)(76116006)(66946007)(66556008)(71200400001)(6506007)(478600001)(6636002)(7696005)(9686003)(64756008)(4326008)(5660300002)(52536014)(33656002)(6862004)(8676002)(8936002)(14773004)(84970400001)(26005)(38070700009);DIR:OUT;SFP:1101; Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB10519 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: AM1PEPF000252E1.eurprd07.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: b178968a-2da7-4d25-dd43-08dbd4b67f42 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: trtTu3qztnatAV01krkjIZhXKbOwOdy7FUYcTSKUdEkjGHs53ySBGPI3ZAuiv5uym/QLWTFVEABgt4xAL7B+sIHy/zfmG+wO5UT9OcHWUL3UK941VfBCeqQGp6+Tfp6WCMjXDJfORg75q4d408BPtdBeC54LyvVqyxODPkxPtKHMMODc5blx43y9bHfIkJ10tkHG4wTyNxBYSfsgzRZpVILAFInSL2koQfa2YB5M7M+Pqy1YZDmOWpusNJxEetMZvXHQxOTwB7/d2WLHMgOjuq+Mq4QR2R2JbuQcPp+J8WJubEKCKSLBpDc3Q8lankojPs+DERYeMmjdFuv3Jddmm0r+jsFC2B+sR04WEwyn/Pa6xYkSAtCQwzf3gt3krL2v0Io0/Dz+IUUp054+TGs8UJdTuSV3rvCXMzBOp0yJIUAUlLa/B3f06An7QUGVlYWjtXQ0UUbWk2Te6kGi6zlY0FAtDIPW66560Jl7U2gvZd22zVhbge5DcldLsP1xRsoPydoadSoJk3FHUGgG7VimkGlTg/XNLIjZLlGeb4+y/b+eRwiOuEILkIiAWvKnykdbrEHSZgJkL0O5avBwzuYnrXysFxeCRPZRQEOedw8cBMysKmFdQdF5AOmSiqVe4ygM1RI+0MLFzzj6u7fozAmaZ/Rok+wiM1FQSExcaozRw3cLBTqxsuj6oexXZN5pkfbo0DoCmI30jvxOayDZlTZ8LZSKwDBeLsjfM8PUN6fNCrY3Vh/u3v/CLOeE691Gj25wB/OYDPpNLcuEcJkN3aL4G7OziTBbUTvujD4KvT4OSvM= 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:(13230031)(4636009)(136003)(376002)(346002)(396003)(39860400002)(230922051799003)(1800799009)(186009)(82310400011)(451199024)(64100799003)(46966006)(40470700004)(36840700001)(26005)(84970400001)(2906002)(55016003)(7696005)(41300700001)(36860700001)(5660300002)(52536014)(86362001)(8936002)(6862004)(33656002)(8676002)(4326008)(14773004)(70206006)(356005)(70586007)(478600001)(6506007)(40460700003)(82740400003)(6636002)(81166007)(316002)(336012)(9686003)(40480700001)(47076005);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Oct 2023 17:27:45.2563 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 36ef2fc5-4f84-4b68-63e5-08dbd4b68926 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: AM1PEPF000252E1.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5610 X-Spam-Status: No, score=-10.6 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: v2: Use check-function-bodies in tests=0A= =0A= Further improve immediate generation by adding support for 2-instruction=0A= MOV/EOR bitmask immediates. This reduces the number of 3/4-instruction=0A= immediates in SPECCPU2017 by ~2%.=0A= =0A= Passes regress, OK for commit?=0A= =0A= gcc/ChangeLog:=0A= * config/aarch64/aarch64.cc (aarch64_internal_mov_immediate)=0A= Add support for immediates using MOV/EOR bitmask.=0A= =0A= gcc/testsuite:=0A= * gcc.target/aarch64/imm_choice_comparison.c: Change tests.=0A= * gcc.target/aarch64/moveor_imm.c: Add new test.=0A= * gcc.target/aarch64/pr106583.c: Change tests.=0A= =0A= ---=0A= =0A= diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc= =0A= index 578a253d6e0e133e19592553fc873b3e73f9f218..ed5be2b64c9a767d74e9d78415d= a964c669001aa 100644=0A= --- a/gcc/config/aarch64/aarch64.cc=0A= +++ b/gcc/config/aarch64/aarch64.cc=0A= @@ -5748,6 +5748,26 @@ aarch64_internal_mov_immediate (rtx dest, rtx imm, b= ool generate,=0A= }=0A= return 2;=0A= }=0A= +=0A= + /* Try 2 bitmask immediates which are xor'd together. */=0A= + for (i =3D 0; i < 64; i +=3D 16)=0A= + {=0A= + val2 =3D (val >> i) & mask;=0A= + val2 |=3D val2 << 16;=0A= + val2 |=3D val2 << 32;=0A= + if (aarch64_bitmask_imm (val2) && aarch64_bitmask_imm (val ^ val2))=0A= + break;=0A= + }=0A= +=0A= + if (i !=3D 64)=0A= + {=0A= + if (generate)=0A= + {=0A= + emit_insn (gen_rtx_SET (dest, GEN_INT (val2)));=0A= + emit_insn (gen_xordi3 (dest, dest, GEN_INT (val ^ val2)));=0A= + }=0A= + return 2;=0A= + }=0A= }=0A= =0A= /* Try a bitmask plus 2 movk to generate the immediate in 3 instructions= . */=0A= diff --git a/gcc/testsuite/gcc.target/aarch64/imm_choice_comparison.c b/gcc= /testsuite/gcc.target/aarch64/imm_choice_comparison.c=0A= index ebc44d6dbc7287d907603d77d7b54496de177c4b..a1fc90ad73411ae8ed848fa3215= 86afcb8d710aa 100644=0A= --- a/gcc/testsuite/gcc.target/aarch64/imm_choice_comparison.c=0A= +++ b/gcc/testsuite/gcc.target/aarch64/imm_choice_comparison.c=0A= @@ -1,32 +1,64 @@=0A= /* { dg-do compile } */=0A= /* { dg-options "-O2" } */=0A= +/* { dg-final { check-function-bodies "**" "" } } */=0A= =0A= /* Go from four moves to two. */=0A= =0A= +/*=0A= +** foo:=0A= +** mov w[0-9]+, 2576980377=0A= +** movk x[0-9]+, 0x9999, lsl 32=0A= +** ...=0A= +*/=0A= +=0A= int=0A= foo (long long x)=0A= {=0A= - return x <=3D 0x1999999999999998;=0A= + return x <=3D 0x0000999999999998;=0A= }=0A= =0A= +/*=0A= +** GT:=0A= +** mov w[0-9]+, -16777217=0A= +** ...=0A= +*/=0A= +=0A= int=0A= GT (unsigned int x)=0A= {=0A= return x > 0xfefffffe;=0A= }=0A= =0A= +/*=0A= +** LE:=0A= +** mov w[0-9]+, -16777217=0A= +** ...=0A= +*/=0A= +=0A= int=0A= LE (unsigned int x)=0A= {=0A= return x <=3D 0xfefffffe;=0A= }=0A= =0A= +/*=0A= +** GE:=0A= +** mov w[0-9]+, 4278190079=0A= +** ...=0A= +*/=0A= +=0A= int=0A= GE (long long x)=0A= {=0A= return x >=3D 0xff000000;=0A= }=0A= =0A= +/*=0A= +** LT:=0A= +** mov w[0-9]+, -16777217=0A= +** ...=0A= +*/=0A= +=0A= int=0A= LT (int x)=0A= {=0A= @@ -35,6 +67,13 @@ LT (int x)=0A= =0A= /* Optimize the immediate in conditionals. */=0A= =0A= +/*=0A= +** check:=0A= +** ...=0A= +** mov w[0-9]+, -16777217=0A= +** ...=0A= +*/=0A= +=0A= int=0A= check (int x, int y)=0A= {=0A= @@ -44,11 +83,15 @@ check (int x, int y)=0A= return x;=0A= }=0A= =0A= +/*=0A= +** tern:=0A= +** ...=0A= +** mov w[0-9]+, -16777217=0A= +** ...=0A= +*/=0A= +=0A= int=0A= tern (int x)=0A= {=0A= return x >=3D 0xff000000 ? 5 : -3;=0A= }=0A= -=0A= -/* baz produces one movk instruction. */=0A= -/* { dg-final { scan-assembler-times "movk" 1 } } */=0A= diff --git a/gcc/testsuite/gcc.target/aarch64/moveor_imm.c b/gcc/testsuite/= gcc.target/aarch64/moveor_imm.c=0A= new file mode 100644=0A= index 0000000000000000000000000000000000000000..1c0c3f3bf8c588f9661112a8b3f= 9a72c5ddff95c=0A= --- /dev/null=0A= +++ b/gcc/testsuite/gcc.target/aarch64/moveor_imm.c=0A= @@ -0,0 +1,63 @@=0A= +/* { dg-do compile } */=0A= +/* { dg-options "-O2" } */=0A= +/* { dg-final { check-function-bodies "**" "" } } */=0A= +=0A= +/*=0A= +** f1:=0A= +** mov x0, -6148914691236517206=0A= +** eor x0, x0, -9223372036854775807=0A= +** ret=0A= +*/=0A= +=0A= +long f1 (void)=0A= +{=0A= + return 0x2aaaaaaaaaaaaaab;=0A= +}=0A= +=0A= +/*=0A= +** f2:=0A= +** mov x0, -1085102592571150096=0A= +** eor x0, x0, -2305843009213693951=0A= +** ret=0A= +*/=0A= +=0A= +long f2 (void)=0A= +{=0A= + return 0x10f0f0f0f0f0f0f1;=0A= +}=0A= +=0A= +/*=0A= +** f3:=0A= +** mov x0, -3689348814741910324=0A= +** eor x0, x0, -4611686018427387903=0A= +** ret=0A= +*/=0A= +=0A= +long f3 (void)=0A= +{=0A= + return 0xccccccccccccccd;=0A= +}=0A= +=0A= +/*=0A= +** f4:=0A= +** mov x0, -7378697629483820647=0A= +** eor x0, x0, -9223372036854775807=0A= +** ret=0A= +*/=0A= +=0A= +long f4 (void)=0A= +{=0A= + return 0x1999999999999998;=0A= +}=0A= +=0A= +/*=0A= +** f5:=0A= +** mov x0, 3689348814741910323=0A= +** eor x0, x0, 864691128656461824=0A= +** ret=0A= +*/=0A= +=0A= +long f5 (void)=0A= +{=0A= + return 0x3f3333333f333333;=0A= +}=0A= diff --git a/gcc/testsuite/gcc.target/aarch64/pr106583.c b/gcc/testsuite/gc= c.target/aarch64/pr106583.c=0A= index 0f931580817d78dc1cc58f03b251bd21bec71f59..63df7395edf9491720e3601848e= 15aa773c51e6d 100644=0A= --- a/gcc/testsuite/gcc.target/aarch64/pr106583.c=0A= +++ b/gcc/testsuite/gcc.target/aarch64/pr106583.c=0A= @@ -1,41 +1,94 @@=0A= -/* { dg-do assemble } */=0A= -/* { dg-options "-O2 --save-temps" } */=0A= +/* { dg-do compile } */=0A= +/* { dg-options "-O2" } */=0A= +/* { dg-final { check-function-bodies "**" "" } } */=0A= +=0A= +/*=0A= +** f1:=0A= +** mov x0, -72340172838076674=0A= +** movk x0, 0xfeff, lsl 0=0A= +** movk x0, 0x75fe, lsl 48=0A= +** ret=0A= +*/=0A= =0A= long f1 (void)=0A= {=0A= - return 0x7efefefefefefeff;=0A= + return 0x75fefefefefefeff;=0A= }=0A= =0A= +/*=0A= +** f2:=0A= +** mov x0, -6148914691236517206=0A= +** movk x0, 0x5678, lsl 32=0A= +** movk x0, 0x1234, lsl 48=0A= +** ret=0A= +*/=0A= +=0A= long f2 (void)=0A= {=0A= return 0x12345678aaaaaaaa;=0A= }=0A= =0A= +/*=0A= +** f3:=0A= +** mov x0, -3689348814741910324=0A= +** movk x0, 0x5678, lsl 0=0A= +** movk x0, 0x1234, lsl 48=0A= +** ret=0A= +*/=0A= +=0A= long f3 (void)=0A= {=0A= return 0x1234cccccccc5678;=0A= }=0A= =0A= +/*=0A= +** f4:=0A= +** mov x0, 8608480567731124087=0A= +** movk x0, 0x5678, lsl 16=0A= +** movk x0, 0x1234, lsl 32=0A= +** ret=0A= +*/=0A= +=0A= long f4 (void)=0A= {=0A= return 0x7777123456787777;=0A= }=0A= =0A= +/*=0A= +** f5:=0A= +** mov x0, 6148914691236517205=0A= +** movk x0, 0x5678, lsl 0=0A= +** movk x0, 0x1234, lsl 16=0A= +** ret=0A= +*/=0A= +=0A= long f5 (void)=0A= {=0A= return 0x5555555512345678;=0A= }=0A= =0A= +/*=0A= +** f6:=0A= +** mov x0, -4919131752989213765=0A= +** movk x0, 0x5678, lsl 16=0A= +** movk x0, 0x1234, lsl 48=0A= +** ret=0A= +*/=0A= +=0A= long f6 (void)=0A= {=0A= return 0x1234bbbb5678bbbb;=0A= }=0A= =0A= +/*=0A= +** f7:=0A= +** mov x0, 4919131752989213764=0A= +** movk x0, 0x5678, lsl 0=0A= +** movk x0, 0x1234, lsl 32=0A= +** ret=0A= +*/=0A= +=0A= long f7 (void)=0A= {=0A= return 0x4444123444445678;=0A= }=0A= -=0A= -=0A= -/* { dg-final { scan-assembler-times {\tmovk\t} 14 } } */=0A= -/* { dg-final { scan-assembler-times {\tmov\t} 7 } } */=0A= =0A=