diff options
| author | Graham Hunter <graham.hunter@arm.com> | 2024-05-13 11:35:28 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-13 11:35:28 +0100 |
| commit | fbb37e960616efcf7cd5c1ebbe95f75c65d565dc (patch) | |
| tree | da4cad88f9dd0d067a94634e3fd659c4a347edf4 /llvm/unittests/ADT/APIntTest.cpp | |
| parent | 7eeccc1430eeaa434724522945245ba21c97ac57 (diff) | |
| download | llvm-fbb37e960616efcf7cd5c1ebbe95f75c65d565dc.zip llvm-fbb37e960616efcf7cd5c1ebbe95f75c65d565dc.tar.gz llvm-fbb37e960616efcf7cd5c1ebbe95f75c65d565dc.tar.bz2 | |
[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.
Diffstat (limited to 'llvm/unittests/ADT/APIntTest.cpp')
0 files changed, 0 insertions, 0 deletions
