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 6#include "sse2-check.h" 7 8extern void abort (void); 9extern void exit (int); 10extern int printf(const char *, ...); 11 12volatile double d1 = 1.0; 13volatile double d2 = 0x1.00001p-53; 14volatile double d3; 15 16static void 17sse2_test (void) 18{ 19 d3 = (double)((long double)d1 + (long double)d2); 20 if (d3 != d1) 21 abort (); 22 exit (0); 23} 24