41 lines
1.6 KiB
Fortran
41 lines
1.6 KiB
Fortran
! RUN: bbc -emit-fir %s -o - | FileCheck %s
|
|
|
|
! CHECK-LABEL: func @_QPrandom_test
|
|
subroutine random_test
|
|
! CHECK-DAG: [[ss:%[0-9]+]] = fir.alloca {{.*}}random_testEss
|
|
! CHECK-DAG: [[vv:%[0-9]+]] = fir.alloca {{.*}}random_testEvv
|
|
integer ss, vv(40)
|
|
! CHECK-DAG: [[rr:%[0-9]+]] = fir.alloca {{.*}}random_testErr
|
|
! CHECK-DAG: [[aa:%[0-9]+]] = fir.alloca {{.*}}random_testEaa
|
|
real rr, aa(5)
|
|
! CHECK: fir.call @_FortranARandomInit(%true{{.*}}, %false{{.*}}) : (i1, i1) -> none
|
|
call random_init(.true., .false.)
|
|
! CHECK: [[box:%[0-9]+]] = fir.embox [[ss]]
|
|
! CHECK: [[argbox:%[0-9]+]] = fir.convert [[box]]
|
|
! CHECK: fir.call @_FortranARandomSeedSize([[argbox]]
|
|
call random_seed(size=ss)
|
|
print*, 'size: ', ss
|
|
! CHECK: fir.call @_FortranARandomSeedDefaultPut() : () -> none
|
|
call random_seed()
|
|
! CHECK: [[box:%[0-9]+]] = fir.embox [[rr]]
|
|
! CHECK: [[argbox:%[0-9]+]] = fir.convert [[box]]
|
|
! CHECK: fir.call @_FortranARandomNumber([[argbox]]
|
|
call random_number(rr)
|
|
print*, rr
|
|
! CHECK: [[box:%[0-9]+]] = fir.embox [[vv]]
|
|
! CHECK: [[argbox:%[0-9]+]] = fir.convert [[box]]
|
|
! CHECK: fir.call @_FortranARandomSeedGet([[argbox]]
|
|
call random_seed(get=vv)
|
|
! print*, 'get: ', vv(1:ss)
|
|
! CHECK: [[box:%[0-9]+]] = fir.embox [[vv]]
|
|
! CHECK: [[argbox:%[0-9]+]] = fir.convert [[box]]
|
|
! CHECK: fir.call @_FortranARandomSeedPut([[argbox]]
|
|
call random_seed(put=vv)
|
|
print*, 'put: ', vv(1:ss)
|
|
! CHECK: [[box:%[0-9]+]] = fir.embox [[aa]]
|
|
! CHECK: [[argbox:%[0-9]+]] = fir.convert [[box]]
|
|
! CHECK: fir.call @_FortranARandomNumber([[argbox]]
|
|
call random_number(aa)
|
|
print*, aa
|
|
end
|
|
|