Пример #1
0
NOINLINE float
foo32x2_le (float32x2_t x)
{
#ifdef __i386__
  __builtin_ia32_emms ();
#endif
  return bar (x[0]);
}
void foo (void)
{
  unsigned long long a = 0x0102030405060708LL;
  unsigned long long b = 0x1020304050607080LL;
  unsigned long long c;

  c = (unsigned long long) __builtin_ia32_paddusb ((__v8qi) a, (__v8qi) b);
  __builtin_ia32_emms ();
  if (c != 0x1122334455667788LL)
    abort ();
}
Пример #3
0
NOINLINE float
foo32x2_be (float32x2_t x)
{
#ifdef __i386__
  /* ix86 passes float32x2 vector arguments in mmx registers.  We need to
     emit emms to empty MMS state and reenable x87 stack before float value
     can be loaded to and passed in x87 floating-point return register.  */
  __builtin_ia32_emms ();
#endif
  return bar (x[1]);
}