differences, why cris-elf sees the (raw move) ref-all
alternative instead of (call to __builtin_)memcpy, but since the
test-case is expected to allow for it, and the final assembly
looks ok (__builtin_memcpy-matching targets expanded to raw
insns as well) I guess that's ok.

> 2010-08-17  Richard Guenther  <rguenther@suse.de>
> 
> 	PR testsuite/45266
> 	* gfortran.dg/array_memcpy_3.f90: Adjust pattern.
> 
> Index: gcc/testsuite/gfortran.dg/array_memcpy_3.f90
> ===================================================================
> --- gcc/testsuite/gfortran.dg/array_memcpy_3.f90	(revision 163281)
> +++ gcc/testsuite/gfortran.dg/array_memcpy_3.f90	(working copy)
> @@ -11,5 +11,5 @@ subroutine bar(x)
>    x = (/ 3, 1, 4, 1 /)
>  end subroutine
>  
> -! { dg-final { scan-tree-dump-times "memcpy|(ref-all.*ref-all)" 2 "original" } }
> +! { dg-final { scan-tree-dump-times "memcpy|ref-all.*ref-all" 2 "original" } }
>  ! { dg-final { cleanup-tree-dump "original" } }

Follow-up fix committed as obvious (after verifying on cris-elf
and native x86_64-guess-what) after the following tclsh session
(I observed the same behavior for tcl-8.4).

gcc/testsuite:
	PR testsuite/45545
	* gfortran.dg/array_memcpy_3.f90: Correct pattern for
	ref-all-matching targets.

Index: gfortran.dg/array_memcpy_3.f90
===================================================================
--- gfortran.dg/array_memcpy_3.f90	(revision 163868)
+++ gfortran.dg/array_memcpy_3.f90	(working copy)
@@ -11,5 +11,5 @@ subroutine bar(x)
   x = (/ 3, 1, 4, 1 /)
 end subroutine
 
-! { dg-final { scan-tree-dump-times "memcpy|ref-all.*ref-all" 2 "original" } }
+! { dg-final { scan-tree-dump-times "memcpy|ref-all\[^\\n\]*ref-all" 2 "original" } }
 ! { dg-final { cleanup-tree-dump "original" } }
