From patchwork Mon Nov 6 20:08:43 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Sandiford X-Patchwork-Id: 118096 Delivered-To: patch@linaro.org Received: by 10.140.22.164 with SMTP id 33csp3158117qgn; Mon, 6 Nov 2017 12:09:04 -0800 (PST) X-Google-Smtp-Source: ABhQp+S5uUV17qCrMDl8kA/SveCOsSuMo8ZR/i/EcqLqZzaz7M+gU/PDwny8ItI0DJjv0arm+QCo X-Received: by 10.84.247.129 with SMTP id o1mr15320375pll.6.1509998944604; Mon, 06 Nov 2017 12:09:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1509998944; cv=none; d=google.com; s=arc-20160816; b=rP44BYbvVOxCm67L754lFZi9TQ6yqNo8s67JIEAJCdqWfaNTFhXV+htbVaXI+BkJW/ qPDqQKLCkMwNRX5BF9fbLOzyTQomL8c4CNmtP7KAybYXejQnAd83PMxpfsLqPUqwqG8b ZaIdqEi8zY8SQdV8rx4dDAR+RaQt+stD61Ur7O1Av0Px+eEHyT3EGgmT1GkHPstvFhiZ zRmYk4QMTHf0XcLljnJc/N5PIstMUQS50aHzULSngMDd5E1wJdzNa+9KEyPOepg5hDgf 3FvfNnoRH79NPT/pAIgIYrNAP+GDw+QoPwuk16j/NqETLW3Xc8Uy/p02Ji9VeJfCXqw3 4CgA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:user-agent:message-id:date:subject:cc:mail-followup-to :to:from:delivered-to:sender:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:mailing-list:dkim-signature :domainkey-signature:arc-authentication-results; bh=sZhrkzu4bT/Ik4aOql+IxamF1dsx91zdX/FlH3Tc1tM=; b=d1CfvOHZC8Jhc2l88uv2uFOPrd80scjHnGcqcQr41EbuFt0OmOop0TFFtH++AJwXUU 2fyCszi3G00A/zzj7g/PXCCRYvu/VtjzFAG/YmNDgN5UwmXedifxOm7mVu/vedDc+LUc kZZzOTmtJI7H4LQPzqPFWhJ9/q3HU7mizgy3rk6QnrAaZMEtHh1KMWllSuX+dDWtBSo6 PLv9D5oLrMREtRXNz+UBDM517korZgbh1zYcQ7VdCph3mwBjK5KVPTnyBAqqQinOB6J3 0VBJVrEGqIlOYNk/b1RC1C49OFuQ/bYIRAO5lNuse9OHG2r0pZj2SSnT1/mM7G3RTtLo ppIA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=wgAdoNqn; spf=pass (google.com: domain of gcc-patches-return-466061-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=gcc-patches-return-466061-patch=linaro.org@gcc.gnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id w24si11030136plp.739.2017.11.06.12.09.04 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Nov 2017 12:09:04 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-return-466061-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=wgAdoNqn; spf=pass (google.com: domain of gcc-patches-return-466061-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=gcc-patches-return-466061-patch=linaro.org@gcc.gnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id:mime-version:content-type; q=dns; s=default; b=AVzv/6d5iXGtQjJJIQnQ6BdwZZBqq/FA+kv50APVPn7XJOrNxP dvZVkxZGrvr27W579iIgkB80Y8gOFsJ14Al0KSzLoSCxwxJcel7GRkB38S8TWc42 1r+vhrzC+v3K5draa1eCxxjjditGo6x0wpDutXAO0JEUs1HU4sXegIpvE= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id:mime-version:content-type; s= default; bh=ljATUAeDmzFw5ylAmy5dIqb1GCg=; b=wgAdoNqnhK/En/w7uEPz c+BU79siSu+FnUgSaqGdsciRfIrIJQNdYrEp8tcfCFFyW0kDrSkxbaMQHPPh6uLc aIfSuH+wFCAv/A0103D58i1E8grqGQIxGC13WAnICUulf9WhCcq95irMbd4vggWL xCZwrbQ0uA5pPByQhcKCXoc= Received: (qmail 57792 invoked by alias); 6 Nov 2017 20:08:49 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 57765 invoked by uid 89); 6 Nov 2017 20:08:49 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-11.3 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_SPAM, SPF_PASS autolearn=ham version=3.3.2 spammy=academic, Hx-languages-length:1932 X-HELO: mail-wm0-f51.google.com Received: from mail-wm0-f51.google.com (HELO mail-wm0-f51.google.com) (74.125.82.51) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 06 Nov 2017 20:08:47 +0000 Received: by mail-wm0-f51.google.com with SMTP id p75so16192164wmg.3 for ; Mon, 06 Nov 2017 12:08:47 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:mail-followup-to:cc:subject:date :message-id:user-agent:mime-version; bh=sZhrkzu4bT/Ik4aOql+IxamF1dsx91zdX/FlH3Tc1tM=; b=Q2YYDzKsVclubhaIuX7WnBr0j+FKqImHm/p0AHc94Y28CvwXvfOF7fyS3v6TOHI4xX RnDP6ne/3BLmS+H0aa8iNiwlcv25mPw+gWNQI46BXVuygN4tvhvtYxmZtOBKOAz4EQwi g/0PijAZ+7OzE4wIBisZC0VKrl/vyOgaKzpo20648ic7daoZx0m6tALIiuJWknifiE3b X95mKGxscOjkzf2ewQ5KRSgROeL3NK61iZR1TqT331Cvb9RgxkG+VLr8XsAPpAIP4J39 xllFbbqJJzPYnaWtG2SE0E8WvywzGoAhlkqlICRyu4KqU95p09Dum7xHfDkKlzF34iaT I4GA== X-Gm-Message-State: AJaThX7KNO4pI+P6cPYQMMiFvtVmu2jYNS986W5N2fYaY4M385uoJn4i alMZSpCGE3R6s3YAD7AbAwYq+Q== X-Received: by 10.28.215.4 with SMTP id o4mr6009891wmg.0.1509998925886; Mon, 06 Nov 2017 12:08:45 -0800 (PST) Received: from localhost ([2.25.234.120]) by smtp.gmail.com with ESMTPSA id o80sm8630998wmg.6.2017.11.06.12.08.44 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 06 Nov 2017 12:08:45 -0800 (PST) From: Richard Sandiford To: gcc-patches@gcc.gnu.org Mail-Followup-To: gcc-patches@gcc.gnu.org, richard.earnshaw@arm.com, james.greenhalgh@arm.com, marcus.shawcroft@arm.com, richard.sandiford@linaro.org Cc: richard.earnshaw@arm.com, james.greenhalgh@arm.com, marcus.shawcroft@arm.com Subject: [AArch64] Use aarch64_reg_or_imm instead of nonmemory_operand Date: Mon, 06 Nov 2017 20:08:43 +0000 Message-ID: <87lgjjw4ok.fsf@linaro.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) MIME-Version: 1.0 Some of the shift expanders accepted nonmemory_operands but were only able to handle register_operands or CONST_INTs. This is probably academic without SVE, since we're not likely to see shifts by other types of constant (const_wide_ints, consts, etc). But for SVE, it's possible for a vectorised shift induction to have a CONST_POLY_INT shift amount. This patch makes the expanders use aarch64_reg_or_imm instead. Tested on aarch64-elf and aarch64-linux-gnu. OK to install? Richard 2017-11-06 Richard Sandiford gcc/ * config/aarch64/aarch64.md (ashl3, ashr3, lshr3) (rotr3, rotl3): Use aarch64_reg_or_imm instead of nonmmory_operand. Index: gcc/config/aarch64/aarch64.md =================================================================== --- gcc/config/aarch64/aarch64.md 2017-11-06 19:39:27.183969328 +0000 +++ gcc/config/aarch64/aarch64.md 2017-11-06 20:06:43.298665078 +0000 @@ -3958,7 +3958,7 @@ (define_split (define_expand "3" [(set (match_operand:GPI 0 "register_operand") (ASHIFT:GPI (match_operand:GPI 1 "register_operand") - (match_operand:QI 2 "nonmemory_operand")))] + (match_operand:QI 2 "aarch64_reg_or_imm")))] "" { if (CONST_INT_P (operands[2])) @@ -3994,7 +3994,7 @@ (define_expand "ashl3" (define_expand "rotr3" [(set (match_operand:GPI 0 "register_operand") (rotatert:GPI (match_operand:GPI 1 "register_operand") - (match_operand:QI 2 "nonmemory_operand")))] + (match_operand:QI 2 "aarch64_reg_or_imm")))] "" { if (CONST_INT_P (operands[2])) @@ -4014,7 +4014,7 @@ (define_expand "rotr3" (define_expand "rotl3" [(set (match_operand:GPI 0 "register_operand") (rotatert:GPI (match_operand:GPI 1 "register_operand") - (match_operand:QI 2 "nonmemory_operand")))] + (match_operand:QI 2 "aarch64_reg_or_imm")))] "" { /* (SZ - cnt) % SZ == -cnt % SZ */