On Wed, Apr 15, 2015 at 01:18:36PM +0100, Richard Earnshaw wrote:
> 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.

Perhaps just
  if (<CODE> == LSHIFTRT)
    {
?

        Jakub

Reply via email to