[flang-commits] [flang] [flang] Modifications to ieee floating point environment procedures (PR #121949)
Rainer Orth via flang-commits
flang-commits at lists.llvm.org
Mon Jan 13 05:14:48 PST 2025
rorth wrote:
Thanks. This way, I again get clean test results on all four targets tested.
I tried reviving the last versions of `ieee_femodes.f90` and `ieee_festatus.f90`, adding explicit `-target x86_64-unknown-linux-gnu` args. This way, they **do** `PASS` on both `x86_64-pc-linux-gnu` and `sparc64-unknown-linux-gnu`, but `FAIL`
on `amd64-pc-solaris2.11` and `sparcv9-sun-solaris2.11` with `IntrinsicCall.cpp:4507: not yet implemented: intrinsic module procedure: ieee_get_status`. This is sort of unexpected: when targeting Linux, the tests should `PASS` on non-Linux hosts. I believe the code in `IntrinsicCall.cpp:IntrinsicLibrary::genIeeeGetOrSetModesOrStatus` might be confused. Right now, by checking `__GLIBC_USE_IEC_60559_BFP_EXT` it checks a **host** property, while the existance of `fe[gs]etmode/fe[gs]etenv` is a property of the **target** system. So there may well lurk a fundamental issue here.
But as you say, it's unclear what equivalents to those TS 18661-1:2014 functions one could use (if host compiler needs to actually call them, not just the runtime), and I fully understand that you cannot justify investigating other systems.
https://github.com/llvm/llvm-project/pull/121949
More information about the flang-commits
mailing list