This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: move a * (1 << b) -> a << b pattern from fold-const.c to match.pd
- From: Marc Glisse <marc dot glisse at inria dot fr>
- To: Prathamesh Kulkarni <prathamesh dot kulkarni at linaro dot org>
- Cc: Richard Biener <rguenther at suse dot de>, gcc Patches <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 7 Jul 2015 07:47:50 +0200 (CEST)
- Subject: Re: move a * (1 << b) -> a << b pattern from fold-const.c to match.pd
- Authentication-results: sourceware.org; auth=none
- References: <CAAgBjM=Q5NMk39JTCPKiD8MPMxS5yqxwzmSa_SLbTvNVLQ-qXQ at mail dot gmail dot com>
- Reply-to: gcc-patches at gcc dot gnu dot org
On Tue, 7 Jul 2015, Prathamesh Kulkarni wrote:
+/* a * (1 << b) -> a << b */
+(simplify
+ (mult:c @a (lshift integer_onep @b))
+ (if (!FLOAT_TYPE_P (type))
+ (lshift @a @b)))
The test FLOAT_TYPE_P seems unnecessary, 'type' is (up to a useless
conversion) the result of a shift, so integer, fixed-point or vector. Its
lhs is integer_onep, which rules out fixed-point.
(I think it is the first pattern using @letter and not @number)
--
Marc Glisse