Displaying 4 results from an estimated 4 matches for "vectorized_foo".
Did you mean:
vectorized_for
2019 Jun 24
3
RFC: Interface user provided vector functions with the vectorizer.
...// Type 1
typedef _Complex int S;
// Type 2
typedef struct x{
int a;
int b;
} S;
// Type 3
typedef uint64_t S;
S foo(S a, S b) {
return ...;
}
On AArch64, the correspondent vector function signature in the three cases would be (for 2-lane unmasked vectorization):
// Type 1:
<4 x int> vectorized_foo(<4 x int>, <4 x int>)
// Type 2:
%a = type struct {I 32, i32}
<2 x %a* > vectorized_foo(<2 x %a*> , <2 x %a*>)
// Type 3:
<2 x i64> vectorized_foo(<2 x i64>, <2 x i64)
To make sure that the vectorizer knows how to map the scalar function parameters...
2019 Jun 24
2
RFC: Interface user provided vector functions with the vectorizer.
...// Type 1
typedef _Complex int S;
// Type 2
typedef struct x{
int a;
int b;
} S;
// Type 3
typedef uint64_t S;
S foo(S a, S b) {
return ...;
}
On AArch64, the correspondent vector function signature in the three cases would be (for 2-lane unmasked vectorization):
// Type 1:
<4 x int> vectorized_foo(<4 x int>, <4 x int>)
// Type 2:
%a = type struct {I 32, i32}
<2 x %a* > vectorized_foo(<2 x %a*> , <2 x %a*>)
// Type 3:
<2 x i64> vectorized_foo(<2 x i64>, <2 x i64)
To make sure that the vectorizer knows how to map the scalar function parameters...
2019 Jun 24
2
RFC: Interface user provided vector functions with the vectorizer.
...b;
> } S;
>
> // Type 3
> typedef uint64_t S;
>
> S foo(S a, S b) {
> return ...;
> }
>
>
> On AArch64, the correspondent vector function signature in the three cases would be (for 2-lane unmasked vectorization):
>
> // Type 1:
>
> <4 x int> vectorized_foo(<4 x int>, <4 x int>)
>
> // Type 2:
>
> %a = type struct {I 32, i32}
>
> <2 x %a* > vectorized_foo(<2 x %a*> , <2 x %a*>)
>
> // Type 3:
>
> <2 x i64> vectorized_foo(<2 x i64>, <2 x i64)
>
> To make sure that th...
2019 Jun 24
4
RFC: Interface user provided vector functions with the vectorizer.
@Xinmin, Saito: If Clang/the frontend generates the version there is no problem, or is there? The frontend knows about the original source type and it's ABI specific lowering already.
@Francesco, we should even consider putting the generating capabilities outside of the OpenMP code generation (in the future). That could allow easier reuse by other frontends.
Get Outlook for