[CIR][AArch64] Lower NEON vfms builtins (#207022)
Lower additional AArch64 NEON fused multiply-subtract builtins in CIR.
This covers the ACLE wrappers from section 2.1.1.2.5:
- vfms_f32, vfms_f64, vfmsq_f32, vfmsq_f64
- vfms_lane_f32, vfms_lane_f64, vfmsq_lane_f32, vfmsq_lane_f64
- vfms_laneq_f32, vfms_laneq_f64, vfmsq_laneq_f32, vfmsq_laneq_f64
- vfmss_lane_f32, vfmss_laneq_f32
- vfmsd_lane_f64, vfmsd_laneq_f64
The lowering reuses the existing FMA paths by negating the multiply
operand before emitting llvm.fma. Vector lane forms splat the selected
lane, while scalar lane/laneq forms extract the selected element before
the FMA.
Move the existing ACLE coverage into
clang/test/CodeGen/AArch64/neon/fused-multiply.c and add direct LLVM,
CIR-to-LLVM, and CIR checks. The replaced old-style checks are removed
from the legacy test files.
Part of #185382