This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [AArch64] Fix SIMD predicate


On 03/31/16 04:52, James Greenhalgh wrote:
On Wed, Mar 30, 2016 at 11:18:27AM -0500, Evandro Menezes wrote:
    Add scalar 0.0 to the aarch64_simd_reg_or_zero predicate.

    2016-03-30  Evandro Menezes  <e.menezes@samsung.com>

         * gcc/config/aarch64/predicates.md
         (aarch64_simd_reg_or_zero predicate): Add the "const_double"
    constraint.


It seems to me that the aarch64_simd_reg_or_zero should also handle
the scalar constant 0.0 as well.
It took me an extra few minutes to figure out why this patch was correct - a
more detailed description of what the code-gen issue this was intended to
fix would have helped. The only pattern I can see for which this matters
is aarch64_cm<optab><mode> for the SF and DF modes. Clearly the predicate
is too tight here, and the relaxation you propose is correct.

I'm sorry. Indeed, I meant this change for that very pattern for the scalar FP version, since it's the only instance when this predicate is used along with the constraint Y. Without this patch, this constraint never matches.

OK to commit?
OK, and low-risk enough to take now.

Bootstrapped and checked on aarch64-unknown-linux-gnu. Committed as r234685.

Thank you,

--
Evandro Menezes


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]