https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106832

--- Comment #24 from Iain Buclaw <ibuclaw at gdcproject dot org> ---
(In reply to Peter Bergner from comment #22)
> (In reply to Peter Bergner from comment #21)
> > For the record, this is what I'm testing with:
> 
> So we get farther, but ICE again at:
> /home/bergner/gcc/gcc-fsf-mainline-lang-D/libphobos/src/std/math/exponential.
> d:1104:9: error: static assert:  "Not implemented for this architecture"
>  1104 |         static assert(0, "Not implemented for this architecture");
>       |         ^
> /home/bergner/gcc/gcc-fsf-mainline-lang-D/libphobos/src/std/math/exponential.
> d:981:19: note: instantiated from here: ‘expImpl!real’
>   981 |     return expImpl(x);
>       |                   ^
> 
> Looking at expImpl(), it has implementations for all of the float types
> except for IBM128.  Maybe just need to add support for that???

I'd imagine all static asserts would be hit, so a lot more than that - floor,
tan, sin, cos, pow, etc... - some of which are not exactly trivial to implement
for the IBM format (I've looked at it on a couple occasions over the last
decade).

std/math/algebraic.d:696:            static assert(0);
std/math/exponential.d:1104:        static assert(0, "Not implemented for this
architecture");
std/math/exponential.d:1241:            static assert(0, "No exp() tests for
real type!");
std/math/exponential.d:1514:        static assert(0);
std/math/exponential.d:1590:        static assert(0, "no coefficients for
expm1()");
std/math/exponential.d:1906:        static assert(0);
std/math/exponential.d:1976:        static assert(0, "no coefficients for
exp2()");
std/math/exponential.d:2804:    else static assert(false, "Floating point type
real not supported");
std/math/hardware.d:764:        static assert(false, "Not implemented for this
architecture");
std/math/hardware.d:879:        static assert(false, "Not implemented for this
architecture");
std/math/hardware.d:896:            static assert(false, "Not implemented for
this architecture");
std/math/operations.d:925:        static assert(false, "Not implemented for
this architecture");
std/math/operations.d:1792:            static assert(false, "Floating point
type `" ~ F.realFormat ~ "` not supported.");
std/math/package.d:418:            static assert(false, "No traits support for
" ~ T.stringof);
std/math/package.d:482:        static assert(false, "No traits support for " ~
T.stringof);
std/math/rounding.d:698:            static assert(false, "real type not
supported by lrint()");
std/math/rounding.d:953:        static assert(false, "Not implemented for this
architecture");
std/math/traits.d:305:        static assert(false, "Not implemented for this
architecture");
std/math/trigonometry.d:305:        static assert(0);
std/math/trigonometry.d:381:        static assert(0, "no coefficients for
tan()");
std/math/trigonometry.d:758:        static assert(0, "no coefficients for
atan()");

Reply via email to