[flang] Fix folding of EXPONENT() intrinsic function
authorPeter Klausler <pklausler@nvidia.com>
Thu, 2 Dec 2021 20:34:37 +0000 (12:34 -0800)
committerPeter Klausler <pklausler@nvidia.com>
Sat, 4 Dec 2021 19:23:09 +0000 (11:23 -0800)
commite337dc8bfee0793fdeafd61da3ab658a0822a24c
tree4503e7e74eb33c590ef57b8a737f421c93f7926c
parentf1585a4b47cc9c08c9a4c10058597f4b7468c227
[flang] Fix folding of EXPONENT() intrinsic function

The definition of the EXPONENT() intrinsic function differs by one
from the real arithmetic folding templates concept of an unbiased
exponent, and also needs special handling for zero.  Fix, and add
more tests.

Differential Revision: https://reviews.llvm.org/D115084
flang/include/flang/Evaluate/real.h
flang/test/Evaluate/folding07.f90