On 14/04/15 22:41, Kugan wrote:
This patch uses clobber with match_scratch instead of earlyclobber for
aarch64_lshr_sisd_or_int_<mode>3 so that RA can have more freedom in
selecting suitable register, as discussed in
http://thread.gmane.org/gmane.comp.gcc.patches/336162 and reported in
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65139.

This is based on Maxim's patch. I have bootstrapped and regression
tested on aarch64-linux-gnu with no new regressions. Is this OK for trunk?

Thanks,
Kugan

gcc/ChangeLog:

2015-04-15  Kugan Vivekanandarajah  <kug...@linaro.org>
            Maxim Kuvyrkov  <maxim.kuvyr...@linaro.org>

        PR target/65139
        * config/aarch64/aarch64.md (<optab><mode>3): Expand lshr with
         gen_aarch64_lshr_sisd_or_int_<mode>3.
        (*aarch64_lshr_sisd_or_int_<mode>3): Rename to
         aarch64_lshr_sisd_or_int_<mode>3 and use clobber with
         match_scratch instead of early clobber.


+    if (strcmp ("<optab>", "lshr") == 0)
+      {


This can't be the best way to match the operation type. Yes, I know that the comparison is a compile time invariant, but there must be an attribute of optab (or one can be created for it) that would make the test trivial and not rely on the compiler optimizing the strcmp away.

R.

Reply via email to