This Commit refactors the conversion of Math / Arith operations to NVVM into a separate Pass called MathToNVVM. This was done to allow to support the lowering of Math / Arith operations in flang. This mirrors what was done in MathToROCDL. This is PR (1/2) to address https://github.com/llvm/llvm-project/issues/147023 and https://github.com/llvm/llvm-project/issues/179347. PR(2/2) that adds this pass to flang is here: https://github.com/llvm/llvm-project/pull/180060