diff mbox series

i386: Add _mm256_cmov_si256 [PR98521]

Message ID CAFULd4ZmwbuB7iKhNeUy8+P9Gj8=_u_rEV0u1Q2xuRvzoyAqVg@mail.gmail.com
State New
Headers show
Series i386: Add _mm256_cmov_si256 [PR98521] | expand

Commit Message

Uros Bizjak Jan. 5, 2021, 2:29 p.m. UTC
Add missing _mm256_cmov_si256 intrinsic to xopintrin.h.

2021-01-05  Uroš Bizjak  <ubizjak@gmail.com>

gcc/
    PR target/98521
    * config/i386/xopintrin.h (_mm256_cmov_si256): New.

Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}.

Pushed to mainline, will be beckported to gcc-10.

Uros.
diff mbox series

Patch

diff --git a/gcc/config/i386/xopintrin.h b/gcc/config/i386/xopintrin.h
index 49bac22effa..4299a5993ed 100644
--- a/gcc/config/i386/xopintrin.h
+++ b/gcc/config/i386/xopintrin.h
@@ -208,6 +208,12 @@  _mm_cmov_si128(__m128i __A, __m128i __B, __m128i __C)
   return  (__m128i) __builtin_ia32_vpcmov (__A, __B, __C);
 }
 
+extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+_mm256_cmov_si256(__m256i __A, __m256i __B, __m256i __C)
+{
+  return  (__m256i) __builtin_ia32_vpcmov256 (__A, __B, __C);
+}
+
 extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 _mm_perm_epi8(__m128i __A, __m128i __B, __m128i __C)
 {