[flang] Support lowering intrinsic `selected_real_kind` for variables
authorPeixin Qiao <qiaopeixin@huawei.com>
Mon, 25 Jul 2022 11:36:14 +0000 (19:36 +0800)
committerPeixin Qiao <qiaopeixin@huawei.com>
Mon, 25 Jul 2022 11:36:14 +0000 (19:36 +0800)
commit57e3fa38154309308b928dc13ef1181e7eb3e19a
tree4bd526174358b5b065ba6d2ae2dcd14028b316ac
parent5fde7851863618739386d7092be1030571e940b5
[flang] Support lowering intrinsic `selected_real_kind` for variables

As Fortran 2018 16.9.170, the argument of `selected_real_kind` is integer
scalar, and result is default integer scalar. The constant expression in
this intrinsic has been supported by folding the constant expression.
This supports lowering this intrinsic for variables using runtime.

Reviewed By: Jean Perier

Differential Revision: https://reviews.llvm.org/D130183
flang/include/flang/Optimizer/Builder/Runtime/Numeric.h
flang/include/flang/Runtime/numeric.h
flang/lib/Lower/IntrinsicCall.cpp
flang/lib/Optimizer/Builder/Runtime/Numeric.cpp
flang/runtime/numeric.cpp
flang/test/Lower/Intrinsics/selected_real_kind.f90 [new file with mode: 0644]
flang/unittests/Runtime/Numeric.cpp