Displaying 10 results from an estimated 10 matches for "float64x2_t".
2019 Jun 03
2
[cfe-dev] [RFC] Expose user provided vector function for auto-vectorization.
...ction ABI provides all the information
> about the shape and properties of the vector function, I propose the
> approach exemplified in the following code:
>
>
> ```
> // AArch64 Advanced SIMD compilation
> double foo(double) __attribute__(simd_variant(“nN2v”,”neon_foo”));
> float64x2_t neon_foo(float64x2_t x) {…}
>
> // x86 SSE compilation
> double foo(double) __attribute__(simd_variant(“aN2v”,”sse_foo”));
> __m128 sse_foo(__m128 x) {…}
> ```
>
> The attribute would use the “core” tokens of the mangled names (without
> _ZGV prefix and the scalar function n...
2019 Jun 11
2
RFC: Interface user provided vector functions with the vectorizer.
...functionality.
# Examples
## Example 1
Exposing an Advanced SIMD vector function when targeting Advanced SIMD
in AArch64.
```
double foo_01(double Input) __attribute__(clang_declare_simd_variant(“vector_foo_01", simdlen(2), notinbranch, isa("simd"));
// Advanced SIMD version
float64x2_t vector_foo_01(float64x2_t VectorInput);
```
The resulting IR attribute is:
```
attribute #0 = {vector-abi-variant="_ZGVnN2v_foo_01(vector_foo_01)"}
```
## Example 2
Exposing an Advanced SIMD vector function when targeting Advanced SIMD
in AArch64, but with the wrong signature. The use...
2019 Jun 17
3
RFC: Interface user provided vector functions with the vectorizer.
...1
>
> Exposing an Advanced SIMD vector function when targeting Advanced SIMD
> in AArch64.
>
> ```
> double foo_01(double Input) __attribute__(clang_declare_simd_variant(“vector_foo_01", simdlen(2), notinbranch, isa("simd"));
>
> // Advanced SIMD version
> float64x2_t vector_foo_01(float64x2_t VectorInput);
> ```
>
> The resulting IR attribute is:
>
> ```
> attribute #0 = {vector-abi-variant="_ZGVnN2v_foo_01(vector_foo_01)"}
> ```
>
> ## Example 2
>
> Exposing an Advanced SIMD vector function when targeting Advanced SIM...
2019 Jun 24
2
RFC: Interface user provided vector functions with the vectorizer.
...geting Advanced SIMD
>> > in AArch64.
>> >
>> > ```
>> > double foo_01(double Input) __attribute__(clang_declare_simd_variant(“vector_foo_01", simdlen(2), notinbranch, isa("simd"));
>> >
>> > // Advanced SIMD version
>> > float64x2_t vector_foo_01(float64x2_t VectorInput);
>> > ```
>> >
>> > The resulting IR attribute is:
>> >
>> > ```
>> > attribute #0 = {vector-abi-variant="_ZGVnN2v_foo_01(vector_foo_01)"}
>> > ```
>> >
>> > ## Example...
2019 Jun 21
2
RFC: Interface user provided vector functions with the vectorizer.
...n targeting Advanced
> > SIMD in AArch64.
> >
> > ```
> > double foo_01(double Input)
> > __attribute__(clang_declare_simd_variant(“vector_foo_01",
> > simdlen(2), notinbranch, isa("simd"));
> >
> > // Advanced SIMD version
> > float64x2_t vector_foo_01(float64x2_t VectorInput); ```
> >
> > The resulting IR attribute is:
> >
> > ```
> > attribute #0 = {vector-abi-variant="_ZGVnN2v_foo_01(vector_foo_01)"}
> > ```
> >
> > ## Example 2
> >
> > Exposing an Advanced SIM...
2019 Jun 03
6
[cfe-dev] [RFC] Expose user provided vector function for auto-vectorization.
...the mangling scheme of the Vector Function ABI provides all the information about the shape and properties of the vector function, I propose the approach exemplified in the following code:
```
// AArch64 Advanced SIMD compilation
double foo(double) __attribute__(simd_variant(“nN2v”,”neon_foo”));
float64x2_t neon_foo(float64x2_t x) {…}
// x86 SSE compilation
double foo(double) __attribute__(simd_variant(“aN2v”,”sse_foo”));
__m128 sse_foo(__m128 x) {…}
```
The attribute would use the “core” tokens of the mangled names (without _ZGV prefix and the scalar function name postfix) to describe the vector fu...
2019 Jun 24
4
RFC: Interface user provided vector functions with the vectorizer.
...when targeting Advanced
> > SIMD in AArch64.
> >
> > ```
> > double foo_01(double Input)
> > __attribute__(clang_declare_simd_variant(“vector_foo_01",
> > simdlen(2), notinbranch, isa("simd"));
> >
> > // Advanced SIMD version
> > float64x2_t vector_foo_01(float64x2_t VectorInput); ```
> >
> > The resulting IR attribute is:
> >
> > ```
> > attribute #0 = {vector-abi-variant="_ZGVnN2v_foo_01(vector_foo_01)"}
> > ```
> >
> > ## Example 2
> >
> > Exposing an Advanced SIM...
2019 Jun 24
2
RFC: Interface user provided vector functions with the vectorizer.
>Thank you everybody for their input, and for your patience. This is proving harder than expected! :)
Thank you for doing the hard part of the work.
Hideki
-----Original Message-----
From: Francesco Petrogalli [mailto:Francesco.Petrogalli at arm.com]
Sent: Monday, June 24, 2019 11:26 AM
To: Saito, Hideki <hideki.saito at intel.com>
Cc: Doerfert, Johannes <jdoerfert at anl.gov>;
2019 Jun 07
2
[RFC] Expose user provided vector function for auto-vectorization.
...the mangling scheme of the Vector Function ABI provides all the information about the shape and properties of the vector function, I propose the approach exemplified in the following code:
```
// AArch64 Advanced SIMD compilation
double foo(double) __attribute__(simd_variant(“nN2v”,”neon_foo”));
float64x2_t neon_foo(float64x2_t x) {…}
// x86 SSE compilation
double foo(double) __attribute__(simd_variant(“aN2v”,”sse_foo”));
__m128 sse_foo(__m128 x) {…}
```
The attribute would use the “core” tokens of the mangled names (without _ZGV prefix and the scalar function name postfix) to describe the vector fu...
2019 Jun 01
2
[cfe-dev] [RFC] Expose user provided vector function for auto-vectorization.
Page 22 of OpenMP 5.0 specification (Lines 13/14):
When any thread encounters a simd construct, the iterations of the loop associated with the
construct may be executed concurrently using the SIMD lanes that are available to the thread
This is the Execution Model. The word here is "may" i.e., not "must". Declare simd is not explicitly mentioned here, but requiring