1/* Test for unsafe floating-point conversions. PR 36578. */ 2/* { dg-do run } */ 3/* { dg-options "-msse2 -mfpmath=sse" } */ 4/* { dg-require-effective-target sse2 } */ 5/* { dg-require-effective-target large_long_double } */ 6 7#include "sse2-check.h" 8 9extern void abort (void); 10extern void exit (int); 11extern int printf(const char *, ...); 12 13volatile double d1 = 1.0; 14volatile double d2 = 0x1.00001p-53; 15volatile double d3; 16 17static void 18sse2_test (void) 19{ 20 d3 = (double)((long double)d1 + (long double)d2); 21 if (d3 != d1) 22 abort (); 23 exit (0); 24} 25