This PR removes an unneeded extract element instruction from codegen, along with the variable that captured that instruction's return value.
This PR adds the normalize intrinsic and an HLSL function that uses it. The SPIRV backend is also implemented. Used https://github.com/llvm/llvm-project/pull/101256 as a reference, along with https://github.com/llvm/llvm-project/pull/102243 Fixes https://github.com/llvm/llvm-project/issues/99139