aboutsummaryrefslogtreecommitdiff
path: root/libcxx/include/__algorithm/minmax.h
diff options
context:
space:
mode:
authorLukacma <Marian.Lukac@arm.com>2025-09-25 14:39:30 +0100
committerGitHub <noreply@github.com>2025-09-25 14:39:30 +0100
commitc533017bcb576baff4016722d6498c1756e2bc0f (patch)
tree081382ec87c6d36990e6b483e7c44203952d6e95 /libcxx/include/__algorithm/minmax.h
parent2a82e71835f7b2258c42af9ad0ec67b6d007045c (diff)
downloadllvm-c533017bcb576baff4016722d6498c1756e2bc0f.zip
llvm-c533017bcb576baff4016722d6498c1756e2bc0f.tar.gz
llvm-c533017bcb576baff4016722d6498c1756e2bc0f.tar.bz2
[AArch64][GlobalISel] Add codegen for simd fpcvt intrinsics (#157680)
This patch is a first in a series of patches that add codegen support for fcvt instructions that keep the result in 32-bit or 64-bit SIMD&FP registers. For a long time, LLVM primarily generated fpcvt instructions, which store the result in GPRs, resulting in extra moves when the value was used by NEON instructions that operate on SIMD&FP registers. Although patterns existed for generating the SIMD variants, they relied on single-element vector types (such as v1i32 or v1i64) to decide whether the SIMD variant should be selected. This was not useful, because many NEON intrinsics and other LLVM IR operations use scalar types (i32/i64) even though they expect the result to be stored in SIMD&FP registers. This patch is part of a series that addresses this and also adds support for generating these instructions in GlobalISel. To fix this in SelectionDAG, bitcasts of the result to a floating-point type serve as a hint that the SIMD variant of the conversion should be used, rather than relying on single-element vector types. These bitcasts are not currently generated by LLVM, but the goal is to add explicit bitcasts to the inputs and outputs of NEON intrinsics operating on integers in follow-up patches. For GlobalISel, the register bank selection algorithm is used to determine which variant to generate
Diffstat (limited to 'libcxx/include/__algorithm/minmax.h')
0 files changed, 0 insertions, 0 deletions