summary refs log tree commit diff stats
path: root/tests/tcg/hexagon/fpstuff.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/tcg/hexagon/fpstuff.c')
-rw-r--r--tests/tcg/hexagon/fpstuff.c341
1 files changed, 147 insertions, 194 deletions
diff --git a/tests/tcg/hexagon/fpstuff.c b/tests/tcg/hexagon/fpstuff.c
index 28f9397155..344b9f7772 100644
--- a/tests/tcg/hexagon/fpstuff.c
+++ b/tests/tcg/hexagon/fpstuff.c
@@ -20,91 +20,44 @@
  */
 
 #include <stdio.h>
+#include <stdint.h>
 #include <float.h>
 
-const int FPINVF_BIT = 1;                 /* Invalid */
-const int FPINVF = 1 << FPINVF_BIT;
-const int FPDBZF_BIT = 2;                 /* Divide by zero */
-const int FPDBZF = 1 << FPDBZF_BIT;
-const int FPOVFF_BIT = 3;                 /* Overflow */
-const int FPOVFF = 1 << FPOVFF_BIT;
-const int FPUNFF_BIT = 4;                 /* Underflow */
-const int FPUNFF = 1 << FPUNFF_BIT;
-const int FPINPF_BIT = 5;                 /* Inexact */
-const int FPINPF = 1 << FPINPF_BIT;
-
-const int SF_ZERO =                       0x00000000;
-const int SF_NaN =                        0x7fc00000;
-const int SF_NaN_special =                0x7f800001;
-const int SF_ANY =                        0x3f800000;
-const int SF_HEX_NAN =                    0xffffffff;
-const int SF_small_neg =                  0xab98fba8;
-const int SF_denorm =                     0x00000001;
-const int SF_random =                     0x346001d6;
-const int SF_neg_zero =                   0x80000000;
-
-const long long DF_QNaN =                 0x7ff8000000000000ULL;
-const long long DF_SNaN =                 0x7ff7000000000000ULL;
-const long long DF_ANY =                  0x3f80000000000000ULL;
-const long long DF_HEX_NAN =              0xffffffffffffffffULL;
-const long long DF_small_neg =            0xbd731f7500000000ULL;
-
 int err;
 
-#define CLEAR_FPSTATUS \
-    "r2 = usr\n\t" \
-    "r2 = clrbit(r2, #1)\n\t" \
-    "r2 = clrbit(r2, #2)\n\t" \
-    "r2 = clrbit(r2, #3)\n\t" \
-    "r2 = clrbit(r2, #4)\n\t" \
-    "r2 = clrbit(r2, #5)\n\t" \
-    "usr = r2\n\t"
+#include "hex_test.h"
 
-static void check_fpstatus_bit(int usr, int expect, int flag, const char *n)
+static void check_fpstatus_bit(uint32_t usr, uint32_t expect, uint32_t flag,
+                               const char *name)
 {
-    int bit = 1 << flag;
+    uint32_t bit = 1 << flag;
     if ((usr & bit) != (expect & bit)) {
-        printf("ERROR %s: usr = %d, expect = %d\n", n,
+        printf("ERROR %s: usr = %d, expect = %d\n", name,
                (usr >> flag) & 1, (expect >> flag) & 1);
         err++;
     }
 }
 
-static void check_fpstatus(int usr, int expect)
-{
-    check_fpstatus_bit(usr, expect, FPINVF_BIT, "Invalid");
-    check_fpstatus_bit(usr, expect, FPDBZF_BIT, "Div by zero");
-    check_fpstatus_bit(usr, expect, FPOVFF_BIT, "Overflow");
-    check_fpstatus_bit(usr, expect, FPUNFF_BIT, "Underflow");
-    check_fpstatus_bit(usr, expect, FPINPF_BIT, "Inexact");
-}
-
-static void check32(int val, int expect)
-{
-    if (val != expect) {
-        printf("ERROR: 0x%x != 0x%x\n", val, expect);
-        err++;
-    }
-}
-static void check64(unsigned long long val, unsigned long long expect)
+static void check_fpstatus(uint32_t usr, uint32_t expect)
 {
-    if (val != expect) {
-        printf("ERROR: 0x%llx != 0x%llx\n", val, expect);
-        err++;
-    }
+    check_fpstatus_bit(usr, expect, USR_FPINVF_BIT, "Invalid");
+    check_fpstatus_bit(usr, expect, USR_FPDBZF_BIT, "Div by zero");
+    check_fpstatus_bit(usr, expect, USR_FPOVFF_BIT, "Overflow");
+    check_fpstatus_bit(usr, expect, USR_FPUNFF_BIT, "Underflow");
+    check_fpstatus_bit(usr, expect, USR_FPINPF_BIT, "Inexact");
 }
 
 static void check_compare_exception(void)
 {
-    int cmp;
-    int usr;
+    uint32_t cmp;
+    uint32_t usr;
 
     /* Check that FP compares are quiet (don't raise any execptions) */
     asm (CLEAR_FPSTATUS
          "p0 = sfcmp.eq(%2, %3)\n\t"
          "%0 = p0\n\t"
          "%1 = usr\n\t"
-         : "=r"(cmp), "=r"(usr) : "r"(SF_NaN), "r"(SF_ANY)
+         : "=r"(cmp), "=r"(usr) : "r"(SF_QNaN), "r"(SF_any)
          : "r2", "p0", "usr");
     check32(cmp, 0);
     check_fpstatus(usr, 0);
@@ -113,7 +66,7 @@ static void check_compare_exception(void)
          "p0 = sfcmp.gt(%2, %3)\n\t"
          "%0 = p0\n\t"
          "%1 = usr\n\t"
-         : "=r"(cmp), "=r"(usr) : "r"(SF_NaN), "r"(SF_ANY)
+         : "=r"(cmp), "=r"(usr) : "r"(SF_QNaN), "r"(SF_any)
          : "r2", "p0", "usr");
     check32(cmp, 0);
     check_fpstatus(usr, 0);
@@ -122,7 +75,7 @@ static void check_compare_exception(void)
          "p0 = sfcmp.ge(%2, %3)\n\t"
          "%0 = p0\n\t"
          "%1 = usr\n\t"
-         : "=r"(cmp), "=r"(usr) : "r"(SF_NaN), "r"(SF_ANY)
+         : "=r"(cmp), "=r"(usr) : "r"(SF_QNaN), "r"(SF_any)
          : "r2", "p0", "usr");
     check32(cmp, 0);
     check_fpstatus(usr, 0);
@@ -131,7 +84,7 @@ static void check_compare_exception(void)
          "p0 = dfcmp.eq(%2, %3)\n\t"
          "%0 = p0\n\t"
          "%1 = usr\n\t"
-         : "=r"(cmp), "=r"(usr) : "r"(DF_QNaN), "r"(DF_ANY)
+         : "=r"(cmp), "=r"(usr) : "r"(DF_QNaN), "r"(DF_any)
          : "r2", "p0", "usr");
     check32(cmp, 0);
     check_fpstatus(usr, 0);
@@ -140,7 +93,7 @@ static void check_compare_exception(void)
          "p0 = dfcmp.gt(%2, %3)\n\t"
          "%0 = p0\n\t"
          "%1 = usr\n\t"
-         : "=r"(cmp), "=r"(usr) : "r"(DF_QNaN), "r"(DF_ANY)
+         : "=r"(cmp), "=r"(usr) : "r"(DF_QNaN), "r"(DF_any)
          : "r2", "p0", "usr");
     check32(cmp, 0);
     check_fpstatus(usr, 0);
@@ -149,7 +102,7 @@ static void check_compare_exception(void)
          "p0 = dfcmp.ge(%2, %3)\n\t"
          "%0 = p0\n\t"
          "%1 = usr\n\t"
-         : "=r"(cmp), "=r"(usr) : "r"(DF_QNaN), "r"(DF_ANY)
+         : "=r"(cmp), "=r"(usr) : "r"(DF_QNaN), "r"(DF_any)
          : "r2", "p0", "usr");
     check32(cmp, 0);
     check_fpstatus(usr, 0);
@@ -157,8 +110,8 @@ static void check_compare_exception(void)
 
 static void check_sfminmax(void)
 {
-    int minmax;
-    int usr;
+    uint32_t minmax;
+    uint32_t usr;
 
     /*
      * Execute sfmin/sfmax instructions with one operand as NaN
@@ -169,46 +122,46 @@ static void check_sfminmax(void)
      asm (CLEAR_FPSTATUS
          "%0 = sfmin(%2, %3)\n\t"
          "%1 = usr\n\t"
-         : "=r"(minmax), "=r"(usr) : "r"(SF_NaN), "r"(SF_ANY)
+         : "=r"(minmax), "=r"(usr) : "r"(SF_QNaN), "r"(SF_any)
          : "r2", "usr");
-    check64(minmax, SF_ANY);
+    check32(minmax, SF_any);
     check_fpstatus(usr, 0);
 
     asm (CLEAR_FPSTATUS
          "%0 = sfmax(%2, %3)\n\t"
          "%1 = usr\n\t"
-         : "=r"(minmax), "=r"(usr) : "r"(SF_NaN), "r"(SF_ANY)
+         : "=r"(minmax), "=r"(usr) : "r"(SF_QNaN), "r"(SF_any)
          : "r2", "usr");
-    check64(minmax, SF_ANY);
+    check32(minmax, SF_any);
     check_fpstatus(usr, 0);
 
     /*
      * Execute sfmin/sfmax instructions with both operands NaN
      * Check that
-     *     Result is SF_HEX_NAN
+     *     Result is SF_HEX_NaN
      *     Invalid bit in USR is set
      */
     asm (CLEAR_FPSTATUS
          "%0 = sfmin(%2, %3)\n\t"
          "%1 = usr\n\t"
-         : "=r"(minmax), "=r"(usr) : "r"(SF_NaN), "r"(SF_NaN)
+         : "=r"(minmax), "=r"(usr) : "r"(SF_QNaN), "r"(SF_QNaN)
          : "r2", "usr");
-    check64(minmax, SF_HEX_NAN);
+    check32(minmax, SF_HEX_NaN);
     check_fpstatus(usr, 0);
 
     asm (CLEAR_FPSTATUS
          "%0 = sfmax(%2, %3)\n\t"
          "%1 = usr\n\t"
-         : "=r"(minmax), "=r"(usr) : "r"(SF_NaN), "r"(SF_NaN)
+         : "=r"(minmax), "=r"(usr) : "r"(SF_QNaN), "r"(SF_QNaN)
          : "r2", "usr");
-    check64(minmax, SF_HEX_NAN);
+    check32(minmax, SF_HEX_NaN);
     check_fpstatus(usr, 0);
 }
 
 static void check_dfminmax(void)
 {
-    unsigned long long minmax;
-    int usr;
+    uint64_t minmax;
+    uint32_t usr;
 
     /*
      * Execute dfmin/dfmax instructions with one operand as SNaN
@@ -219,18 +172,18 @@ static void check_dfminmax(void)
      asm (CLEAR_FPSTATUS
          "%0 = dfmin(%2, %3)\n\t"
          "%1 = usr\n\t"
-         : "=r"(minmax), "=r"(usr) : "r"(DF_SNaN), "r"(DF_ANY)
+         : "=r"(minmax), "=r"(usr) : "r"(DF_SNaN), "r"(DF_any)
          : "r2", "usr");
-    check64(minmax, DF_ANY);
-    check_fpstatus(usr, FPINVF);
+    check64(minmax, DF_any);
+    check_fpstatus(usr, USR_FPINVF);
 
     asm (CLEAR_FPSTATUS
          "%0 = dfmax(%2, %3)\n\t"
          "%1 = usr\n\t"
-         : "=r"(minmax), "=r"(usr) : "r"(DF_SNaN), "r"(DF_ANY)
+         : "=r"(minmax), "=r"(usr) : "r"(DF_SNaN), "r"(DF_any)
          : "r2", "usr");
-    check64(minmax, DF_ANY);
-    check_fpstatus(usr, FPINVF);
+    check64(minmax, DF_any);
+    check_fpstatus(usr, USR_FPINVF);
 
     /*
      * Execute dfmin/dfmax instructions with one operand as QNaN
@@ -241,23 +194,23 @@ static void check_dfminmax(void)
      asm (CLEAR_FPSTATUS
          "%0 = dfmin(%2, %3)\n\t"
          "%1 = usr\n\t"
-         : "=r"(minmax), "=r"(usr) : "r"(DF_QNaN), "r"(DF_ANY)
+         : "=r"(minmax), "=r"(usr) : "r"(DF_QNaN), "r"(DF_any)
          : "r2", "usr");
-    check64(minmax, DF_ANY);
+    check64(minmax, DF_any);
     check_fpstatus(usr, 0);
 
     asm (CLEAR_FPSTATUS
          "%0 = dfmax(%2, %3)\n\t"
          "%1 = usr\n\t"
-         : "=r"(minmax), "=r"(usr) : "r"(DF_QNaN), "r"(DF_ANY)
+         : "=r"(minmax), "=r"(usr) : "r"(DF_QNaN), "r"(DF_any)
          : "r2", "usr");
-    check64(minmax, DF_ANY);
+    check64(minmax, DF_any);
     check_fpstatus(usr, 0);
 
     /*
      * Execute dfmin/dfmax instructions with both operands SNaN
      * Check that
-     *     Result is DF_HEX_NAN
+     *     Result is DF_HEX_NaN
      *     Invalid bit in USR is set
      */
     asm (CLEAR_FPSTATUS
@@ -265,21 +218,21 @@ static void check_dfminmax(void)
          "%1 = usr\n\t"
          : "=r"(minmax), "=r"(usr) : "r"(DF_SNaN), "r"(DF_SNaN)
          : "r2", "usr");
-    check64(minmax, DF_HEX_NAN);
-    check_fpstatus(usr, FPINVF);
+    check64(minmax, DF_HEX_NaN);
+    check_fpstatus(usr, USR_FPINVF);
 
     asm (CLEAR_FPSTATUS
          "%0 = dfmax(%2, %3)\n\t"
          "%1 = usr\n\t"
          : "=r"(minmax), "=r"(usr) : "r"(DF_SNaN), "r"(DF_SNaN)
          : "r2", "usr");
-    check64(minmax, DF_HEX_NAN);
-    check_fpstatus(usr, FPINVF);
+    check64(minmax, DF_HEX_NaN);
+    check_fpstatus(usr, USR_FPINVF);
 
     /*
      * Execute dfmin/dfmax instructions with both operands QNaN
      * Check that
-     *     Result is DF_HEX_NAN
+     *     Result is DF_HEX_NaN
      *     No bit in USR is set
      */
     asm (CLEAR_FPSTATUS
@@ -287,7 +240,7 @@ static void check_dfminmax(void)
          "%1 = usr\n\t"
          : "=r"(minmax), "=r"(usr) : "r"(DF_QNaN), "r"(DF_QNaN)
          : "r2", "usr");
-    check64(minmax, DF_HEX_NAN);
+    check64(minmax, DF_HEX_NaN);
     check_fpstatus(usr, 0);
 
     asm (CLEAR_FPSTATUS
@@ -295,15 +248,15 @@ static void check_dfminmax(void)
          "%1 = usr\n\t"
          : "=r"(minmax), "=r"(usr) : "r"(DF_QNaN), "r"(DF_QNaN)
          : "r2", "usr");
-    check64(minmax, DF_HEX_NAN);
+    check64(minmax, DF_HEX_NaN);
     check_fpstatus(usr, 0);
 }
 
 static void check_sfrecipa(void)
 {
-    int result;
-    int usr;
-    int pred;
+    uint32_t result;
+    uint32_t usr;
+    uint32_t pred;
 
     /*
      * Check that sfrecipa doesn't set status bits when
@@ -312,25 +265,25 @@ static void check_sfrecipa(void)
     asm (CLEAR_FPSTATUS
          "%0,p0 = sfrecipa(%2, %3)\n\t"
          "%1 = usr\n\t"
-         : "=r"(result), "=r"(usr) : "r"(SF_NaN), "r"(SF_ANY)
+         : "=r"(result), "=r"(usr) : "r"(SF_QNaN), "r"(SF_any)
          : "r2", "p0", "usr");
-    check32(result, SF_HEX_NAN);
+    check32(result, SF_HEX_NaN);
     check_fpstatus(usr, 0);
 
     asm (CLEAR_FPSTATUS
          "%0,p0 = sfrecipa(%2, %3)\n\t"
          "%1 = usr\n\t"
-         : "=r"(result), "=r"(usr) : "r"(SF_ANY), "r"(SF_NaN)
+         : "=r"(result), "=r"(usr) : "r"(SF_any), "r"(SF_QNaN)
          : "r2", "p0", "usr");
-    check32(result, SF_HEX_NAN);
+    check32(result, SF_HEX_NaN);
     check_fpstatus(usr, 0);
 
     asm (CLEAR_FPSTATUS
          "%0,p0 = sfrecipa(%2, %2)\n\t"
          "%1 = usr\n\t"
-         : "=r"(result), "=r"(usr) : "r"(SF_NaN)
+         : "=r"(result), "=r"(usr) : "r"(SF_QNaN)
          : "r2", "p0", "usr");
-    check32(result, SF_HEX_NAN);
+    check32(result, SF_HEX_NaN);
     check_fpstatus(usr, 0);
 
     /*
@@ -340,26 +293,26 @@ static void check_sfrecipa(void)
     asm (CLEAR_FPSTATUS
          "%0,p0 = sfrecipa(%2, %3)\n\t"
          "%1 = usr\n\t"
-         : "=r"(result), "=r"(usr) : "r"(SF_NaN_special), "r"(SF_ANY)
+         : "=r"(result), "=r"(usr) : "r"(SF_QNaN_special), "r"(SF_any)
          : "r2", "p0", "usr");
-    check32(result, SF_HEX_NAN);
-    check_fpstatus(usr, FPINVF);
+    check32(result, SF_HEX_NaN);
+    check_fpstatus(usr, USR_FPINVF);
 
     asm (CLEAR_FPSTATUS
          "%0,p0 = sfrecipa(%2, %3)\n\t"
          "%1 = usr\n\t"
-         : "=r"(result), "=r"(usr) : "r"(SF_ANY), "r"(SF_NaN_special)
+         : "=r"(result), "=r"(usr) : "r"(SF_any), "r"(SF_QNaN_special)
          : "r2", "p0", "usr");
-    check32(result, SF_HEX_NAN);
-    check_fpstatus(usr, FPINVF);
+    check32(result, SF_HEX_NaN);
+    check_fpstatus(usr, USR_FPINVF);
 
     asm (CLEAR_FPSTATUS
          "%0,p0 = sfrecipa(%2, %2)\n\t"
          "%1 = usr\n\t"
-         : "=r"(result), "=r"(usr) : "r"(SF_NaN_special)
+         : "=r"(result), "=r"(usr) : "r"(SF_QNaN_special)
          : "r2", "p0", "usr");
-    check32(result, SF_HEX_NAN);
-    check_fpstatus(usr, FPINVF);
+    check32(result, SF_HEX_NaN);
+    check_fpstatus(usr, USR_FPINVF);
 
     /*
      * Check that sfrecipa properly sets divid-by-zero
@@ -370,12 +323,12 @@ static void check_sfrecipa(void)
          : "=r"(result), "=r"(usr) : "r"(0x885dc960), "r"(0x80000000)
          : "r2", "p0", "usr");
     check32(result, 0x3f800000);
-    check_fpstatus(usr, FPDBZF);
+    check_fpstatus(usr, USR_FPDBZF);
 
     asm (CLEAR_FPSTATUS
          "%0,p0 = sfrecipa(%2, %3)\n\t"
          "%1 = usr\n\t"
-         : "=r"(result), "=r"(usr) : "r"(0x7f800000), "r"(SF_ZERO)
+         : "=r"(result), "=r"(usr) : "r"(0x7f800000), "r"(SF_zero)
          : "r2", "p0", "usr");
     check32(result, 0x3f800000);
     check_fpstatus(usr, 0);
@@ -394,79 +347,79 @@ static void check_sfrecipa(void)
 
 static void check_canonical_NaN(void)
 {
-    int sf_result;
-    unsigned long long df_result;
-    int usr;
+    uint32_t sf_result;
+    uint64_t df_result;
+    uint32_t usr;
 
-    /* Check that each FP instruction properly returns SF_HEX_NAN/DF_HEX_NAN */
+    /* Check that each FP instruction properly returns SF_HEX_NaN/DF_HEX_NaN */
     asm(CLEAR_FPSTATUS
         "%0 = sfadd(%2, %3)\n\t"
         "%1 = usr\n\t"
-        : "=r"(sf_result), "=r"(usr) : "r"(SF_NaN), "r"(SF_ANY)
+        : "=r"(sf_result), "=r"(usr) : "r"(SF_QNaN), "r"(SF_any)
         : "r2", "usr");
-    check32(sf_result, SF_HEX_NAN);
+    check32(sf_result, SF_HEX_NaN);
     check_fpstatus(usr, 0);
 
     asm(CLEAR_FPSTATUS
         "%0 = sfsub(%2, %3)\n\t"
         "%1 = usr\n\t"
-        : "=r"(sf_result), "=r"(usr) : "r"(SF_NaN), "r"(SF_ANY)
+        : "=r"(sf_result), "=r"(usr) : "r"(SF_QNaN), "r"(SF_any)
         : "r2", "usr");
-    check32(sf_result, SF_HEX_NAN);
+    check32(sf_result, SF_HEX_NaN);
     check_fpstatus(usr, 0);
 
     asm(CLEAR_FPSTATUS
         "%0 = sfmpy(%2, %3)\n\t"
         "%1 = usr\n\t"
-        : "=r"(sf_result), "=r"(usr) : "r"(SF_NaN), "r"(SF_ANY)
+        : "=r"(sf_result), "=r"(usr) : "r"(SF_QNaN), "r"(SF_any)
         : "r2", "usr");
-    check32(sf_result, SF_HEX_NAN);
+    check32(sf_result, SF_HEX_NaN);
     check_fpstatus(usr, 0);
 
-    sf_result = SF_ZERO;
+    sf_result = SF_zero;
     asm(CLEAR_FPSTATUS
         "%0 += sfmpy(%2, %3)\n\t"
         "%1 = usr\n\t"
-        : "+r"(sf_result), "=r"(usr) : "r"(SF_NaN), "r"(SF_ANY)
+        : "+r"(sf_result), "=r"(usr) : "r"(SF_QNaN), "r"(SF_any)
         : "r2", "usr");
-    check32(sf_result, SF_HEX_NAN);
+    check32(sf_result, SF_HEX_NaN);
     check_fpstatus(usr, 0);
 
-    sf_result = SF_ZERO;
+    sf_result = SF_zero;
     asm(CLEAR_FPSTATUS
         "p0 = !cmp.eq(r0, r0)\n\t"
         "%0 += sfmpy(%2, %3, p0):scale\n\t"
         "%1 = usr\n\t"
-        : "+r"(sf_result), "=r"(usr) : "r"(SF_NaN), "r"(SF_ANY)
+        : "+r"(sf_result), "=r"(usr) : "r"(SF_QNaN), "r"(SF_any)
         : "r2", "usr", "p0");
-    check32(sf_result, SF_HEX_NAN);
+    check32(sf_result, SF_HEX_NaN);
     check_fpstatus(usr, 0);
 
-    sf_result = SF_ZERO;
+    sf_result = SF_zero;
     asm(CLEAR_FPSTATUS
         "%0 -= sfmpy(%2, %3)\n\t"
         "%1 = usr\n\t"
-        : "+r"(sf_result), "=r"(usr) : "r"(SF_NaN), "r"(SF_ANY)
+        : "+r"(sf_result), "=r"(usr) : "r"(SF_QNaN), "r"(SF_any)
         : "r2", "usr");
-    check32(sf_result, SF_HEX_NAN);
+    check32(sf_result, SF_HEX_NaN);
     check_fpstatus(usr, 0);
 
-    sf_result = SF_ZERO;
+    sf_result = SF_zero;
     asm(CLEAR_FPSTATUS
         "%0 += sfmpy(%2, %3):lib\n\t"
         "%1 = usr\n\t"
-        : "+r"(sf_result), "=r"(usr) : "r"(SF_NaN), "r"(SF_ANY)
+        : "+r"(sf_result), "=r"(usr) : "r"(SF_QNaN), "r"(SF_any)
         : "r2", "usr");
-    check32(sf_result, SF_HEX_NAN);
+    check32(sf_result, SF_HEX_NaN);
     check_fpstatus(usr, 0);
 
-    sf_result = SF_ZERO;
+    sf_result = SF_zero;
     asm(CLEAR_FPSTATUS
         "%0 -= sfmpy(%2, %3):lib\n\t"
         "%1 = usr\n\t"
-        : "+r"(sf_result), "=r"(usr) : "r"(SF_NaN), "r"(SF_ANY)
+        : "+r"(sf_result), "=r"(usr) : "r"(SF_QNaN), "r"(SF_any)
         : "r2", "usr");
-    check32(sf_result, SF_HEX_NAN);
+    check32(sf_result, SF_HEX_NaN);
     check_fpstatus(usr, 0);
 
     asm(CLEAR_FPSTATUS
@@ -474,38 +427,38 @@ static void check_canonical_NaN(void)
         "%1 = usr\n\t"
         : "=r"(sf_result), "=r"(usr) : "r"(DF_QNaN)
         : "r2", "usr");
-    check32(sf_result, SF_HEX_NAN);
+    check32(sf_result, SF_HEX_NaN);
     check_fpstatus(usr, 0);
 
     asm(CLEAR_FPSTATUS
         "%0 = dfadd(%2, %3)\n\t"
         "%1 = usr\n\t"
-        : "=r"(df_result), "=r"(usr) : "r"(DF_QNaN), "r"(DF_ANY)
+        : "=r"(df_result), "=r"(usr) : "r"(DF_QNaN), "r"(DF_any)
         : "r2", "usr");
-    check64(df_result, DF_HEX_NAN);
+    check64(df_result, DF_HEX_NaN);
     check_fpstatus(usr, 0);
 
     asm(CLEAR_FPSTATUS
         "%0 = dfsub(%2, %3)\n\t"
         "%1 = usr\n\t"
-        : "=r"(df_result), "=r"(usr) : "r"(DF_QNaN), "r"(DF_ANY)
+        : "=r"(df_result), "=r"(usr) : "r"(DF_QNaN), "r"(DF_any)
         : "r2", "usr");
-    check64(df_result, DF_HEX_NAN);
+    check64(df_result, DF_HEX_NaN);
     check_fpstatus(usr, 0);
 
     asm(CLEAR_FPSTATUS
         "%0 = convert_sf2df(%2)\n\t"
         "%1 = usr\n\t"
-        : "=r"(df_result), "=r"(usr) : "r"(SF_NaN)
+        : "=r"(df_result), "=r"(usr) : "r"(SF_QNaN)
         : "r2", "usr");
-    check64(df_result, DF_HEX_NAN);
+    check64(df_result, DF_HEX_NaN);
     check_fpstatus(usr, 0);
 }
 
 static void check_invsqrta(void)
 {
-    int result;
-    int predval;
+    uint32_t result;
+    uint32_t predval;
 
     asm volatile("%0,p0 = sfinvsqrta(%2)\n\t"
                  "%1 = p0\n\t"
@@ -518,7 +471,7 @@ static void check_invsqrta(void)
 
 static void check_sffixupn(void)
 {
-    int result;
+    uint32_t result;
 
     /* Check that sffixupn properly deals with denorm */
     asm volatile("%0 = sffixupn(%1, %2)\n\t"
@@ -529,7 +482,7 @@ static void check_sffixupn(void)
 
 static void check_sffixupd(void)
 {
-    int result;
+    uint32_t result;
 
     /* Check that sffixupd properly deals with denorm */
     asm volatile("%0 = sffixupd(%1, %2)\n\t"
@@ -540,36 +493,36 @@ static void check_sffixupd(void)
 
 static void check_sffms(void)
 {
-    int result;
+    uint32_t result;
 
     /* Check that sffms properly deals with -0 */
-    result = SF_neg_zero;
+    result = SF_zero_neg;
     asm ("%0 -= sfmpy(%1 , %2)\n\t"
         : "+r"(result)
-        : "r"(SF_ZERO), "r"(SF_ZERO)
+        : "r"(SF_zero), "r"(SF_zero)
         : "r12", "r8");
-    check32(result, SF_neg_zero);
+    check32(result, SF_zero_neg);
 
-    result = SF_ZERO;
+    result = SF_zero;
     asm ("%0 -= sfmpy(%1 , %2)\n\t"
         : "+r"(result)
-        : "r"(SF_neg_zero), "r"(SF_ZERO)
+        : "r"(SF_zero_neg), "r"(SF_zero)
         : "r12", "r8");
-    check32(result, SF_ZERO);
+    check32(result, SF_zero);
 
-    result = SF_ZERO;
+    result = SF_zero;
     asm ("%0 -= sfmpy(%1 , %2)\n\t"
         : "+r"(result)
-        : "r"(SF_ZERO), "r"(SF_neg_zero)
+        : "r"(SF_zero), "r"(SF_zero_neg)
         : "r12", "r8");
-    check32(result, SF_ZERO);
+    check32(result, SF_zero);
 }
 
 static void check_float2int_convs()
 {
-    int res32;
-    long long res64;
-    int usr;
+    uint32_t res32;
+    uint64_t res64;
+    uint32_t usr;
 
     /*
      * Check that the various forms of float-to-unsigned
@@ -581,7 +534,7 @@ static void check_float2int_convs()
         : "=r"(res32), "=r"(usr) : "r"(SF_small_neg)
         : "r2", "usr");
     check32(res32, 0);
-    check_fpstatus(usr, FPINVF);
+    check_fpstatus(usr, USR_FPINVF);
 
     asm(CLEAR_FPSTATUS
         "%0 = convert_sf2uw(%2):chop\n\t"
@@ -589,7 +542,7 @@ static void check_float2int_convs()
         : "=r"(res32), "=r"(usr) : "r"(SF_small_neg)
         : "r2", "usr");
     check32(res32, 0);
-    check_fpstatus(usr, FPINVF);
+    check_fpstatus(usr, USR_FPINVF);
 
     asm(CLEAR_FPSTATUS
         "%0 = convert_sf2ud(%2)\n\t"
@@ -597,7 +550,7 @@ static void check_float2int_convs()
         : "=r"(res64), "=r"(usr) : "r"(SF_small_neg)
         : "r2", "usr");
     check64(res64, 0);
-    check_fpstatus(usr, FPINVF);
+    check_fpstatus(usr, USR_FPINVF);
 
     asm(CLEAR_FPSTATUS
         "%0 = convert_sf2ud(%2):chop\n\t"
@@ -605,7 +558,7 @@ static void check_float2int_convs()
         : "=r"(res64), "=r"(usr) : "r"(SF_small_neg)
         : "r2", "usr");
     check64(res64, 0);
-    check_fpstatus(usr, FPINVF);
+    check_fpstatus(usr, USR_FPINVF);
 
     asm(CLEAR_FPSTATUS
         "%0 = convert_df2uw(%2)\n\t"
@@ -613,7 +566,7 @@ static void check_float2int_convs()
         : "=r"(res32), "=r"(usr) : "r"(DF_small_neg)
         : "r2", "usr");
     check32(res32, 0);
-    check_fpstatus(usr, FPINVF);
+    check_fpstatus(usr, USR_FPINVF);
 
     asm(CLEAR_FPSTATUS
         "%0 = convert_df2uw(%2):chop\n\t"
@@ -621,7 +574,7 @@ static void check_float2int_convs()
         : "=r"(res32), "=r"(usr) : "r"(DF_small_neg)
         : "r2", "usr");
     check32(res32, 0);
-    check_fpstatus(usr, FPINVF);
+    check_fpstatus(usr, USR_FPINVF);
 
     asm(CLEAR_FPSTATUS
         "%0 = convert_df2ud(%2)\n\t"
@@ -629,7 +582,7 @@ static void check_float2int_convs()
         : "=r"(res64), "=r"(usr) : "r"(DF_small_neg)
         : "r2", "usr");
     check64(res64, 0);
-    check_fpstatus(usr, FPINVF);
+    check_fpstatus(usr, USR_FPINVF);
 
     asm(CLEAR_FPSTATUS
         "%0 = convert_df2ud(%2):chop\n\t"
@@ -637,7 +590,7 @@ static void check_float2int_convs()
         : "=r"(res64), "=r"(usr) : "r"(DF_small_neg)
         : "r2", "usr");
     check64(res64, 0);
-    check_fpstatus(usr, FPINVF);
+    check_fpstatus(usr, USR_FPINVF);
 
     /*
      * Check that the various forms of float-to-signed return -1 for NaN
@@ -645,34 +598,34 @@ static void check_float2int_convs()
     asm(CLEAR_FPSTATUS
         "%0 = convert_sf2w(%2)\n\t"
         "%1 = usr\n\t"
-        : "=r"(res32), "=r"(usr) : "r"(SF_NaN)
+        : "=r"(res32), "=r"(usr) : "r"(SF_QNaN)
         : "r2", "usr");
     check32(res32, -1);
-    check_fpstatus(usr, FPINVF);
+    check_fpstatus(usr, USR_FPINVF);
 
     asm(CLEAR_FPSTATUS
         "%0 = convert_sf2w(%2):chop\n\t"
         "%1 = usr\n\t"
-        : "=r"(res32), "=r"(usr) : "r"(SF_NaN)
+        : "=r"(res32), "=r"(usr) : "r"(SF_QNaN)
         : "r2", "usr");
     check32(res32, -1);
-    check_fpstatus(usr, FPINVF);
+    check_fpstatus(usr, USR_FPINVF);
 
     asm(CLEAR_FPSTATUS
         "%0 = convert_sf2d(%2)\n\t"
         "%1 = usr\n\t"
-        : "=r"(res64), "=r"(usr) : "r"(SF_NaN)
+        : "=r"(res64), "=r"(usr) : "r"(SF_QNaN)
         : "r2", "usr");
     check64(res64, -1);
-    check_fpstatus(usr, FPINVF);
+    check_fpstatus(usr, USR_FPINVF);
 
     asm(CLEAR_FPSTATUS
         "%0 = convert_sf2d(%2):chop\n\t"
         "%1 = usr\n\t"
-        : "=r"(res64), "=r"(usr) : "r"(SF_NaN)
+        : "=r"(res64), "=r"(usr) : "r"(SF_QNaN)
         : "r2", "usr");
     check64(res64, -1);
-    check_fpstatus(usr, FPINVF);
+    check_fpstatus(usr, USR_FPINVF);
 
     asm(CLEAR_FPSTATUS
         "%0 = convert_df2w(%2)\n\t"
@@ -680,7 +633,7 @@ static void check_float2int_convs()
         : "=r"(res32), "=r"(usr) : "r"(DF_QNaN)
         : "r2", "usr");
     check32(res32, -1);
-    check_fpstatus(usr, FPINVF);
+    check_fpstatus(usr, USR_FPINVF);
 
     asm(CLEAR_FPSTATUS
         "%0 = convert_df2w(%2):chop\n\t"
@@ -688,7 +641,7 @@ static void check_float2int_convs()
         : "=r"(res32), "=r"(usr) : "r"(DF_QNaN)
         : "r2", "usr");
     check32(res32, -1);
-    check_fpstatus(usr, FPINVF);
+    check_fpstatus(usr, USR_FPINVF);
 
     asm(CLEAR_FPSTATUS
         "%0 = convert_df2d(%2)\n\t"
@@ -696,7 +649,7 @@ static void check_float2int_convs()
         : "=r"(res64), "=r"(usr) : "r"(DF_QNaN)
         : "r2", "usr");
     check64(res64, -1);
-    check_fpstatus(usr, FPINVF);
+    check_fpstatus(usr, USR_FPINVF);
 
     asm(CLEAR_FPSTATUS
         "%0 = convert_df2d(%2):chop\n\t"
@@ -704,13 +657,13 @@ static void check_float2int_convs()
         : "=r"(res64), "=r"(usr) : "r"(DF_QNaN)
         : "r2", "usr");
     check64(res64, -1);
-    check_fpstatus(usr, FPINVF);
+    check_fpstatus(usr, USR_FPINVF);
 }
 
 static void check_float_consts(void)
 {
-    int res32;
-    unsigned long long res64;
+    uint32_t res32;
+    uint64_t res64;
 
     asm("%0 = sfmake(#%1):neg\n\t" : "=r"(res32) : "i"(0xf));
     check32(res32, 0xbc9e0000);
@@ -725,23 +678,23 @@ static void check_float_consts(void)
     check64(res64, 0x3f93c00000000000ULL);
 }
 
-static inline unsigned long long dfmpyll(double x, double y)
+static inline uint64_t dfmpyll(double x, double y)
 {
-    unsigned long long res64;
+    uint64_t res64;
     asm("%0 = dfmpyll(%1, %2)" : "=r"(res64) : "r"(x), "r"(y));
     return res64;
 }
 
-static inline unsigned long long dfmpylh(double acc, double x, double y)
+static inline uint64_t dfmpylh(double acc, double x, double y)
 {
-    unsigned long long res64 = *(unsigned long long *)&acc;
+    uint64_t res64 = *(uint64_t *)&acc;
     asm("%0 += dfmpylh(%1, %2)" : "+r"(res64) : "r"(x), "r"(y));
     return res64;
 }
 
 static void check_dfmpyxx(void)
 {
-    unsigned long long res64;
+    uint64_t res64;
 
     res64 = dfmpyll(DBL_MIN, DBL_MIN);
     check64(res64, 0ULL);