Thanks for doing this. Kyrill Tkachov <kyrylo.tkac...@foss.arm.com> writes: > + calc = build_call_expr_internal_loc (input_location, ifn, type, > + 2, mvar, convert (type, val));
(indentation looks off) > diff --git a/gcc/testsuite/gfortran.dg/max_fmaxl_aarch64.f90 > b/gcc/testsuite/gfortran.dg/max_fmaxl_aarch64.f90 > new file mode 100644 > index > 0000000000000000000000000000000000000000..8c8ea063e5d0718dc829c1f5574c5b46040e6786 > --- /dev/null > +++ b/gcc/testsuite/gfortran.dg/max_fmaxl_aarch64.f90 > @@ -0,0 +1,9 @@ > +! { dg-do compile { target aarch64*-*-* } } > +! { dg-options "-O2 -fdump-tree-optimized" } > + > +subroutine fool (a, b, c, d, e, f, g, h) > + real (kind=16) :: a, b, c, d, e, f, g, h > + a = max (a, b, c, d, e, f, g, h) > +end subroutine > + > +! { dg-final { scan-tree-dump-times "__builtin_fmaxl " 7 "optimized" } } > diff --git a/gcc/testsuite/gfortran.dg/min_fminl_aarch64.f90 > b/gcc/testsuite/gfortran.dg/min_fminl_aarch64.f90 > new file mode 100644 > index > 0000000000000000000000000000000000000000..92368917fb48e0c468a16d080ab3a9ac842e01a7 > --- /dev/null > +++ b/gcc/testsuite/gfortran.dg/min_fminl_aarch64.f90 > @@ -0,0 +1,9 @@ > +! { dg-do compile { target aarch64*-*-* } } > +! { dg-options "-O2 -fdump-tree-optimized" } > + > +subroutine fool (a, b, c, d, e, f, g, h) > + real (kind=16) :: a, b, c, d, e, f, g, h > + a = min (a, b, c, d, e, f, g, h) > +end subroutine > + > +! { dg-final { scan-tree-dump-times "__builtin_fminl " 7 "optimized" } } Do these still pass? I wouldn't have expected us to use __builtin_fmin* and __builtin_fmax* now. It would be good to have tests that we use ".FMIN" and ".FMAX" for kind=4 and kind=8 on AArch64, since that's really the end goal here. Thanks, Richard