https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115823
--- Comment #7 from Gaius Mulley <gaius at gcc dot gnu.org> ---
I'm probably not testing in the same way as you - but I don't see the call to
isnormal with the following configure/build.
$ ~/opt/bin/s390x-linux-gm2 -v
Target: s390x-linux
Configured with: ../configure --prefix=/home/gaius/opt --enable-languages=m2
--target=s390x-linux
gcc/testsuite/gm2/builtins/run/pass$ ~/opt/bin/s390x-linux-gm2
-I$HOME/opt/lib/gcc/x86_64-pc-linux-gnu/15.0.0/m2/m2pim -S -c testisnormal.mod
-fdump-tree-all
$ grep brasl testisnormal.s
brasl %r14,test@PLT
brasl %r14,printf@PLT
brasl %r14,printf@PLT
brasl %r14,exit@PLT
brasl %r14,printf@PLT
brasl %r14,printf@PLT
brasl %r14,assert@PLT
...
$ cat testisnormal.mod.006t.gimple
PROC test ()
...
_T44 = 1;
result = _T44;
_T45 = "isnormal (1.0) = %d\n";
_T46 = printf (_T45, result);
if (result != 1) goto .L145; else goto <D.1799>;
<D.1799>:
_T47 = 1;
goto .L146;
.L145:
_T47 = 0;
.L146:
_T48._m2_contents = "isnormal (1.0) # 1";
_T51 = 18;
_T48._m2_high_1 = _T51;
assert (_T47, _T48);
...
Perhaps my setup is different to yours?