/* This is an autogenerated file. Do not edit.  */

#include "avx512fp16-xmm-check.h"
#include "defines.h"
#include "macros.h"
#include "args.h"

struct IntegerRegisters iregs;
struct FloatRegisters fregs;
unsigned int num_iregs, num_fregs;

/* This struct holds values for argument checking.  */
struct
{
  _Float16 f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14,
    f15, f16, f17, f18, f19, f20, f21, f22, f23;
} values__Float16;

struct
{
  float f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15,
    f16, f17, f18, f19, f20, f21, f22, f23;
} values_float;

struct
{
  double f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15,
    f16, f17, f18, f19, f20, f21, f22, f23;
} values_double;

struct
{
  ldouble f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14,
    f15, f16, f17, f18, f19, f20, f21, f22, f23;
} values_ldouble;

void
fun_check_float16_passing_8_values (_Float16 f0 ATTRIBUTE_UNUSED,
				    _Float16 f1 ATTRIBUTE_UNUSED,
				    _Float16 f2 ATTRIBUTE_UNUSED,
				    _Float16 f3 ATTRIBUTE_UNUSED,
				    _Float16 f4 ATTRIBUTE_UNUSED,
				    _Float16 f5 ATTRIBUTE_UNUSED,
				    _Float16 f6 ATTRIBUTE_UNUSED,
				    _Float16 f7 ATTRIBUTE_UNUSED)
{
  /* Check argument values.  */
  assert (values__Float16.f0 == f0);
  assert (values__Float16.f1 == f1);
  assert (values__Float16.f2 == f2);
  assert (values__Float16.f3 == f3);
  assert (values__Float16.f4 == f4);
  assert (values__Float16.f5 == f5);
  assert (values__Float16.f6 == f6);
  assert (values__Float16.f7 == f7);
}

void
fun_check_float16_passing_8_regs (_Float16 f0 ATTRIBUTE_UNUSED,
				  _Float16 f1 ATTRIBUTE_UNUSED,
				  _Float16 f2 ATTRIBUTE_UNUSED,
				  _Float16 f3 ATTRIBUTE_UNUSED,
				  _Float16 f4 ATTRIBUTE_UNUSED,
				  _Float16 f5 ATTRIBUTE_UNUSED,
				  _Float16 f6 ATTRIBUTE_UNUSED,
				  _Float16 f7 ATTRIBUTE_UNUSED)
{
  /* Check register contents.  */
  check_float16_arguments;
}

void
fun_check_float16_passing_16_values (_Float16 f0 ATTRIBUTE_UNUSED,
				     _Float16 f1 ATTRIBUTE_UNUSED,
				     _Float16 f2 ATTRIBUTE_UNUSED,
				     _Float16 f3 ATTRIBUTE_UNUSED,
				     _Float16 f4 ATTRIBUTE_UNUSED,
				     _Float16 f5 ATTRIBUTE_UNUSED,
				     _Float16 f6 ATTRIBUTE_UNUSED,
				     _Float16 f7 ATTRIBUTE_UNUSED,
				     _Float16 f8 ATTRIBUTE_UNUSED,
				     _Float16 f9 ATTRIBUTE_UNUSED,
				     _Float16 f10 ATTRIBUTE_UNUSED,
				     _Float16 f11 ATTRIBUTE_UNUSED,
				     _Float16 f12 ATTRIBUTE_UNUSED,
				     _Float16 f13 ATTRIBUTE_UNUSED,
				     _Float16 f14 ATTRIBUTE_UNUSED,
				     _Float16 f15 ATTRIBUTE_UNUSED)
{
  /* Check argument values.  */
  assert (values__Float16.f0 == f0);
  assert (values__Float16.f1 == f1);
  assert (values__Float16.f2 == f2);
  assert (values__Float16.f3 == f3);
  assert (values__Float16.f4 == f4);
  assert (values__Float16.f5 == f5);
  assert (values__Float16.f6 == f6);
  assert (values__Float16.f7 == f7);
  assert (values__Float16.f8 == f8);
  assert (values__Float16.f9 == f9);
  assert (values__Float16.f10 == f10);
  assert (values__Float16.f11 == f11);
  assert (values__Float16.f12 == f12);
  assert (values__Float16.f13 == f13);
  assert (values__Float16.f14 == f14);
  assert (values__Float16.f15 == f15);
}

void
fun_check_float16_passing_16_regs (_Float16 f0 ATTRIBUTE_UNUSED,
				   _Float16 f1 ATTRIBUTE_UNUSED,
				   _Float16 f2 ATTRIBUTE_UNUSED,
				   _Float16 f3 ATTRIBUTE_UNUSED,
				   _Float16 f4 ATTRIBUTE_UNUSED,
				   _Float16 f5 ATTRIBUTE_UNUSED,
				   _Float16 f6 ATTRIBUTE_UNUSED,
				   _Float16 f7 ATTRIBUTE_UNUSED,
				   _Float16 f8 ATTRIBUTE_UNUSED,
				   _Float16 f9 ATTRIBUTE_UNUSED,
				   _Float16 f10 ATTRIBUTE_UNUSED,
				   _Float16 f11 ATTRIBUTE_UNUSED,
				   _Float16 f12 ATTRIBUTE_UNUSED,
				   _Float16 f13 ATTRIBUTE_UNUSED,
				   _Float16 f14 ATTRIBUTE_UNUSED,
				   _Float16 f15 ATTRIBUTE_UNUSED)
{
  /* Check register contents.  */
  check_float16_arguments;
}

void
fun_check_float16_passing_20_values (_Float16 f0 ATTRIBUTE_UNUSED,
				     _Float16 f1 ATTRIBUTE_UNUSED,
				     _Float16 f2 ATTRIBUTE_UNUSED,
				     _Float16 f3 ATTRIBUTE_UNUSED,
				     _Float16 f4 ATTRIBUTE_UNUSED,
				     _Float16 f5 ATTRIBUTE_UNUSED,
				     _Float16 f6 ATTRIBUTE_UNUSED,
				     _Float16 f7 ATTRIBUTE_UNUSED,
				     _Float16 f8 ATTRIBUTE_UNUSED,
				     _Float16 f9 ATTRIBUTE_UNUSED,
				     _Float16 f10 ATTRIBUTE_UNUSED,
				     _Float16 f11 ATTRIBUTE_UNUSED,
				     _Float16 f12 ATTRIBUTE_UNUSED,
				     _Float16 f13 ATTRIBUTE_UNUSED,
				     _Float16 f14 ATTRIBUTE_UNUSED,
				     _Float16 f15 ATTRIBUTE_UNUSED,
				     _Float16 f16 ATTRIBUTE_UNUSED,
				     _Float16 f17 ATTRIBUTE_UNUSED,
				     _Float16 f18 ATTRIBUTE_UNUSED,
				     _Float16 f19 ATTRIBUTE_UNUSED)
{
  /* Check argument values.  */
  assert (values__Float16.f0 == f0);
  assert (values__Float16.f1 == f1);
  assert (values__Float16.f2 == f2);
  assert (values__Float16.f3 == f3);
  assert (values__Float16.f4 == f4);
  assert (values__Float16.f5 == f5);
  assert (values__Float16.f6 == f6);
  assert (values__Float16.f7 == f7);
  assert (values__Float16.f8 == f8);
  assert (values__Float16.f9 == f9);
  assert (values__Float16.f10 == f10);
  assert (values__Float16.f11 == f11);
  assert (values__Float16.f12 == f12);
  assert (values__Float16.f13 == f13);
  assert (values__Float16.f14 == f14);
  assert (values__Float16.f15 == f15);
  assert (values__Float16.f16 == f16);
  assert (values__Float16.f17 == f17);
  assert (values__Float16.f18 == f18);
  assert (values__Float16.f19 == f19);
}

void
fun_check_float16_passing_20_regs (_Float16 f0 ATTRIBUTE_UNUSED,
				   _Float16 f1 ATTRIBUTE_UNUSED,
				   _Float16 f2 ATTRIBUTE_UNUSED,
				   _Float16 f3 ATTRIBUTE_UNUSED,
				   _Float16 f4 ATTRIBUTE_UNUSED,
				   _Float16 f5 ATTRIBUTE_UNUSED,
				   _Float16 f6 ATTRIBUTE_UNUSED,
				   _Float16 f7 ATTRIBUTE_UNUSED,
				   _Float16 f8 ATTRIBUTE_UNUSED,
				   _Float16 f9 ATTRIBUTE_UNUSED,
				   _Float16 f10 ATTRIBUTE_UNUSED,
				   _Float16 f11 ATTRIBUTE_UNUSED,
				   _Float16 f12 ATTRIBUTE_UNUSED,
				   _Float16 f13 ATTRIBUTE_UNUSED,
				   _Float16 f14 ATTRIBUTE_UNUSED,
				   _Float16 f15 ATTRIBUTE_UNUSED,
				   _Float16 f16 ATTRIBUTE_UNUSED,
				   _Float16 f17 ATTRIBUTE_UNUSED,
				   _Float16 f18 ATTRIBUTE_UNUSED,
				   _Float16 f19 ATTRIBUTE_UNUSED)
{
  /* Check register contents.  */
  check_float16_arguments;
}

void
fun_check_float_passing_float8_values (float f0 ATTRIBUTE_UNUSED,
				       float f1 ATTRIBUTE_UNUSED,
				       float f2 ATTRIBUTE_UNUSED,
				       float f3 ATTRIBUTE_UNUSED,
				       float f4 ATTRIBUTE_UNUSED,
				       float f5 ATTRIBUTE_UNUSED,
				       float f6 ATTRIBUTE_UNUSED,
				       float f7 ATTRIBUTE_UNUSED)
{
  /* Check argument values.  */
  assert (values_float.f0 == f0);
  assert (values_float.f1 == f1);
  assert (values_float.f2 == f2);
  assert (values_float.f3 == f3);
  assert (values_float.f4 == f4);
  assert (values_float.f5 == f5);
  assert (values_float.f6 == f6);
  assert (values_float.f7 == f7);

}

void
fun_check_float_passing_float8_regs (float f0 ATTRIBUTE_UNUSED,
				     float f1 ATTRIBUTE_UNUSED,
				     float f2 ATTRIBUTE_UNUSED,
				     float f3 ATTRIBUTE_UNUSED,
				     float f4 ATTRIBUTE_UNUSED,
				     float f5 ATTRIBUTE_UNUSED,
				     float f6 ATTRIBUTE_UNUSED,
				     float f7 ATTRIBUTE_UNUSED)
{
  /* Check register contents.  */
  check_float_arguments;
}

void
fun_check_float_passing_float16_values (float f0 ATTRIBUTE_UNUSED,
					float f1 ATTRIBUTE_UNUSED,
					float f2 ATTRIBUTE_UNUSED,
					float f3 ATTRIBUTE_UNUSED,
					float f4 ATTRIBUTE_UNUSED,
					float f5 ATTRIBUTE_UNUSED,
					float f6 ATTRIBUTE_UNUSED,
					float f7 ATTRIBUTE_UNUSED,
					float f8 ATTRIBUTE_UNUSED,
					float f9 ATTRIBUTE_UNUSED,
					float f10 ATTRIBUTE_UNUSED,
					float f11 ATTRIBUTE_UNUSED,
					float f12 ATTRIBUTE_UNUSED,
					float f13 ATTRIBUTE_UNUSED,
					float f14 ATTRIBUTE_UNUSED,
					float f15 ATTRIBUTE_UNUSED)
{
  /* Check argument values.  */
  assert (values_float.f0 == f0);
  assert (values_float.f1 == f1);
  assert (values_float.f2 == f2);
  assert (values_float.f3 == f3);
  assert (values_float.f4 == f4);
  assert (values_float.f5 == f5);
  assert (values_float.f6 == f6);
  assert (values_float.f7 == f7);
  assert (values_float.f8 == f8);
  assert (values_float.f9 == f9);
  assert (values_float.f10 == f10);
  assert (values_float.f11 == f11);
  assert (values_float.f12 == f12);
  assert (values_float.f13 == f13);
  assert (values_float.f14 == f14);
  assert (values_float.f15 == f15);

}

void
fun_check_float_passing_float16_regs (float f0 ATTRIBUTE_UNUSED,
				      float f1 ATTRIBUTE_UNUSED,
				      float f2 ATTRIBUTE_UNUSED,
				      float f3 ATTRIBUTE_UNUSED,
				      float f4 ATTRIBUTE_UNUSED,
				      float f5 ATTRIBUTE_UNUSED,
				      float f6 ATTRIBUTE_UNUSED,
				      float f7 ATTRIBUTE_UNUSED,
				      float f8 ATTRIBUTE_UNUSED,
				      float f9 ATTRIBUTE_UNUSED,
				      float f10 ATTRIBUTE_UNUSED,
				      float f11 ATTRIBUTE_UNUSED,
				      float f12 ATTRIBUTE_UNUSED,
				      float f13 ATTRIBUTE_UNUSED,
				      float f14 ATTRIBUTE_UNUSED,
				      float f15 ATTRIBUTE_UNUSED)
{
  /* Check register contents.  */
  check_float_arguments;
}

void
fun_check_float_passing_float20_values (float f0 ATTRIBUTE_UNUSED,
					float f1 ATTRIBUTE_UNUSED,
					float f2 ATTRIBUTE_UNUSED,
					float f3 ATTRIBUTE_UNUSED,
					float f4 ATTRIBUTE_UNUSED,
					float f5 ATTRIBUTE_UNUSED,
					float f6 ATTRIBUTE_UNUSED,
					float f7 ATTRIBUTE_UNUSED,
					float f8 ATTRIBUTE_UNUSED,
					float f9 ATTRIBUTE_UNUSED,
					float f10 ATTRIBUTE_UNUSED,
					float f11 ATTRIBUTE_UNUSED,
					float f12 ATTRIBUTE_UNUSED,
					float f13 ATTRIBUTE_UNUSED,
					float f14 ATTRIBUTE_UNUSED,
					float f15 ATTRIBUTE_UNUSED,
					float f16 ATTRIBUTE_UNUSED,
					float f17 ATTRIBUTE_UNUSED,
					float f18 ATTRIBUTE_UNUSED,
					float f19 ATTRIBUTE_UNUSED)
{
  /* Check argument values.  */
  assert (values_float.f0 == f0);
  assert (values_float.f1 == f1);
  assert (values_float.f2 == f2);
  assert (values_float.f3 == f3);
  assert (values_float.f4 == f4);
  assert (values_float.f5 == f5);
  assert (values_float.f6 == f6);
  assert (values_float.f7 == f7);
  assert (values_float.f8 == f8);
  assert (values_float.f9 == f9);
  assert (values_float.f10 == f10);
  assert (values_float.f11 == f11);
  assert (values_float.f12 == f12);
  assert (values_float.f13 == f13);
  assert (values_float.f14 == f14);
  assert (values_float.f15 == f15);
  assert (values_float.f16 == f16);
  assert (values_float.f17 == f17);
  assert (values_float.f18 == f18);
  assert (values_float.f19 == f19);

}

void
fun_check_float_passing_float20_regs (float f0 ATTRIBUTE_UNUSED,
				      float f1 ATTRIBUTE_UNUSED,
				      float f2 ATTRIBUTE_UNUSED,
				      float f3 ATTRIBUTE_UNUSED,
				      float f4 ATTRIBUTE_UNUSED,
				      float f5 ATTRIBUTE_UNUSED,
				      float f6 ATTRIBUTE_UNUSED,
				      float f7 ATTRIBUTE_UNUSED,
				      float f8 ATTRIBUTE_UNUSED,
				      float f9 ATTRIBUTE_UNUSED,
				      float f10 ATTRIBUTE_UNUSED,
				      float f11 ATTRIBUTE_UNUSED,
				      float f12 ATTRIBUTE_UNUSED,
				      float f13 ATTRIBUTE_UNUSED,
				      float f14 ATTRIBUTE_UNUSED,
				      float f15 ATTRIBUTE_UNUSED,
				      float f16 ATTRIBUTE_UNUSED,
				      float f17 ATTRIBUTE_UNUSED,
				      float f18 ATTRIBUTE_UNUSED,
				      float f19 ATTRIBUTE_UNUSED)
{
  /* Check register contents.  */
  check_float_arguments;
}

void
fun_check_float_passing_double8_values (double f0 ATTRIBUTE_UNUSED,
					double f1 ATTRIBUTE_UNUSED,
					double f2 ATTRIBUTE_UNUSED,
					double f3 ATTRIBUTE_UNUSED,
					double f4 ATTRIBUTE_UNUSED,
					double f5 ATTRIBUTE_UNUSED,
					double f6 ATTRIBUTE_UNUSED,
					double f7 ATTRIBUTE_UNUSED)
{
  /* Check argument values.  */
  assert (values_double.f0 == f0);
  assert (values_double.f1 == f1);
  assert (values_double.f2 == f2);
  assert (values_double.f3 == f3);
  assert (values_double.f4 == f4);
  assert (values_double.f5 == f5);
  assert (values_double.f6 == f6);
  assert (values_double.f7 == f7);

}

void
fun_check_float_passing_double8_regs (double f0 ATTRIBUTE_UNUSED,
				      double f1 ATTRIBUTE_UNUSED,
				      double f2 ATTRIBUTE_UNUSED,
				      double f3 ATTRIBUTE_UNUSED,
				      double f4 ATTRIBUTE_UNUSED,
				      double f5 ATTRIBUTE_UNUSED,
				      double f6 ATTRIBUTE_UNUSED,
				      double f7 ATTRIBUTE_UNUSED)
{
  /* Check register contents.  */
  check_double_arguments;
}

void
fun_check_float_passing_double16_values (double f0 ATTRIBUTE_UNUSED,
					 double f1 ATTRIBUTE_UNUSED,
					 double f2 ATTRIBUTE_UNUSED,
					 double f3 ATTRIBUTE_UNUSED,
					 double f4 ATTRIBUTE_UNUSED,
					 double f5 ATTRIBUTE_UNUSED,
					 double f6 ATTRIBUTE_UNUSED,
					 double f7 ATTRIBUTE_UNUSED,
					 double f8 ATTRIBUTE_UNUSED,
					 double f9 ATTRIBUTE_UNUSED,
					 double f10 ATTRIBUTE_UNUSED,
					 double f11 ATTRIBUTE_UNUSED,
					 double f12 ATTRIBUTE_UNUSED,
					 double f13 ATTRIBUTE_UNUSED,
					 double f14 ATTRIBUTE_UNUSED,
					 double f15 ATTRIBUTE_UNUSED)
{
  /* Check argument values.  */
  assert (values_double.f0 == f0);
  assert (values_double.f1 == f1);
  assert (values_double.f2 == f2);
  assert (values_double.f3 == f3);
  assert (values_double.f4 == f4);
  assert (values_double.f5 == f5);
  assert (values_double.f6 == f6);
  assert (values_double.f7 == f7);
  assert (values_double.f8 == f8);
  assert (values_double.f9 == f9);
  assert (values_double.f10 == f10);
  assert (values_double.f11 == f11);
  assert (values_double.f12 == f12);
  assert (values_double.f13 == f13);
  assert (values_double.f14 == f14);
  assert (values_double.f15 == f15);

}

void
fun_check_float_passing_double16_regs (double f0 ATTRIBUTE_UNUSED,
				       double f1 ATTRIBUTE_UNUSED,
				       double f2 ATTRIBUTE_UNUSED,
				       double f3 ATTRIBUTE_UNUSED,
				       double f4 ATTRIBUTE_UNUSED,
				       double f5 ATTRIBUTE_UNUSED,
				       double f6 ATTRIBUTE_UNUSED,
				       double f7 ATTRIBUTE_UNUSED,
				       double f8 ATTRIBUTE_UNUSED,
				       double f9 ATTRIBUTE_UNUSED,
				       double f10 ATTRIBUTE_UNUSED,
				       double f11 ATTRIBUTE_UNUSED,
				       double f12 ATTRIBUTE_UNUSED,
				       double f13 ATTRIBUTE_UNUSED,
				       double f14 ATTRIBUTE_UNUSED,
				       double f15 ATTRIBUTE_UNUSED)
{
  /* Check register contents.  */
  check_double_arguments;
}

void
fun_check_float_passing_double20_values (double f0 ATTRIBUTE_UNUSED,
					 double f1 ATTRIBUTE_UNUSED,
					 double f2 ATTRIBUTE_UNUSED,
					 double f3 ATTRIBUTE_UNUSED,
					 double f4 ATTRIBUTE_UNUSED,
					 double f5 ATTRIBUTE_UNUSED,
					 double f6 ATTRIBUTE_UNUSED,
					 double f7 ATTRIBUTE_UNUSED,
					 double f8 ATTRIBUTE_UNUSED,
					 double f9 ATTRIBUTE_UNUSED,
					 double f10 ATTRIBUTE_UNUSED,
					 double f11 ATTRIBUTE_UNUSED,
					 double f12 ATTRIBUTE_UNUSED,
					 double f13 ATTRIBUTE_UNUSED,
					 double f14 ATTRIBUTE_UNUSED,
					 double f15 ATTRIBUTE_UNUSED,
					 double f16 ATTRIBUTE_UNUSED,
					 double f17 ATTRIBUTE_UNUSED,
					 double f18 ATTRIBUTE_UNUSED,
					 double f19 ATTRIBUTE_UNUSED)
{
  /* Check argument values.  */
  assert (values_double.f0 == f0);
  assert (values_double.f1 == f1);
  assert (values_double.f2 == f2);
  assert (values_double.f3 == f3);
  assert (values_double.f4 == f4);
  assert (values_double.f5 == f5);
  assert (values_double.f6 == f6);
  assert (values_double.f7 == f7);
  assert (values_double.f8 == f8);
  assert (values_double.f9 == f9);
  assert (values_double.f10 == f10);
  assert (values_double.f11 == f11);
  assert (values_double.f12 == f12);
  assert (values_double.f13 == f13);
  assert (values_double.f14 == f14);
  assert (values_double.f15 == f15);
  assert (values_double.f16 == f16);
  assert (values_double.f17 == f17);
  assert (values_double.f18 == f18);
  assert (values_double.f19 == f19);

}

void
fun_check_float_passing_double20_regs (double f0 ATTRIBUTE_UNUSED,
				       double f1 ATTRIBUTE_UNUSED,
				       double f2 ATTRIBUTE_UNUSED,
				       double f3 ATTRIBUTE_UNUSED,
				       double f4 ATTRIBUTE_UNUSED,
				       double f5 ATTRIBUTE_UNUSED,
				       double f6 ATTRIBUTE_UNUSED,
				       double f7 ATTRIBUTE_UNUSED,
				       double f8 ATTRIBUTE_UNUSED,
				       double f9 ATTRIBUTE_UNUSED,
				       double f10 ATTRIBUTE_UNUSED,
				       double f11 ATTRIBUTE_UNUSED,
				       double f12 ATTRIBUTE_UNUSED,
				       double f13 ATTRIBUTE_UNUSED,
				       double f14 ATTRIBUTE_UNUSED,
				       double f15 ATTRIBUTE_UNUSED,
				       double f16 ATTRIBUTE_UNUSED,
				       double f17 ATTRIBUTE_UNUSED,
				       double f18 ATTRIBUTE_UNUSED,
				       double f19 ATTRIBUTE_UNUSED)
{
  /* Check register contents.  */
  check_double_arguments;
}

void
fun_check_x87_passing_ldouble8_values (ldouble f0 ATTRIBUTE_UNUSED,
				       ldouble f1 ATTRIBUTE_UNUSED,
				       ldouble f2 ATTRIBUTE_UNUSED,
				       ldouble f3 ATTRIBUTE_UNUSED,
				       ldouble f4 ATTRIBUTE_UNUSED,
				       ldouble f5 ATTRIBUTE_UNUSED,
				       ldouble f6 ATTRIBUTE_UNUSED,
				       ldouble f7 ATTRIBUTE_UNUSED)
{
  /* Check argument values.  */
  assert (values_ldouble.f0 == f0);
  assert (values_ldouble.f1 == f1);
  assert (values_ldouble.f2 == f2);
  assert (values_ldouble.f3 == f3);
  assert (values_ldouble.f4 == f4);
  assert (values_ldouble.f5 == f5);
  assert (values_ldouble.f6 == f6);
  assert (values_ldouble.f7 == f7);

}

void
fun_check_x87_passing_ldouble8_regs (ldouble f0 ATTRIBUTE_UNUSED,
				     ldouble f1 ATTRIBUTE_UNUSED,
				     ldouble f2 ATTRIBUTE_UNUSED,
				     ldouble f3 ATTRIBUTE_UNUSED,
				     ldouble f4 ATTRIBUTE_UNUSED,
				     ldouble f5 ATTRIBUTE_UNUSED,
				     ldouble f6 ATTRIBUTE_UNUSED,
				     ldouble f7 ATTRIBUTE_UNUSED)
{
  /* Check register contents.  */
  check_ldouble_arguments;
}

void
fun_check_x87_passing_ldouble16_values (ldouble f0 ATTRIBUTE_UNUSED,
					ldouble f1 ATTRIBUTE_UNUSED,
					ldouble f2 ATTRIBUTE_UNUSED,
					ldouble f3 ATTRIBUTE_UNUSED,
					ldouble f4 ATTRIBUTE_UNUSED,
					ldouble f5 ATTRIBUTE_UNUSED,
					ldouble f6 ATTRIBUTE_UNUSED,
					ldouble f7 ATTRIBUTE_UNUSED,
					ldouble f8 ATTRIBUTE_UNUSED,
					ldouble f9 ATTRIBUTE_UNUSED,
					ldouble f10 ATTRIBUTE_UNUSED,
					ldouble f11 ATTRIBUTE_UNUSED,
					ldouble f12 ATTRIBUTE_UNUSED,
					ldouble f13 ATTRIBUTE_UNUSED,
					ldouble f14 ATTRIBUTE_UNUSED,
					ldouble f15 ATTRIBUTE_UNUSED)
{
  /* Check argument values.  */
  assert (values_ldouble.f0 == f0);
  assert (values_ldouble.f1 == f1);
  assert (values_ldouble.f2 == f2);
  assert (values_ldouble.f3 == f3);
  assert (values_ldouble.f4 == f4);
  assert (values_ldouble.f5 == f5);
  assert (values_ldouble.f6 == f6);
  assert (values_ldouble.f7 == f7);
  assert (values_ldouble.f8 == f8);
  assert (values_ldouble.f9 == f9);
  assert (values_ldouble.f10 == f10);
  assert (values_ldouble.f11 == f11);
  assert (values_ldouble.f12 == f12);
  assert (values_ldouble.f13 == f13);
  assert (values_ldouble.f14 == f14);
  assert (values_ldouble.f15 == f15);

}

void
fun_check_x87_passing_ldouble16_regs (ldouble f0 ATTRIBUTE_UNUSED,
				      ldouble f1 ATTRIBUTE_UNUSED,
				      ldouble f2 ATTRIBUTE_UNUSED,
				      ldouble f3 ATTRIBUTE_UNUSED,
				      ldouble f4 ATTRIBUTE_UNUSED,
				      ldouble f5 ATTRIBUTE_UNUSED,
				      ldouble f6 ATTRIBUTE_UNUSED,
				      ldouble f7 ATTRIBUTE_UNUSED,
				      ldouble f8 ATTRIBUTE_UNUSED,
				      ldouble f9 ATTRIBUTE_UNUSED,
				      ldouble f10 ATTRIBUTE_UNUSED,
				      ldouble f11 ATTRIBUTE_UNUSED,
				      ldouble f12 ATTRIBUTE_UNUSED,
				      ldouble f13 ATTRIBUTE_UNUSED,
				      ldouble f14 ATTRIBUTE_UNUSED,
				      ldouble f15 ATTRIBUTE_UNUSED)
{
  /* Check register contents.  */
  check_ldouble_arguments;
}

void
fun_check_x87_passing_ldouble20_values (ldouble f0 ATTRIBUTE_UNUSED,
					ldouble f1 ATTRIBUTE_UNUSED,
					ldouble f2 ATTRIBUTE_UNUSED,
					ldouble f3 ATTRIBUTE_UNUSED,
					ldouble f4 ATTRIBUTE_UNUSED,
					ldouble f5 ATTRIBUTE_UNUSED,
					ldouble f6 ATTRIBUTE_UNUSED,
					ldouble f7 ATTRIBUTE_UNUSED,
					ldouble f8 ATTRIBUTE_UNUSED,
					ldouble f9 ATTRIBUTE_UNUSED,
					ldouble f10 ATTRIBUTE_UNUSED,
					ldouble f11 ATTRIBUTE_UNUSED,
					ldouble f12 ATTRIBUTE_UNUSED,
					ldouble f13 ATTRIBUTE_UNUSED,
					ldouble f14 ATTRIBUTE_UNUSED,
					ldouble f15 ATTRIBUTE_UNUSED,
					ldouble f16 ATTRIBUTE_UNUSED,
					ldouble f17 ATTRIBUTE_UNUSED,
					ldouble f18 ATTRIBUTE_UNUSED,
					ldouble f19 ATTRIBUTE_UNUSED)
{
  /* Check argument values.  */
  assert (values_ldouble.f0 == f0);
  assert (values_ldouble.f1 == f1);
  assert (values_ldouble.f2 == f2);
  assert (values_ldouble.f3 == f3);
  assert (values_ldouble.f4 == f4);
  assert (values_ldouble.f5 == f5);
  assert (values_ldouble.f6 == f6);
  assert (values_ldouble.f7 == f7);
  assert (values_ldouble.f8 == f8);
  assert (values_ldouble.f9 == f9);
  assert (values_ldouble.f10 == f10);
  assert (values_ldouble.f11 == f11);
  assert (values_ldouble.f12 == f12);
  assert (values_ldouble.f13 == f13);
  assert (values_ldouble.f14 == f14);
  assert (values_ldouble.f15 == f15);
  assert (values_ldouble.f16 == f16);
  assert (values_ldouble.f17 == f17);
  assert (values_ldouble.f18 == f18);
  assert (values_ldouble.f19 == f19);

}

void
fun_check_x87_passing_ldouble20_regs (ldouble f0 ATTRIBUTE_UNUSED,
				      ldouble f1 ATTRIBUTE_UNUSED,
				      ldouble f2 ATTRIBUTE_UNUSED,
				      ldouble f3 ATTRIBUTE_UNUSED,
				      ldouble f4 ATTRIBUTE_UNUSED,
				      ldouble f5 ATTRIBUTE_UNUSED,
				      ldouble f6 ATTRIBUTE_UNUSED,
				      ldouble f7 ATTRIBUTE_UNUSED,
				      ldouble f8 ATTRIBUTE_UNUSED,
				      ldouble f9 ATTRIBUTE_UNUSED,
				      ldouble f10 ATTRIBUTE_UNUSED,
				      ldouble f11 ATTRIBUTE_UNUSED,
				      ldouble f12 ATTRIBUTE_UNUSED,
				      ldouble f13 ATTRIBUTE_UNUSED,
				      ldouble f14 ATTRIBUTE_UNUSED,
				      ldouble f15 ATTRIBUTE_UNUSED,
				      ldouble f16 ATTRIBUTE_UNUSED,
				      ldouble f17 ATTRIBUTE_UNUSED,
				      ldouble f18 ATTRIBUTE_UNUSED,
				      ldouble f19 ATTRIBUTE_UNUSED)
{
  /* Check register contents.  */
  check_ldouble_arguments;
}

#define def_check_float16_passing8(_f0, _f1, _f2, _f3, _f4, _f5, _f6,\
				   _f7, _func1, _func2, TYPE) \
  values_ ## TYPE .f0 = _f0; \
  values_ ## TYPE .f1 = _f1; \
  values_ ## TYPE .f2 = _f2; \
  values_ ## TYPE .f3 = _f3; \
  values_ ## TYPE .f4 = _f4; \
  values_ ## TYPE .f5 = _f5; \
  values_ ## TYPE .f6 = _f6; \
  values_ ## TYPE .f7 = _f7; \
  WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7); \
  clear_float_registers; \
  fregs.F0._ ## TYPE [0] = _f0; \
  fregs.F1._ ## TYPE [0] = _f1; \
  fregs.F2._ ## TYPE [0] = _f2; \
  fregs.F3._ ## TYPE [0] = _f3; \
  fregs.F4._ ## TYPE [0] = _f4; \
  fregs.F5._ ## TYPE [0] = _f5; \
  fregs.F6._ ## TYPE [0] = _f6; \
  fregs.F7._ ## TYPE [0] = _f7; \
  num_fregs = 8; \
  WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7);

#define def_check_float16_passing16(_f0, _f1, _f2, _f3, _f4, _f5, _f6, \
				    _f7, _f8, _f9, _f10, _f11, _f12, _f13, \
				    _f14, _f15, _func1, _func2, TYPE) \
  values_ ## TYPE .f0 = _f0; \
  values_ ## TYPE .f1 = _f1; \
  values_ ## TYPE .f2 = _f2; \
  values_ ## TYPE .f3 = _f3; \
  values_ ## TYPE .f4 = _f4; \
  values_ ## TYPE .f5 = _f5; \
  values_ ## TYPE .f6 = _f6; \
  values_ ## TYPE .f7 = _f7; \
  values_ ## TYPE .f8 = _f8; \
  values_ ## TYPE .f9 = _f9; \
  values_ ## TYPE .f10 = _f10; \
  values_ ## TYPE .f11 = _f11; \
  values_ ## TYPE .f12 = _f12; \
  values_ ## TYPE .f13 = _f13; \
  values_ ## TYPE .f14 = _f14; \
  values_ ## TYPE .f15 = _f15; \
  WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, \
		     _f10, _f11, _f12, _f13, _f14, _f15); \
  clear_float_registers; \
  fregs.F0._ ## TYPE [0] = _f0; \
  fregs.F1._ ## TYPE [0] = _f1; \
  fregs.F2._ ## TYPE [0] = _f2; \
  fregs.F3._ ## TYPE [0] = _f3; \
  fregs.F4._ ## TYPE [0] = _f4; \
  fregs.F5._ ## TYPE [0] = _f5; \
  fregs.F6._ ## TYPE [0] = _f6; \
  fregs.F7._ ## TYPE [0] = _f7; \
  num_fregs = 8; \
  WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, \
		     _f10, _f11, _f12, _f13, _f14, _f15);

#define def_check_float16_passing20(_f0, _f1, _f2, _f3, _f4, _f5, _f6, \
				    _f7, _f8, _f9, _f10, _f11, _f12, \
				    _f13, _f14, _f15, _f16, _f17, \
				    _f18, _f19, _func1, _func2, TYPE) \
  values_ ## TYPE .f0 = _f0; \
  values_ ## TYPE .f1 = _f1; \
  values_ ## TYPE .f2 = _f2; \
  values_ ## TYPE .f3 = _f3; \
  values_ ## TYPE .f4 = _f4; \
  values_ ## TYPE .f5 = _f5; \
  values_ ## TYPE .f6 = _f6; \
  values_ ## TYPE .f7 = _f7; \
  values_ ## TYPE .f8 = _f8; \
  values_ ## TYPE .f9 = _f9; \
  values_ ## TYPE .f10 = _f10; \
  values_ ## TYPE .f11 = _f11; \
  values_ ## TYPE .f12 = _f12; \
  values_ ## TYPE .f13 = _f13; \
  values_ ## TYPE .f14 = _f14; \
  values_ ## TYPE .f15 = _f15; \
  values_ ## TYPE .f16 = _f16; \
  values_ ## TYPE .f17 = _f17; \
  values_ ## TYPE .f18 = _f18; \
  values_ ## TYPE .f19 = _f19; \
  WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, \
		     _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, \
		     _f17, _f18, _f19); \
  clear_float_registers; \
  fregs.F0._ ## TYPE [0] = _f0; \
  fregs.F1._ ## TYPE [0] = _f1; \
  fregs.F2._ ## TYPE [0] = _f2; \
  fregs.F3._ ## TYPE [0] = _f3; \
  fregs.F4._ ## TYPE [0] = _f4; \
  fregs.F5._ ## TYPE [0] = _f5; \
  fregs.F6._ ## TYPE [0] = _f6; \
  fregs.F7._ ## TYPE [0] = _f7; \
  num_fregs = 8; \
  WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, \
		     _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, \
		     _f18, _f19);


#define def_check_float_passing8(_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _func1, _func2, TYPE) \
  values_ ## TYPE .f0 = _f0; \
  values_ ## TYPE .f1 = _f1; \
  values_ ## TYPE .f2 = _f2; \
  values_ ## TYPE .f3 = _f3; \
  values_ ## TYPE .f4 = _f4; \
  values_ ## TYPE .f5 = _f5; \
  values_ ## TYPE .f6 = _f6; \
  values_ ## TYPE .f7 = _f7; \
  WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7); \
  \
  clear_float_registers; \
  fregs.F0._ ## TYPE [0] = _f0; \
  fregs.F1._ ## TYPE [0] = _f1; \
  fregs.F2._ ## TYPE [0] = _f2; \
  fregs.F3._ ## TYPE [0] = _f3; \
  fregs.F4._ ## TYPE [0] = _f4; \
  fregs.F5._ ## TYPE [0] = _f5; \
  fregs.F6._ ## TYPE [0] = _f6; \
  fregs.F7._ ## TYPE [0] = _f7; \
  num_fregs = 8; \
  WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7);

#define def_check_float_passing16(_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _func1, _func2, TYPE) \
  values_ ## TYPE .f0 = _f0; \
  values_ ## TYPE .f1 = _f1; \
  values_ ## TYPE .f2 = _f2; \
  values_ ## TYPE .f3 = _f3; \
  values_ ## TYPE .f4 = _f4; \
  values_ ## TYPE .f5 = _f5; \
  values_ ## TYPE .f6 = _f6; \
  values_ ## TYPE .f7 = _f7; \
  values_ ## TYPE .f8 = _f8; \
  values_ ## TYPE .f9 = _f9; \
  values_ ## TYPE .f10 = _f10; \
  values_ ## TYPE .f11 = _f11; \
  values_ ## TYPE .f12 = _f12; \
  values_ ## TYPE .f13 = _f13; \
  values_ ## TYPE .f14 = _f14; \
  values_ ## TYPE .f15 = _f15; \
  WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15); \
  \
  clear_float_registers; \
  fregs.F0._ ## TYPE [0] = _f0; \
  fregs.F1._ ## TYPE [0] = _f1; \
  fregs.F2._ ## TYPE [0] = _f2; \
  fregs.F3._ ## TYPE [0] = _f3; \
  fregs.F4._ ## TYPE [0] = _f4; \
  fregs.F5._ ## TYPE [0] = _f5; \
  fregs.F6._ ## TYPE [0] = _f6; \
  fregs.F7._ ## TYPE [0] = _f7; \
  num_fregs = 8; \
  WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15);

#define def_check_float_passing20(_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, _f18, _f19, _func1, _func2, TYPE) \
  values_ ## TYPE .f0 = _f0; \
  values_ ## TYPE .f1 = _f1; \
  values_ ## TYPE .f2 = _f2; \
  values_ ## TYPE .f3 = _f3; \
  values_ ## TYPE .f4 = _f4; \
  values_ ## TYPE .f5 = _f5; \
  values_ ## TYPE .f6 = _f6; \
  values_ ## TYPE .f7 = _f7; \
  values_ ## TYPE .f8 = _f8; \
  values_ ## TYPE .f9 = _f9; \
  values_ ## TYPE .f10 = _f10; \
  values_ ## TYPE .f11 = _f11; \
  values_ ## TYPE .f12 = _f12; \
  values_ ## TYPE .f13 = _f13; \
  values_ ## TYPE .f14 = _f14; \
  values_ ## TYPE .f15 = _f15; \
  values_ ## TYPE .f16 = _f16; \
  values_ ## TYPE .f17 = _f17; \
  values_ ## TYPE .f18 = _f18; \
  values_ ## TYPE .f19 = _f19; \
  WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, _f18, _f19); \
  \
  clear_float_registers; \
  fregs.F0._ ## TYPE [0] = _f0; \
  fregs.F1._ ## TYPE [0] = _f1; \
  fregs.F2._ ## TYPE [0] = _f2; \
  fregs.F3._ ## TYPE [0] = _f3; \
  fregs.F4._ ## TYPE [0] = _f4; \
  fregs.F5._ ## TYPE [0] = _f5; \
  fregs.F6._ ## TYPE [0] = _f6; \
  fregs.F7._ ## TYPE [0] = _f7; \
  num_fregs = 8; \
  WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, _f18, _f19);

#define def_check_x87_passing8(_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _func1, _func2, TYPE) \
  values_ ## TYPE .f0 = _f0; \
  values_ ## TYPE .f1 = _f1; \
  values_ ## TYPE .f2 = _f2; \
  values_ ## TYPE .f3 = _f3; \
  values_ ## TYPE .f4 = _f4; \
  values_ ## TYPE .f5 = _f5; \
  values_ ## TYPE .f6 = _f6; \
  values_ ## TYPE .f7 = _f7; \
  WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7); \
  \
  clear_x87_registers; \
  num_fregs = 0; \
  WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7);

#define def_check_x87_passing16(_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _func1, _func2, TYPE) \
  values_ ## TYPE .f0 = _f0; \
  values_ ## TYPE .f1 = _f1; \
  values_ ## TYPE .f2 = _f2; \
  values_ ## TYPE .f3 = _f3; \
  values_ ## TYPE .f4 = _f4; \
  values_ ## TYPE .f5 = _f5; \
  values_ ## TYPE .f6 = _f6; \
  values_ ## TYPE .f7 = _f7; \
  values_ ## TYPE .f8 = _f8; \
  values_ ## TYPE .f9 = _f9; \
  values_ ## TYPE .f10 = _f10; \
  values_ ## TYPE .f11 = _f11; \
  values_ ## TYPE .f12 = _f12; \
  values_ ## TYPE .f13 = _f13; \
  values_ ## TYPE .f14 = _f14; \
  values_ ## TYPE .f15 = _f15; \
  WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15); \
  \
  clear_x87_registers; \
  num_fregs = 0; \
  WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15);

#define def_check_x87_passing20(_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, _f18, _f19, _func1, _func2, TYPE) \
  values_ ## TYPE .f0 = _f0; \
  values_ ## TYPE .f1 = _f1; \
  values_ ## TYPE .f2 = _f2; \
  values_ ## TYPE .f3 = _f3; \
  values_ ## TYPE .f4 = _f4; \
  values_ ## TYPE .f5 = _f5; \
  values_ ## TYPE .f6 = _f6; \
  values_ ## TYPE .f7 = _f7; \
  values_ ## TYPE .f8 = _f8; \
  values_ ## TYPE .f9 = _f9; \
  values_ ## TYPE .f10 = _f10; \
  values_ ## TYPE .f11 = _f11; \
  values_ ## TYPE .f12 = _f12; \
  values_ ## TYPE .f13 = _f13; \
  values_ ## TYPE .f14 = _f14; \
  values_ ## TYPE .f15 = _f15; \
  values_ ## TYPE .f16 = _f16; \
  values_ ## TYPE .f17 = _f17; \
  values_ ## TYPE .f18 = _f18; \
  values_ ## TYPE .f19 = _f19; \
  WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, _f18, _f19); \
  \
  clear_x87_registers; \
  num_fregs = 0; \
  WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, _f18, _f19);

void
test_float16_on_stack ()
{
  def_check_float16_passing8 (32, 33, 34, 35, 36, 37, 38, 39,
			      fun_check_float16_passing_8_values,
			      fun_check_float16_passing_8_regs, _Float16);

  def_check_float16_passing16 (32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
			       44, 45, 46, 47,
			       fun_check_float16_passing_16_values,
			       fun_check_float16_passing_16_regs, _Float16);
}

void
test_too_many_float16 ()
{
  def_check_float16_passing20 (32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
			       44, 45, 46, 47, 48, 49, 50, 51,
			       fun_check_float16_passing_20_values,
			       fun_check_float16_passing_20_regs, _Float16);
}

void
test_floats_on_stack ()
{
  def_check_float_passing8 (32, 33, 34, 35, 36, 37, 38, 39,
			    fun_check_float_passing_float8_values,
			    fun_check_float_passing_float8_regs, float);

  def_check_float_passing16 (32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
			     44, 45, 46, 47,
			     fun_check_float_passing_float16_values,
			     fun_check_float_passing_float16_regs, float);
}

void
test_too_many_floats ()
{
  def_check_float_passing20 (32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
			     44, 45, 46, 47, 48, 49, 50, 51,
			     fun_check_float_passing_float20_values,
			     fun_check_float_passing_float20_regs, float);
}

void
test_doubles_on_stack ()
{
  def_check_float_passing8 (32, 33, 34, 35, 36, 37, 38, 39,
			    fun_check_float_passing_double8_values,
			    fun_check_float_passing_double8_regs, double);

  def_check_float_passing16 (32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
			     44, 45, 46, 47,
			     fun_check_float_passing_double16_values,
			     fun_check_float_passing_double16_regs, double);
}

void
test_too_many_doubles ()
{
  def_check_float_passing20 (32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
			     44, 45, 46, 47, 48, 49, 50, 51,
			     fun_check_float_passing_double20_values,
			     fun_check_float_passing_double20_regs, double);
}

void
test_long_doubles_on_stack ()
{
  def_check_x87_passing8 (32, 33, 34, 35, 36, 37, 38, 39,
			  fun_check_x87_passing_ldouble8_values,
			  fun_check_x87_passing_ldouble8_regs, ldouble);
}

void
test_too_many_long_doubles ()
{
  def_check_x87_passing20 (32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
			   45, 46, 47, 48, 49, 50, 51,
			   fun_check_x87_passing_ldouble20_values,
			   fun_check_x87_passing_ldouble20_regs, ldouble);
}

void
test_float128s_on_stack ()
{
}

void
test_too_many_float128s ()
{
}


static void
do_test (void)
{
  test_float16_on_stack ();
  test_too_many_float16 ();
  test_floats_on_stack ();
  test_too_many_floats ();
  test_doubles_on_stack ();
  test_too_many_doubles ();
  test_long_doubles_on_stack ();
  test_too_many_long_doubles ();
  test_float128s_on_stack ();
  test_too_many_float128s ();
}
