Displaying 8 results from an estimated 8 matches for "_mm_srai_epi32".
2020 May 18
6
[PATCH] SSE2/SSSE3 optimized version of get_checksum1() for x86-64
...const* buf) {
+#ifdef __SSSE3__
+ return _mm_lddqu_si128(buf); // same as loadu on all but the
oldest SSSE3 CPUs
+#else
+ return _mm_loadu_si128(buf);
+#endif
+}
+
+#ifndef __SSSE3__
+static inline __m128i sse_interleave_odd_epi16(__m128i a, __m128i b) {
+ return _mm_packs_epi32(
+ _mm_srai_epi32(a, 16),
+ _mm_srai_epi32(b, 16)
+ );
+}
+
+static inline __m128i sse_interleave_even_epi16(__m128i a, __m128i b) {
+ return sse_interleave_odd_epi16(
+ _mm_slli_si128(a, 2),
+ _mm_slli_si128(b, 2)
+ );
+}
+
+static inline __m128i sse_mulu_odd_epi8(__m128i a, __m128i b)...
2020 May 18
0
[PATCH] SSE2/SSSE3 optimized version of get_checksum1() for x86-64
...dqu_si128(buf); // same as loadu on all but the
> oldest SSSE3 CPUs
> +#else
> + return _mm_loadu_si128(buf);
> +#endif
> +}
> +
> +#ifndef __SSSE3__
> +static inline __m128i sse_interleave_odd_epi16(__m128i a, __m128i b) {
> + return _mm_packs_epi32(
> + _mm_srai_epi32(a, 16),
> + _mm_srai_epi32(b, 16)
> + );
> +}
> +
> +static inline __m128i sse_interleave_even_epi16(__m128i a, __m128i b) {
> + return sse_interleave_odd_epi16(
> + _mm_slli_si128(a, 2),
> + _mm_slli_si128(b, 2)
> + );
> +}
> +
> +s...
2020 May 19
5
[PATCHv2] SSE2/SSSE3 optimized version of get_checksum1() for x86-64
...static inline __m128i
sse_load_si128(__m128i_u* buf) {
+ return _mm_lddqu_si128(buf); // same as loadu on all but the
oldest SSSE3 CPUs
+}
+
+__attribute__ ((target ("sse2"))) static inline __m128i
sse_interleave_odd_epi16(__m128i a, __m128i b) {
+ return _mm_packs_epi32(
+ _mm_srai_epi32(a, 16),
+ _mm_srai_epi32(b, 16)
+ );
+}
+
+__attribute__ ((target ("sse2"))) static inline __m128i
sse_interleave_even_epi16(__m128i a, __m128i b) {
+ return sse_interleave_odd_epi16(
+ _mm_slli_si128(a, 2),
+ _mm_slli_si128(b, 2)
+ );
+}
+
+__attribute__ ((t...
2020 May 18
2
[PATCH] SSE2/SSSE3 optimized version of get_checksum1() for x86-64
...but the
>> oldest SSSE3 CPUs
>> +#else
>> + return _mm_loadu_si128(buf);
>> +#endif
>> +}
>> +
>> +#ifndef __SSSE3__
>> +static inline __m128i sse_interleave_odd_epi16(__m128i a, __m128i b) {
>> + return _mm_packs_epi32(
>> + _mm_srai_epi32(a, 16),
>> + _mm_srai_epi32(b, 16)
>> + );
>> +}
>> +
>> +static inline __m128i sse_interleave_even_epi16(__m128i a, __m128i b) {
>> + return sse_interleave_odd_epi16(
>> + _mm_slli_si128(a, 2),
>> + _mm_slli_si128(b, 2)
>...
2020 May 20
0
[PATCHv2] SSE2/SSSE3 optimized version of get_checksum1() for x86-64
...m128i_u* buf) {
> + return _mm_lddqu_si128(buf); // same as loadu on all but the
> oldest SSSE3 CPUs
> +}
> +
> +__attribute__ ((target ("sse2"))) static inline __m128i
> sse_interleave_odd_epi16(__m128i a, __m128i b) {
> + return _mm_packs_epi32(
> + _mm_srai_epi32(a, 16),
> + _mm_srai_epi32(b, 16)
> + );
> +}
> +
> +__attribute__ ((target ("sse2"))) static inline __m128i
> sse_interleave_even_epi16(__m128i a, __m128i b) {
> + return sse_interleave_odd_epi16(
> + _mm_slli_si128(a, 2),
> + _mm_sll...
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
2016 Jun 17
5
ARM NEON optimization -- celt_fir()
Hi all,
This is Linfeng Zhang from Google. I'll work on ARM NEON optimization in the
next few months.
I'm submitting 2 patches in the following couple of emails, which have the new
created celt_fir_neon().
I revised celt_fir_c() to not pass in argument "mem" in Patch 1. If there are
concerns to this change, please let me know.
Many thanks to your comments.
Linfeng Zhang
2016 Jul 14
6
Several patches of ARM NEON optimization
I rebased my previous 3 patches to the current master with minor changes.
Patches 1 to 3 replace all my previous submitted patches.
Patches 4 and 5 are new.
Thanks,
Linfeng Zhang