Hello. I don't know if it is a gcc or binutils problem. I have different results for `expl' function depending on the argument was variable or literal: long double c, r1, r2; r1 = expl(-1); c = -1; r2 = expl(c); In this example r1 and r2 differ in the lower bits. The entire example is here: https://godbolt.org/z/xqn4bd. The llvm does not have such a problem. Kind regards, Aleksey Markin