blob: 41377efba1a7167fda4f066fa08cf77347492125 [file] [log] [blame]
/* { dg-do run { target { powerpc*-*-* } } } */
/* { dg-options "-O2 -std=c99" } */
#ifdef DEBUG
#include <stdio.h>
#endif
void abort (void);
int main ()
{
register double f14;
union blah {
double d;
unsigned long long ll;
} mffs_val, mffsl_val;
/* Test reading the FPSCR register. */
__asm __volatile ("mffs %0" : "=f"(f14));
mffs_val.d = f14;
/* Select the same bits as mffsl. */
mffs_val.ll &= 0x70007f0ffLL;
mffsl_val.d = __builtin_mffsl ();
if (mffs_val.ll != mffsl_val.ll)
{
#ifdef DEBUG
printf("ERROR, __builtin_mffsl() returned 0x%llx, not the expecected value 0x%llx\n",
mffsl_val.ll, mffs_val.ll);
#else
abort();
#endif
}
}