search for: v_b2

Displaying 9 results from an estimated 9 matches for "v_b2".

Did you mean: v_b1
2019 Jun 10
2
[RFC] Expose user provided vector function for auto-vectorization.
...earlier: float MyAdd(float* a, int b) { return *a + b; } __declspec(vector_variant(implements(MyAdd(float *a, int b)), linear(a), vectorlength(8), nomask, processor(core_2nd_gen_avx))) __m256 __regcall MyAddVec(float* v_a, __m128i v_b1, __m128i v_b2) If FE emitted ;; Alwaysinline define <8 x float> @MyAddVec.abi_wrapper(float* %v_a, <8 x i32> %v_b) { ;; Not sure about the exact values in the mask parameter. %v_b1 = shufflevector <8 x i32> %v_b, <8 x i32> undef, <4 x i32><i32 0, i32 1, i32 2, i32 3> %...
2019 Jun 10
2
[RFC] Expose user provided vector function for auto-vectorization.
...yAdd(float* a, int b) { return *a + b; } > __declspec(vector_variant(implements(MyAdd(float *a, int b)), > linear(a), vectorlength(8), > nomask, processor(core_2nd_gen_avx))) > __m256 __regcall MyAddVec(float* v_a, __m128i v_b1, __m128i v_b2) > > We need somehow communicate which lanes of widened "b" would map for the b1 parameter and which would go to the b2. If we only care about single ABI (like the one mandated by the OMP) than such things could be put to TTI, but what about other ABIs? Should we encode this explici...
2019 Jun 07
2
[RFC] Expose user provided vector function for auto-vectorization.
...ant: float MyAdd(float* a, int b) { return *a + b; } __declspec(vector_variant(implements(MyAdd(float *a, int b)), linear(a), vectorlength(8), nomask, processor(core_2nd_gen_avx))) __m256 __regcall MyAddVec(float* v_a, __m128i v_b1, __m128i v_b2) We need somehow communicate which lanes of widened "b" would map for the b1 parameter and which would go to the b2. If we only care about single ABI (like the one mandated by the OMP) than such things could be put to TTI, but what about other ABIs? Should we encode this explicitly in th...
2019 Jun 11
2
RFC: Interface user provided vector functions with the vectorizer.
.../132885.html. Godbolt rendering with ICC at https://godbolt.org/z/Of1NxZ ``` float MyAdd(float* a, int b) __attribute__(clang_declare_simd_variant(“MyAddVec", simdlen(8), notinbranch, arch("core_2nd_gen_avx")) { return *a + b; } __m256 MyAddVec(float* v_a, __m128i v_b1, __m128i v_b2); ``` The resulting IR attribute is: ``` attribute #0 = {vector-abi-variant="_ZGVbN8l4v_MyAdd(MyAddVec)"} ``` ## Example showing interaction with `declare simd` ``` #pragma omp declare simd linear(a) notinbranch float foo_06(float *a, int x) __attribute__(clang_declare_simd_variant(“v...
2019 Jun 17
3
RFC: Interface user provided vector functions with the vectorizer.
...t https://godbolt.org/z/Of1NxZ > > ``` > float MyAdd(float* a, int b) __attribute__(clang_declare_simd_variant(“MyAddVec", simdlen(8), notinbranch, arch("core_2nd_gen_avx")) > { > return *a + b; > } > > > __m256 MyAddVec(float* v_a, __m128i v_b1, __m128i v_b2); > ``` > > The resulting IR attribute is: > > ``` > attribute #0 = {vector-abi-variant="_ZGVbN8l4v_MyAdd(MyAddVec)"} > ``` > > ## Example showing interaction with `declare simd` > > ``` > #pragma omp declare simd linear(a) notinbranch > float foo_06...
2019 Jun 24
2
RFC: Interface user provided vector functions with the vectorizer.
...oat* a, int b) > __attribute__(clang_declare_simd_variant(“MyAddVec", simdlen(8), > notinbranch, arch("core_2nd_gen_avx")) >> > { >> > return *a + b; >> > } >> > >> > >> > __m256 MyAddVec(float* v_a, __m128i v_b1, __m128i v_b2); >> > ``` >> > >> > The resulting IR attribute is: >> > >> > ``` >> > attribute #0 = {vector-abi-variant="_ZGVbN8l4v_MyAdd(MyAddVec)"} >> > ``` >> > >> > ## Example showing interaction with `declare simd` &g...
2019 Jun 21
2
RFC: Interface user provided vector functions with the vectorizer.
...> ``` > > float MyAdd(float* a, int b) > > __attribute__(clang_declare_simd_variant(“MyAddVec", simdlen(8), notinbranch, arch("core_2nd_gen_avx")) { > > return *a + b; > > } > > > > > > __m256 MyAddVec(float* v_a, __m128i v_b1, __m128i v_b2); ``` > > > > The resulting IR attribute is: > > > > ``` > > attribute #0 = {vector-abi-variant="_ZGVbN8l4v_MyAdd(MyAddVec)"} > > ``` > > > > ## Example showing interaction with `declare simd` > > > > ``` > > #pragma omp de...
2019 Jun 24
4
RFC: Interface user provided vector functions with the vectorizer.
...> ``` > > float MyAdd(float* a, int b) > > __attribute__(clang_declare_simd_variant(“MyAddVec", simdlen(8), notinbranch, arch("core_2nd_gen_avx")) { > > return *a + b; > > } > > > > > > __m256 MyAddVec(float* v_a, __m128i v_b1, __m128i v_b2); ``` > > > > The resulting IR attribute is: > > > > ``` > > attribute #0 = {vector-abi-variant="_ZGVbN8l4v_MyAdd(MyAddVec)"} > > ``` > > > > ## Example showing interaction with `declare simd` > > > > ``` > > #pragma omp de...
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>;