[all-commits] [llvm/llvm-project] 4a8c5d: [CIR][AArch64] Lower vfmaq_lane_v and vfma_laneq_v...

Yair Ben Avraham via All-commits all-commits at lists.llvm.org
Wed Jun 3 07:45:25 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 4a8c5d231227d7c6c61160e5be25f4626cdabbb8
      https://github.com/llvm/llvm-project/commit/4a8c5d231227d7c6c61160e5be25f4626cdabbb8
  Author: Yair Ben Avraham <yairba at protonmail.com>
  Date:   2026-06-03 (Wed, 03 Jun 2026)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
    M clang/test/CodeGen/AArch64/neon-2velem.c
    M clang/test/CodeGen/AArch64/neon-scalar-x-indexed-elem.c
    M clang/test/CodeGen/AArch64/neon/fused-multiple-fullfp16.c
    M clang/test/CodeGen/AArch64/neon/fused-multiply.c
    M clang/test/CodeGen/AArch64/v8.2a-neon-intrinsics.c

  Log Message:
  -----------
  [CIR][AArch64] Lower vfmaq_lane_v and vfma_laneq_v (#197084)

Lower BI__builtin_neon_vfmaq_lane_v and BI__builtin_neon_vfma_laneq_v in
CIR.

This handles the covered vfmaq_lane_* and vfma_laneq_* ACLE wrappers by
bitcasting operands to the expected types, selecting the requested lane
from the lane source operand, and emitting fma through
emitCallMaybeConstrainedBuiltin.

For vfmaq_lane_v, the selected lane is splatted with emitNeonSplat.
For vfma_laneq_v, the lane is selected from the wider lane source; the
f64 case extracts the scalar lane before emitting scalar fma.

Neighboring scalar lane/laneq wrappers and other out-of-scope forms
remain explicit NYI cases.

Tests are moved into the existing CIR-enabled fused multiply files under
clang/test/CodeGen/AArch64/neon/, reusing upstream LLVM checks where
possible and adding CIR coverage for lane selection and fma lowering.

Part of #185382
Follow-up to #195602



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list