Add missing _mm256_cmov_si256 intrinsic to xopintrin.h.

2021-01-05  Uroš Bizjak  <ubiz...@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 --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)
 {

Reply via email to