NCG: Constant folding for some vector simd ops (Issue #25030)
Added some constant folding with SIMD operations. Currently missing a few operations as well as tests, hence the draft. I also would like to modify some of the existing tests in the simd suite, specifically adding the -O2 flag to compilation to trigger the constant folding. The current code does work AFAIK, and all the simd tests pass if you add the -O2 flag to them still. That said, constant folding doesn't end up getting triggered in many of them for one reason or another.
This was done at AmeriHac, and it's my first GHC contribution :) Let me know if there's anything I did wrong - I made this draft MR so I could get eyes on it before I finish implementing everything.