Hi! I'd like to ping this patch, without or with the additional redundant (match_test "op == const0_rtx") line removal.
> Bootstrapped/regtested on aarch64-linux (scratch Fedora gcc 8 package build > with the patch applied), ok for trunk? > > 2018-02-27 Jakub Jelinek <ja...@redhat.com> > > PR fortran/84565 > * config/aarch64/predicates.md (aarch64_simd_reg_or_zero): Use > aarch64_simd_or_scalar_imm_zero rather than aarch64_simd_imm_zero. > > * gfortran.dg/pr84565.f90: New test. > > --- gcc/config/aarch64/predicates.md.jj 2018-02-06 13:13:06.305751221 > +0100 > +++ gcc/config/aarch64/predicates.md 2018-02-26 16:30:01.902195208 +0100 > @@ -395,7 +395,7 @@ (define_predicate "aarch64_simd_reg_or_z > (and (match_code "reg,subreg,const_int,const_double,const,const_vector") > (ior (match_operand 0 "register_operand") > (match_test "op == const0_rtx") > - (match_operand 0 "aarch64_simd_imm_zero")))) > + (match_operand 0 "aarch64_simd_or_scalar_imm_zero")))) > > (define_predicate "aarch64_simd_struct_operand" > (and (match_code "mem") > --- gcc/testsuite/gfortran.dg/pr84565.f90.jj 2018-02-26 16:32:49.912271950 > +0100 > +++ gcc/testsuite/gfortran.dg/pr84565.f90 2018-02-26 16:31:15.423223943 > +0100 > @@ -0,0 +1,7 @@ > +! PR fortran/84565 > +! { dg-do compile { target aarch64*-*-* } } > +! { dg-options "-mlow-precision-sqrt -funsafe-math-optimizations" } > +subroutine mysqrt(a) > + real(KIND=KIND(0.0D0)) :: a > + a=sqrt(a) > +end subroutine Jakub