[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