Currently we only CSE constrained FP intrinsics in the default floating point environment.
This patch adds support for CSE when exception behavior is "maytrap". No CSE of constrained intrinsics will happen across a function call or other unsafe event. Since any function call can change the floating point status register, the restrictions on exception behavior are required.
clang-format: please reformat the code