On Tue, Jan 25, 2022 at 08:52:34PM +0100, FX wrote: > > With --disable-multilib, so no -m32 support, I still > > signaling_3.f90 failing. In > > > > ! { dg-do run { xfail { { i?86-*-* x86_64-*-* } && ilp32 } } } > > ! x87 / x86-32 ABI is unsuitable for signaling NaNs > > This just means the test shouldn’t be run on 32-bit Intel. > > Can you run this: > > #include <stdint.h> > #include <stdio.h> > #include "issignaling_fallback.h" > > int main (void) { > long double z; > > z = __builtin_nansl(""); > printf("%d\n", issignaling(z)); > > z = __builtin_nanl(""); > printf("%d\n", issignaling(z)); > } > > compiled with -fsignaling-nans and the issignaling_fallback.h file from > libgfortran? >
% ~/work/x/bin/gcc -o -I. -fsignaling-nans -o z b.c && ./z 0 0 Quickly read issignaling_fallback.h. It seems you're looking for bit that distinguishes snan and qnan. Still need to piece together exactly what the bit manipulation functions are doing. -- Steve