[all-commits] [llvm/llvm-project] fbb37e: [AArch64] Add an all-in-one histogram intrinsic
Graham Hunter via All-commits
all-commits at lists.llvm.org
Mon May 13 03:35:50 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: fbb37e960616efcf7cd5c1ebbe95f75c65d565dc
https://github.com/llvm/llvm-project/commit/fbb37e960616efcf7cd5c1ebbe95f75c65d565dc
Author: Graham Hunter <graham.hunter at arm.com>
Date: 2024-05-13 (Mon, 13 May 2024)
Changed paths:
M llvm/docs/LangRef.rst
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/include/llvm/CodeGen/ISDOpcodes.h
M llvm/include/llvm/CodeGen/SelectionDAG.h
M llvm/include/llvm/CodeGen/SelectionDAGNodes.h
M llvm/include/llvm/IR/Intrinsics.td
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.h
M llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp
A llvm/test/CodeGen/AArch64/neon-scalarize-histogram.ll
A llvm/test/CodeGen/AArch64/sve2-histcnt.ll
Log Message:
-----------
[AArch64] Add an all-in-one histogram intrinsic
Based on discussion from
https://discourse.llvm.org/t/rfc-vectorization-support-for-histogram-count-operations/74788
Current interface is:
llvm.experimental.histogram(<vecty> ptrs, <intty> inc_amount, <vecty> mask)
The integer type used by 'inc_amount' needs to match the type of the buckets in memory.
The intrinsic covers the following operations:
* Gather load
* histogram on the elements of 'ptrs'
* multiply the histogram results by 'inc_amount'
* add the result of the multiply to the values loaded by the gather
* scatter store the results of the add
Supports lowering to histcnt instructions for AArch64 targets, and scalarization for all others at present.
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