+2017-06-20 Julia Koval <julia.koval@intel.com>
+
+ * config/i386/i386.c: Fix rounding expand for new pattern.
+ * config/i386/subst.md: Fix pattern (parallel -> unspec).
+
2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
* config/aarch64/aarch64-option-extensions.def (rcpc): New.
}
else
{
- gcc_assert (GET_CODE (XVECEXP (pat, 0, 0)) == SET);
- set_dst = SET_DEST (XVECEXP (pat, 0, 0));
+ gcc_assert (GET_CODE (pat) == SET);
+ set_dst = SET_DEST (pat);
}
emit_insn (pat);
[(set (match_operand:SUBST_A 0)
(match_operand:SUBST_A 1))]
"TARGET_AVX512F"
- [(parallel[
- (set (match_dup 0)
- (match_dup 1))
- (unspec [(match_operand:SI 2 "const48_operand")] UNSPEC_EMBEDDED_ROUNDING)])])
+ [(set (match_dup 0)
+ (unspec:SUBST_A [(match_dup 1)
+ (match_operand:SI 2 "const48_operand")]
+ UNSPEC_EMBEDDED_ROUNDING))
+])
(define_subst_attr "round_expand_name" "round_expand" "" "_round")
(define_subst_attr "round_expand_nimm_predicate" "round_expand" "nonimmediate_operand" "register_operand")
+2017-06-20 Julia Koval <julia.koval@intel.com>
+
+ * gcc.target/i386/pr73350-2.c: New test.
+
2017-06-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* c-c++-common/fold-masked-cmp-1.c: Allow for i?86-*-* target.
--- /dev/null
+/* { dg-do run { target *-*-linux* *-*-gnu* } } */
+/* { dg-options "-O2 -mavx512er" } */
+/* { dg-require-effective-target avx512er } */
+
+#include "avx512er-check.h"
+
+#include <x86intrin.h>
+#include <unistd.h>
+#include <signal.h>
+
+static int counter;
+
+void handler (int i)
+{
+ exit (0);
+}
+
+static void
+avx512er_test (void)
+{
+ struct sigaction s;
+ sigemptyset (&s.sa_mask);
+ s.sa_handler = handler;
+ s.sa_flags = 0;
+ sigaction (SIGFPE, &s, NULL);
+
+ __m512 a = _mm512_set1_ps (-1.f);
+
+ _mm_setcsr ( _MM_MASK_MASK & ~_MM_MASK_INVALID );
+ __m512 r1 = _mm512_rsqrt28_round_ps (a, _MM_FROUND_NO_EXC);
+ __m512 r2 = _mm512_rsqrt28_round_ps (a, _MM_FROUND_CUR_DIRECTION);
+
+ if (r1[0] + r2[0])
+ abort ();
+}