From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 78486 invoked by alias); 21 Dec 2017 16:35:06 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 78466 invoked by uid 89); 21 Dec 2017 16:35:05 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.7 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=subregs X-HELO: EUR01-HE1-obe.outbound.protection.outlook.com Received: from mail-he1eur01on0080.outbound.protection.outlook.com (HELO EUR01-HE1-obe.outbound.protection.outlook.com) (104.47.0.80) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 21 Dec 2017 16:35:03 +0000 Received: from HE1PR0802CA0004.eurprd08.prod.outlook.com (2603:10a6:3:bd::14) by AM3PR08MB0135.eurprd08.prod.outlook.com (2a01:111:e400:884b::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.323.15; Thu, 21 Dec 2017 16:34:59 +0000 Received: from DB5EUR03FT045.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e0a::209) by HE1PR0802CA0004.outlook.office365.com (2603:10a6:3:bd::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.345.14 via Frontend Transport; Thu, 21 Dec 2017 16:34:59 +0000 Authentication-Results: spf=pass (sender IP is 217.140.96.140) smtp.mailfrom=arm.com; kernel.crashing.org; dkim=none (message not signed) header.d=none;kernel.crashing.org; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 217.140.96.140 as permitted sender) receiver=protection.outlook.com; client-ip=217.140.96.140; helo=nebula.arm.com; Received: from nebula.arm.com (217.140.96.140) by DB5EUR03FT045.mail.protection.outlook.com (10.152.21.164) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.20.302.6 via Frontend Transport; Thu, 21 Dec 2017 16:34:58 +0000 Received: from e107456-lin.cambridge.arm.com (10.1.2.79) by mail.arm.com (10.1.105.66) with Microsoft SMTP Server id 14.3.294.0; Thu, 21 Dec 2017 16:34:56 +0000 From: James Greenhalgh To: CC: , , Subject: Re: [Patch combine] Don't create vector mode ZERO_EXTEND from subregs Date: Thu, 21 Dec 2017 16:35:00 -0000 Message-ID: <1513874093-37586-1-git-send-email-james.greenhalgh@arm.com> In-Reply-To: <20171217031407.GJ10515@gate.crashing.org> References: <20171217031407.GJ10515@gate.crashing.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------2.6.4.2.gae996d8" X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:217.140.96.140;IPV:CAL;SCL:-1;CTRY:GB;EFV:NLI;SFV:NSPM;SFS:(10009020)(39380400002)(39860400002)(376002)(346002)(396003)(2980300002)(438002)(189003)(377424004)(199004)(24454002)(104016004)(77096006)(2906002)(84326002)(36756003)(246002)(229853002)(4326008)(568964002)(2476003)(8676002)(356003)(6246003)(86362001)(478600001)(6666003)(54906003)(16586007)(106002)(2351001)(72206003)(6916009)(316002)(5890100001)(305945005)(106466001)(59450400001)(33964004)(5660300001)(4610100001)(76176011)(4001150100001)(8936002)(7696005)(26826003)(512874002)(50226002)(2950100002);DIR:OUT;SFP:1101;SCL:1;SRVR:AM3PR08MB0135;H:nebula.arm.com;FPR:;SPF:Pass;PTR:fw-tnat.cambridge.arm.com;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;DB5EUR03FT045;1:6nuGL6hkX2/zrlB202oJxy7PN99VWgv5Q0zBDklO9oWodiaQdIjGoYGOdM/r1B9dv1OepZIAZ6LtuMs5psv2cP4Wz/opzQjDZdeAf2T/N80SiCxo9HxpIfBr3SL5gqJg X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e402e7b3-34ab-4771-d9c3-08d54890c6d9 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(5600026)(4604075)(3008031)(4608076)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603307)(7153060)(49563074);SRVR:AM3PR08MB0135; X-Microsoft-Exchange-Diagnostics: 1;AM3PR08MB0135;3:NL446mV1kdwqYqh+iAC/pXiF91TEelw8iGL7LlTbMCcHumbJGpuvqZi0sdGXagfLtqRqBWXWcp63mi1AeV0xUzPTDUhK6nA4WhBHg6dFk21KOiWgLGvMfd13V2BSp46RBKn8ykFyLfOipZBIl8mm6+LTyv9FOjL6XGDDdiZfqloU8RK+3e3GdKMUB/KsGmUBh1Ovm7AgLc2veqCjCuKOY7Z7zHd7xpIN4CKIeRH5CXUUVQKjbLXAoUzRDGG35xr4O5jnqNbwM3Cfy165hXcoyu8KrntfrbiYttu7KfRDZ55nB6ZCuVIO6KwUgvHhSiYOXvO0GFKBCWJJHRWxMys16fTLfDfPHpc+Kwyjf7rmWYQ=;25:uQVts3vMrtkCymyAAarx3CrnaK41ecUbPREjiospjUFbC9YqbA5pRA7HjZG9ZXbuy3HFE3aZnm4/Ci96B2CG0drr3GFFDrn0k0/G4kjkhIRijl6w66FrqNVXsNq0dOl7xomGJ7EC+/dTM5zpJTsb8B7kR1y7XX4XTCMKJl7MEua8qOAQs/WCT1wHqIWxT9WGqyuVJWIH/jCJeHX7lVwb7krCE0mU5IxZmtIiGCi+zoJaI1JGNdyrWT3rJidlRj1AGS1dDfli6rslcwUlsIG1/UjA7cPpYvvWhqM1pJvgaqFqb7Iud1nGqYt6/uCHwhrOow3GAGKEPDh7MVaae6I/J3VlO0TsDmRVkSffZ79SbfM= X-MS-TrafficTypeDiagnostic: AM3PR08MB0135: X-Microsoft-Exchange-Diagnostics: 1;AM3PR08MB0135;31:eunSVvHzq9X0kqpFKUcdLQqyTSvoZhdQZ0KpfUnOPHWFOFef2YtqHFCoO/jKnW5uHsnSF+HBTIhBIqLemDHImEEzRXq274uEXiHB1let0cYntsbEqsnHJSOchdyLkXU5O2LnpxOs24LeotQssmKXjgEPzdRl8GHeXvs4oXGvIb7i7d4PxQZZ35aB0UI92pOxLdXnaq/6Q77Zgi1ZuuWZ23MaZwaK9St55/FiXbU58nc=;20:e65aAQKsNSF5J+yHnE5eoJrabYwnm94k0y83LESXnWS/B5exGukXf/NaE7ZYmW+lDyrWpwcGDMW7zip+OJDX2GAO762cXYi/q5unMAqGukvOP2mF0bQ4N6SLRivOS7F/qU+DNNESFjX8xvwJYnpK67nCcLXw9oQd41JmdOg7ZRpgIUVZhwZSVvHm4lX5LxHbEtUmTRyEV/9viVEK2CpLMThBuc4+mwzhXxgIA5ZWmuCUUa8JXiUQKMHLfXghU9m0;4:LzuPKwYpCBCCAnb/8hn4kIfNA6ONpcqrD1oua3OzuQ66+nbew5H0uv7PjNShv2MUn67vIHgTQIHAAqfuCvt4kCFFmk9ZoH2qBhPrnpoL0TNTH/9DMkNOfE3vqassVDYhJZ8mF6pE3GJtlRsWhsKsUf+tePFBRnX7ahX1lSV6YAXCvr3O1Np0Fq2s6Gf0deVouh/RHerdT/FpkHjB7DWCVEPjINFKF/adaMcSL5+xTSXK402v8PAfhwTJw5BvOFFvdAL36HM/ENyJOsLC8rAS6b/kh1IBpwXGe/k6LaEAH8a6gg6+Ytg1/4a1VINXqQ5t NoDisclaimer: True X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(102415395)(6040470)(2401047)(5005006)(8121501046)(3002001)(10201501046)(93006095)(93004095)(3231023)(6055026)(6041268)(20161123564045)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(6072148)(201708071742011);SRVR:AM3PR08MB0135;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:AM3PR08MB0135; X-Forefront-PRVS: 0528942FD8 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;AM3PR08MB0135;23:T22/Ar4Ac6caaSJZFVPfsDpbzzdJIi8O+GjH2gMxg?= =?us-ascii?Q?t7rF//sJOgXk7KiWJ/Ze22VGuNXWcMY02KZxFSj18jSbt3HzvkWV4usPsSFo?= =?us-ascii?Q?lfDTohO2NcaiaNtfFKdIyHAsp6RGYxWqUP0xsYFHjpstFk+RDkim7JdMOIGr?= =?us-ascii?Q?Y607UvLhhRns1i0hB50dtVqAEYjiHhWj1/dSI3XNrfan8iGWsNfT3nX62h6A?= =?us-ascii?Q?OdAi4ctZEMIhZFEX+YeQ46nP+2AoRmvn1NmQTX0IUzpl71yhSBniMZgFibOI?= =?us-ascii?Q?NjYWggoNyTWz0k/LCqkcb9ve4BDR+VVUUYQGC6VOoDAryumS6gRxrcdaIXTg?= =?us-ascii?Q?eGJIx0tHEgzDL5IkKtVUJUhzblxVx7sIaKVWaI6MXJjzTr6v8wUAZ/xE6XMP?= =?us-ascii?Q?dbVV1XZZC9SMywP5hyMVByZCmpKV5oyfW1Gf7RxJqvc0c9JMGT9RIgjcgKM6?= =?us-ascii?Q?tI43QEnXaSzFXGIfpD5xt2eEgnMHBK4xe1GqKL9soczzbpLmQU9qNyZfxtCo?= =?us-ascii?Q?PmIjR1UZ2v+iSVZYefhf2nvi/VlL6d2U4In7DxuDBhs/Kn8+t2RJfyet/wvG?= =?us-ascii?Q?9xnSEbX1sGYd3AH1FHEAgV5hpAyi27EtZzpVUkgkLkJUbtqNVG1p6cy0OgDc?= =?us-ascii?Q?Cpq1s/b0JY7cBcfcwZNYFQYyqZGZETOtkRRjxFHrVkOY2M8YAU1Tvy2gLqUO?= =?us-ascii?Q?A03oU3bsxsoMEaDrzRgVCf8pevxwbc0rE5mFoACNtdTeosUkyUd1ayh0w9DY?= =?us-ascii?Q?KWFLwOixks6KMwVo4nSyGwtceebblGmtICaNUW2wEF9e3BoFUXiJTF2Prues?= =?us-ascii?Q?IuCWvFTtRP4d2+lXA0JW9rqgkDZjeO0bDFReW6Htm+BfEEOSgS19/BUoqYiB?= =?us-ascii?Q?DvnD+xAOcVT4awyhHRKOGKLGdMPXQk3YA5W/Btwr1aCxmu4XvVBUzsV3ccoq?= =?us-ascii?Q?bHSTI4ookXyh0BuLIgtwZ8WVYifoF01kuWyhWmxElLFHQp2I/r6gbfqL1k4v?= =?us-ascii?Q?24b9ooNhg9UboEdVWocoWu0xaWZ2i1uo1SZQn+ifUi+EVuyOJG/CwOeO09d6?= =?us-ascii?Q?cXUbg4vlPk0ClfCI6asWU1TAT8NMO7/QcVNpDxqOtK5lTvpdmCx4vHxC6MXX?= =?us-ascii?Q?m9Q0TgJ9sRICPw2n7z2uqiFFJjCIaXdXsJ0Ld3LTVI/RKvhhg4q4A=3D=3D?= X-Microsoft-Antispam-Message-Info: yQckczyb1+UzfOmwGmXNc3rKUWpVbz+nzW45xy6udAR7v54mIb1x8FCqf0/yxjxl7B94n5RDSiiFeEIuEG1u6Q== X-Microsoft-Exchange-Diagnostics: 1;AM3PR08MB0135;6:IrJ/ZT2Yoh5/HfMDZp8PspRUdmg/7z9Y8tVkTnsx01//OFdNLgDcPic1eUI51N6wFuhmUcR6cCAzsQ3FwzugbFrqVYSJPnFbf6u4PRQDokwV/S+W//ptNQ7k2RISZ085aCCupqPtGP8mWfdKrQ8UPUxcBM2XiaKaGKuXa8Qtm2PFvgRBXqKn/eZHZwDF8MiJ2TIHaSWlG1RYkIHgkYC4NCe8peYRo7mWDD+LonZ7rEDwWqTvMJAQkKhG6VQ9lQ7vxuTlyfVlzjKQVUJrdNrWUiwDsZq9STQD7gLis8cWkXhvanVsSx+8hK4P/jF9Cbslw+SIrpqEGH0t1wbz3dIgU9ueTG2z0aYzeOPHunKsTB0=;5:EBTjAkfPo0yqPlSK8pFXTB+y4q4Jvt0LlGHcN/Ea3tcY5b8fg6mnsRZQqsxyeo3GTMTCtQVtKxXxNeQwr4lPst0gACc547fgctwttjRksrRIAuIGJr4VobAntn+iDR4qtMJDT95wS1cgdk5eeRHeMiMY2v7WdFHX6Oft6Im2QYk=;24:5UoQXPOR/TM0pr+AKrYFgiuw2V4dBm1nF9bG1qIgkxjx64zIvy/YGWdQJOh5Ajk9emSxCE34ZodYparhiSxfj/ZK33MizxdG5MHZpOOZlAo=;7:rgLT4UZPoqH6D1YNck4e4c4BSv1IaKADVzjp4X0FlCV0gPcLyWPVodDtd0/1ejeIp43vEzNIinXk1Jj9bCYhrJ7r44QYgIN9iCyHImzvMpZemyVkhIEXB1mDTk3Yphr04Zwxli3GkzxFm3JwrLEeUGQ/ccL0hbUPIEhjXKxHFO/VYQuQMHbXi2qxsI60oDuWCKnzB0+g22m/e3IFoRz+h9dEyjef8u0d8QrsCU4WXfrbqd/tNTf7VTpZUidRXDa9 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Dec 2017 16:34:58.9105 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e402e7b3-34ab-4771-d9c3-08d54890c6d9 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[217.140.96.140];Helo=[nebula.arm.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM3PR08MB0135 X-IsSubscribed: yes X-SW-Source: 2017-12/txt/msg01430.txt.bz2 --------------2.6.4.2.gae996d8 Content-Type: text/plain; charset="UTF-8"; format=fixed Content-Transfer-Encoding: 8bit Content-length: 1291 On Sun, Dec 17, 2017 at 03:14:08AM +0000, Segher Boessenkool wrote: > Hi! > > On Mon, Dec 11, 2017 at 02:18:53PM +0000, James Greenhalgh wrote: > > > > In simplify_set we try transforming the paradoxical subreg expression: > > > > (set FOO (subreg:M (mem:N BAR) 0)) > > > > in to: > > > > (set FOO (zero_extend:M (mem:N BAR))) > > > > However, this code does not consider the case where M is a vector > > mode, allowing it to construct (for example): > > > > (zero_extend:V4SI (mem:SI)) > > > > This would clearly have the wrong semantics, but fortunately we fail long > > before then in expand_compound_operation. As we really don't want a vector > > zero_extend of a scalar value. > > > > We need to explicitly reject vector modes from this transformation. > > It does not consider any other modes either. Both modes involved are > required to be SCALAR_INT_MODE_P (for zero_extend to be valid at all and > to be equivalent to the subreg); could you test for that instead please? Makes sense. I've committed this as obvious after an AArch64 bootstrap and test as revision 255945. Thanks, James --- gcc/ 2017-12-21 James Greenhalgh * combine.c (simplify_set): Do not transform subregs to zero_extends if the destination is not a scalar int mode. --------------2.6.4.2.gae996d8 Content-Type: text/x-patch; name="0001-Re-Patch-combine-Don-t-create-vector-mode-ZERO_EXTEN.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="0001-Re-Patch-combine-Don-t-create-vector-mode-ZERO_EXTEN.patch" Content-length: 867 diff --git a/gcc/combine.c b/gcc/combine.c index 9f19ee4..91bed06 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -6967,12 +6967,13 @@ simplify_set (rtx x) /* If we have (set FOO (subreg:M (mem:N BAR) 0)) with M wider than N, this would require a paradoxical subreg. Replace the subreg with a zero_extend to avoid the reload that would otherwise be required. - Don't do this for vector modes, as the transformation is incorrect. */ + Don't do this unless we have a scalar integer mode, otherwise the + transformation is incorrect. */ enum rtx_code extend_op; if (paradoxical_subreg_p (src) && MEM_P (SUBREG_REG (src)) - && !VECTOR_MODE_P (GET_MODE (src)) + && SCALAR_INT_MODE_P (GET_MODE (src)) && (extend_op = load_extend_op (GET_MODE (SUBREG_REG (src)))) != UNKNOWN) { SUBST (SET_SRC (x), --------------2.6.4.2.gae996d8--