diff --git a/tests/MathTest.cpp b/tests/MathTest.cpp
index 3efbbcb..1b8954a 100644
--- a/tests/MathTest.cpp
+++ b/tests/MathTest.cpp
@@ -188,6 +188,7 @@
     }
 }
 
+#if defined(SkLONGLONG)
 static int symmetric_fixmul(int a, int b) {
     int sa = SkExtractSign(a);
     int sb = SkExtractSign(b);
@@ -195,9 +196,19 @@
     a = SkApplySign(a, sa);
     b = SkApplySign(b, sb);
 
-    int c = (int)(((int64_t)a * b) >> 16);
+#if 1
+    int c = (int)(((SkLONGLONG)a * b) >> 16);
+
     return SkApplySign(c, sa ^ sb);
+#else
+    SkLONGLONG ab = (SkLONGLONG)a * b;
+    if (sa ^ sb) {
+        ab = -ab;
+    }
+    return ab >> 16;
+#endif
 }
+#endif
 
 static void check_length(skiatest::Reporter* reporter,
                          const SkPoint& p, SkScalar targetLen) {
@@ -481,11 +492,12 @@
     unittest_fastfloat(reporter);
     unittest_isfinite(reporter);
 
+#ifdef SkLONGLONG
     for (i = 0; i < 10000; i++) {
         SkFixed numer = rand.nextS();
         SkFixed denom = rand.nextS();
         SkFixed result = SkFixedDiv(numer, denom);
-        int64_t check = ((int64_t)numer << 16) / denom;
+        SkLONGLONG check = ((SkLONGLONG)numer << 16) / denom;
 
         (void)SkCLZ(numer);
         (void)SkCLZ(denom);
@@ -510,6 +522,7 @@
         r2 = SkFixedSquare(numer);
         REPORTER_ASSERT(reporter, result == r2);
     }
+#endif
 
     test_blend(reporter);
 
