2 ! { dg-options "-fdump-tree-original" }
3 ! { dg-require-visibility "" }
6 ! MERGE was not properly compile-time simplified
8 ! Contributed by Bill Long
13 integer, parameter :: int32
= 4
18 integer,private
,parameter :: dik
= kind(0)
19 type(MPI_Datatype
),parameter,private
:: MPIx_I4
= MPI_Datatype( 1275069467)
20 type(MPI_Datatype
),parameter,private
:: MPIx_I8
= MPI_Datatype( 1275070491)
21 type(MPI_Datatype
),parameter :: MPI_INTEGER
= merge(MPIx_I4
, MPIx_I8
, &
26 check1
= MPI_INTEGER
%i
32 integer, parameter :: int32
= 4
37 integer,private
,parameter :: dik
= kind(0)
38 type(MPI_Datatype
),parameter,private
:: MPIx_I4
= MPI_Datatype( 1275069467)
39 type(MPI_Datatype
),parameter,private
:: MPIx_I8
= MPI_Datatype( 1275070491)
40 type(MPI_Datatype
),parameter :: MPI_INTEGER(1) = merge([MPIx_I4
], [MPIx_I8
], &
45 check2
= MPI_INTEGER(1)%i
== 1275069467
51 character(len
=3) :: one
, two
, three
52 logical, parameter :: true
= .true
.
53 three
= merge (one
, two
, true
)
56 ! { dg-final { scan-tree-dump-times "check1 = 1275069467;" 1 "original" } }
57 ! { dg-final { scan-tree-dump-times "check2 = 1;" 1 "original" } }
58 ! { dg-final { scan-tree-dump-times "__builtin_memmove ..void .. &three, .void .. &one, 3.;" 1 "original" } }