From 808244c15a1a735a71e9e352c88b813ddbec4922 Mon Sep 17 00:00:00 2001
From: Martin Kronbichler <kronbichler@lnm.mw.tum.de>
Date: Thu, 5 Sep 2019 22:44:30 +0200
Subject: [PATCH] Fix compilation with gcc-9/AVX-512

---
 include/deal.II/base/vectorization.h | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/include/deal.II/base/vectorization.h b/include/deal.II/base/vectorization.h
index 8bcc454c07..96395f8324 100644
--- a/include/deal.II/base/vectorization.h
+++ b/include/deal.II/base/vectorization.h
@@ -4121,7 +4121,7 @@ compare_and_apply_mask(const VectorizedArray<float, 16> &left,
                        const VectorizedArray<float, 16> &false_values)
 {
   const __mmask16 mask =
-    _mm512_cmp_ps(left.data, right.data, static_cast<int>(predicate));
+    _mm512_cmp_ps_mask(left.data, right.data, static_cast<int>(predicate));
   VectorizedArray<float, 16> result;
   result.data = _mm512_mask_mov_ps(false_values.data, mask, true_values.data);
   return result;
@@ -4137,7 +4137,7 @@ compare_and_apply_mask(const VectorizedArray<double, 8> &left,
                        const VectorizedArray<double, 8> &false_values)
 {
   const __mmask16 mask =
-    _mm512_cmp_pd(left.data, right.data, static_cast<int>(predicate));
+    _mm512_cmp_pd_mask(left.data, right.data, static_cast<int>(predicate));
   VectorizedArray<double, 8> result;
   result.data = _mm512_mask_mov_pd(false_values.data, mask, true_values.data);
   return result;
@@ -4175,8 +4175,8 @@ compare_and_apply_mask(const VectorizedArray<double, 4> &left,
     _mm256_cmp_pd(left.data, right.data, static_cast<int>(predicate));
 
   VectorizedArray<double, 4> result;
-  result.data = _mm256_or_ps(_mm256_and_ps(mask, true_values.data),
-                             _mm256_andnot_ps(mask, false_values.data));
+  result.data = _mm256_or_pd(_mm256_and_pd(mask, true_values.data),
+                             _mm256_andnot_pd(mask, false_values.data));
   return result;
 }
 
@@ -4253,8 +4253,8 @@ compare_and_apply_mask(const VectorizedArray<double, 2> &left,
     }
 
   VectorizedArray<double, 2> result;
-  result.data = _mm_or_ps(_mm_and_ps(mask, true_values.data),
-                          _mm_andnot_ps(mask, false_values.data));
+  result.data = _mm_or_pd(_mm_and_pd(mask, true_values.data),
+                          _mm_andnot_pd(mask, false_values.data));
 
   return result;
 }
-- 
2.39.5