I would like to, but as far as I know the only testcase possible is below, and 
as far as I know there is no possibility to use dg-error for runtime 
exceptions(Sorry, if I'm wrong). There are only 2 versions of the flag 
exception or no exception and the error is, when they are combined in CSE.

> -----Original Message-----
> From: H.J. Lu [mailto:hjl.to...@gmail.com]
> Sent: Monday, June 12, 2017 3:43 PM
> To: Koval, Julia <julia.ko...@intel.com>
> Cc: GCC Patches <gcc-patches@gcc.gnu.org>; Uros Bizjak
> <ubiz...@gmail.com>; Kirill Yukhin <kirill.yuk...@gmail.com>
> Subject: Re: [PATCH][X86] Fix rounding pattern similar to PR73350
> 
> On Mon, Jun 12, 2017 at 6:21 AM, Koval, Julia <julia.ko...@intel.com> wrote:
> > This is the same issue as PR73350 and PR80862 for disabling FP exceptions.
> >
> > gcc -O0 -mavx512f -mavx512er returns exception
> > gcc -O2 -mavx512f -mavx512er returns nan
> >
> > For this code:
> >
> > #include <stdio.h>
> > #include <math.h>
> > #include <x86intrin.h>
> > #include <limits.h>
> > #include <float.h>
> >
> > int main(int argc, char *argv[]) {
> >     __m512 a = _mm512_set1_ps((float) -1);
> >     __m512 b = _mm512_set1_ps((float) -1);
> >     _mm_setcsr( _MM_MASK_MASK &~
> >
> (_MM_MASK_OVERFLOW|_MM_MASK_INVALID|_MM_MASK_DIV_ZERO) );
> >     __m512 result1 = _mm512_rsqrt28_round_ps(a, _MM_FROUND_NO_EXC );
> >     printf("%d %d\n", _MM_FROUND_CUR_DIRECTION,
> _MM_FROUND_NO_EXC);
> >     __m512 result2 = _mm512_rsqrt28_round_ps(a,
> _MM_FROUND_CUR_DIRECTION);
> >
> >     printf("%g\n", result1[0] - result2[0]);
> >
> >     return 0;
> > }
> >
> > This patch fixes the issue.
> >
> > gcc/
> >         * config/i386/i386.c: Fix rounding expand for new pattern
> >         * config/i386/subst.md: Fix pattern (parallel -> unspec)
> >
> > Ok for trunk?
> >
> 
> Please include the testcase.
> 
> Thanks.
> 
> --
> H.J.

Reply via email to