1 /* Execution test for argument passing with SSE2 and local functions 2 Written by Paolo Bonzini, 25 January 2005 */ 3 4 /* { dg-do run } */ 5 /* { dg-options "-O2 -msse2 -mfpmath=sse" } */ 6 /* { dg-require-effective-target sse2 } */ 7 8 #include "sse2-check.h" 9 10 #include <assert.h> 11 xs(void)12static float xs (void) 13 { 14 return 3.14159265; 15 } 16 ys(float a)17float ys (float a) 18 { 19 return xs () * a; 20 } 21 xd(void)22static double xd (void) 23 { 24 return 3.1415926535; 25 } 26 yd(double a)27double yd (double a) 28 { 29 return xd () * a; 30 } 31 32 static void sse2_test(void)33sse2_test (void) 34 { 35 assert (ys (1) == xs ()); 36 assert (ys (2) == xs () * 2); 37 assert (yd (1) == xd ()); 38 assert (yd (2) == xd () * 2); 39 } 40