(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
powerpc/
test_mffsl.c
       1  /* { dg-do run { target { powerpc*-*-* } } } */
       2  /* { dg-options "-O2 -std=c99 -mdejagnu-cpu=power9" } */
       3  /* { dg-require-effective-target p9vector_hw } */
       4  
       5  #ifdef DEBUG
       6  #include <stdio.h>
       7  #endif
       8  
       9  void abort (void);
      10  
      11  int main ()
      12  {
      13  
      14    register double  f14;
      15    union blah {
      16      double d;
      17      unsigned long long ll;
      18    } mffs_val, mffsl_val;
      19  
      20    /* Test reading the FPSCR register.  */
      21    __asm __volatile ("mffs %0" : "=f"(f14));
      22    mffs_val.d = f14;
      23    /* Select the same bits as mffsl.  */
      24    mffs_val.ll &= 0x70007f0ffLL;
      25  
      26    mffsl_val.d = __builtin_mffsl ();
      27  
      28    if (mffs_val.ll != mffsl_val.ll)
      29      {
      30  #ifdef DEBUG
      31        printf("ERROR, __builtin_mffsl() returned 0x%llx, not the expected value 0x%llx\n",
      32  	     mffsl_val.ll, mffs_val.ll);
      33  #else
      34        abort();
      35  #endif
      36      }		  
      37  }