https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100973

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
This also works:
```
diff --git a/gcc/config/i386/avxintrin.h b/gcc/config/i386/avxintrin.h
index ec9b9905b5f..9e03bf408c2 100644
--- a/gcc/config/i386/avxintrin.h
+++ b/gcc/config/i386/avxintrin.h
@@ -1145,7 +1145,9 @@ _mm256_movemask_pd (__m256d __A)
 extern __inline int __attribute__((__gnu_inline__, __always_inline__,
__artificial__))
 _mm256_movemask_ps (__m256 __A)
 {
-  return __builtin_ia32_movmskps256 ((__v8sf)__A);
+  unsigned t = __builtin_ia32_movmskps256 ((__v8sf)__A);
+  if (t >= 256) __builtin_unreachable();
+  return t;
 }

 extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__,
__artificial__))

```

Reply via email to