https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84190
--- Comment #1 from Bruno Haible <bruno at clisp dot org> --- It works when I declare ys1, ys2, zs1, zs2 as 'volatile double' instead of 'double'. But I should not be needing to do this, because the only uses of these 4 variables is as arguments to equalfn, which takes 'volatile double *' arguments, which ought to already do the truncation from extended-double format to double format.