Exponentiation of floats

Changing this to

@assume_effects :consistent @inline function two_mul(x::Float64, y::Float64)
    if Core.Intrinsics.have_fma(Float64)
        xy = x*y
        return xy, fma(x, y, -xy)
    end
    # return Base.twomul(x,y)
end

and running under Revise seems to mostly fix the regression (~5% slower now compared to 50-100% slower). Interestingly, the regression doesn’t reappear in the same REPL session if I revert the change. I see the same result from test() on 1.9, 1.10 and on 1.10 with the change.

julia> versioninfo()
Julia Version 1.10.0-rc1
Commit 5aaa948543 (2023-11-03 07:44 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: 16 × AMD Ryzen 7 5700U with Radeon Graphics
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, znver2)
  Threads: 1 on 16 virtual cores