History log of /llvm-project/llvm/lib/IR/VectorTypeUtils.cpp (Results 1 – 2 of 2)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-21-init, llvmorg-19.1.7
# f88ef1bd 09-Jan-2025 Benjamin Maxwell <benjamin.maxwell@arm.com>

[LV] Teach LoopVectorizationLegality about struct vector calls (#119221)

This is a split-off from #109833 and only adds code relating to checking
if a struct-returning call can be vectorized.

Th

[LV] Teach LoopVectorizationLegality about struct vector calls (#119221)

This is a split-off from #109833 and only adds code relating to checking
if a struct-returning call can be vectorized.

This initial patch only allows the case where all users of the struct
return are `extractvalue` operations that can be widened.

```
%call = tail call { float, float } @foo(float %in_val)
%extract_a = extractvalue { float, float } %call, 0
%extract_b = extractvalue { float, float } %call, 1
```

Note: The tests require the VFABI changes from #119000 to pass.

show more ...


# 1ee740a7 18-Dec-2024 Benjamin Maxwell <benjamin.maxwell@arm.com>

[VFABI] Add support for vector functions that return struct types (#119000)

This patch updates the `VFABIDemangler` to support vector functions that
return struct types. For example, a vector varia

[VFABI] Add support for vector functions that return struct types (#119000)

This patch updates the `VFABIDemangler` to support vector functions that
return struct types. For example, a vector variant of `sincos` that
returns a vector of sine values and a vector of cosine values within a
struct.

This patch also adds some helpers for vectorizing types (including
struct types). Some of these are used in the `VFABIDemangler`, and
others will be used in subsequent patches, so this patch simply adds
tests for them.

show more ...