search for: sse_maddubs_epi16

Displaying 6 results from an estimated 6 matches for "sse_maddubs_epi16".

2020 May 19
5
[PATCHv2] SSE2/SSSE3 optimized version of get_checksum1() for x86-64
...se_interleave_even_epi16(a, b), + sse_interleave_odd_epi16(a, b) + ); +} + +__attribute__ ((target ("ssse3"))) static inline __m128i sse_hadds_epi16(__m128i a, __m128i b) { + return _mm_hadds_epi16(a, b); +} + +__attribute__ ((target ("sse2"))) static inline __m128i sse_maddubs_epi16(__m128i a, __m128i b) { + return _mm_adds_epi16( + sse_mulu_even_epi8(a, b), + sse_mulu_odd_epi8(a, b) + ); +} + +__attribute__ ((target ("ssse3"))) static inline __m128i sse_maddubs_epi16(__m128i a, __m128i b) { + return _mm_maddubs_epi16(a, b); +} + +__attribute__...
2020 May 20
0
[PATCHv2] SSE2/SSSE3 optimized version of get_checksum1() for x86-64
...leave_odd_epi16(a, b) > + ); > +} > + > +__attribute__ ((target ("ssse3"))) static inline __m128i > sse_hadds_epi16(__m128i a, __m128i b) { > + return _mm_hadds_epi16(a, b); > +} > + > +__attribute__ ((target ("sse2"))) static inline __m128i > sse_maddubs_epi16(__m128i a, __m128i b) { > + return _mm_adds_epi16( > + sse_mulu_even_epi8(a, b), > + sse_mulu_odd_epi8(a, b) > + ); > +} > + > +__attribute__ ((target ("ssse3"))) static inline __m128i > sse_maddubs_epi16(__m128i a, __m128i b) { > + return...
2020 May 18
6
[PATCH] SSE2/SSSE3 optimized version of get_checksum1() for x86-64
...) + ); +} +#endif + +static inline __m128i sse_hadds_epi16(__m128i a, __m128i b) { +#ifdef __SSSE3__ + return _mm_hadds_epi16(a, b); +#else + return _mm_adds_epi16( + sse_interleave_even_epi16(a, b), + sse_interleave_odd_epi16(a, b) + ); +#endif +} + +static inline __m128i sse_maddubs_epi16(__m128i a, __m128i b) { +#ifdef __SSSE3__ + return _mm_maddubs_epi16(a, b); +#else + return _mm_adds_epi16( + sse_mulu_even_epi8(a, b), + sse_mulu_odd_epi8(a, b) + ); +#endif +} + +/* + a simple 32 bit checksum that can be updated from either end + (inspired by Mark Adler...
2020 May 18
3
[PATCH] SSE2/SSSE3 optimized version of get_checksum1() for x86-64
What do you base this on? Per https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html : "For the x86-32 compiler, you must use -march=cpu-type, -msse or -msse2 switches to enable SSE extensions and make this option effective. For the x86-64 compiler, these extensions are enabled by default." That reads to me like we're fine for SSE2. As stated in my comments, SSSE3 support must be
2020 May 18
0
[PATCH] SSE2/SSSE3 optimized version of get_checksum1() for x86-64
..._epi16(__m128i a, __m128i b) { > +#ifdef __SSSE3__ > + return _mm_hadds_epi16(a, b); > +#else > + return _mm_adds_epi16( > + sse_interleave_even_epi16(a, b), > + sse_interleave_odd_epi16(a, b) > + ); > +#endif > +} > + > +static inline __m128i sse_maddubs_epi16(__m128i a, __m128i b) { > +#ifdef __SSSE3__ > + return _mm_maddubs_epi16(a, b); > +#else > + return _mm_adds_epi16( > + sse_mulu_even_epi8(a, b), > + sse_mulu_odd_epi8(a, b) > + ); > +#endif > +} > + > +/* > + a simple 32 bit checksum that...
2020 May 18
2
[PATCH] SSE2/SSSE3 optimized version of get_checksum1() for x86-64
...def __SSSE3__ >> + return _mm_hadds_epi16(a, b); >> +#else >> + return _mm_adds_epi16( >> + sse_interleave_even_epi16(a, b), >> + sse_interleave_odd_epi16(a, b) >> + ); >> +#endif >> +} >> + >> +static inline __m128i sse_maddubs_epi16(__m128i a, __m128i b) { >> +#ifdef __SSSE3__ >> + return _mm_maddubs_epi16(a, b); >> +#else >> + return _mm_adds_epi16( >> + sse_mulu_even_epi8(a, b), >> + sse_mulu_odd_epi8(a, b) >> + ); >> +#endif >> +} >> + >&g...