Files
clang-p2996/flang/test/Lower/Intrinsics/random.f90
2022-03-18 09:25:14 +01:00

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