[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