make @fastmath mirror how lowering applies literal_pow (#53819)
The expressions `a^x` and `@fastmath a^x` are now producing equivalent
results (apart from floating point accuracy) in the case of literal
integer `x`.
The logic in the `fastmath` macro, trying to mimic the behaviour of the
compiler is fixed.
Fixes #53817
---------
Co-authored-by: Oscar Smith <oscardssmith@gmail.com>