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)12 static float xs (void)
13 {
14   return 3.14159265;
15 }
16 
ys(float a)17 float ys (float a)
18 {
19   return xs () * a;
20 }
21 
xd(void)22 static double xd (void)
23 {
24   return 3.1415926535;
25 }
26 
yd(double a)27 double yd (double a)
28 {
29   return xd () * a;
30 }
31 
32 static void
sse2_test(void)33 sse2_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