Add bench to test float to fixed conversion

R=reed@google.com

Review URL: https://codereview.chromium.org/19773006

git-svn-id: http://skia.googlecode.com/svn/trunk@10155 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/bench/MathBench.cpp b/bench/MathBench.cpp
index 1fc5705..32a89d6 100644
--- a/bench/MathBench.cpp
+++ b/bench/MathBench.cpp
@@ -480,6 +480,48 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
+class FixedMathBench : public SkBenchmark {
+    enum {
+        N = SkBENCHLOOP(1000),
+        NN = SkBENCHLOOP(1000),
+    };
+    float fData[N];
+    SkFixed fResult[N];
+public:
+
+    FixedMathBench(void* param) : INHERITED(param) {
+        SkRandom rand;
+        for (int i = 0; i < N; ++i) {
+            fData[i] = rand.nextSScalar1();
+        }
+
+        fIsRendering = false;
+    }
+
+protected:
+    virtual void onDraw(SkCanvas*) {
+        for (int j = 0; j < NN; ++j) {
+            for (int i = 0; i < N - 4; ++i) {
+                fResult[i] = SkFloatToFixed(fData[i]);
+            }
+        }
+
+        SkPaint paint;
+        if (paint.getAlpha() == 0) {
+            SkDebugf("%d\n", fResult[0]);
+        }
+    }
+
+    virtual const char* onGetName() {
+        return "float_to_fixed";
+    }
+
+private:
+    typedef SkBenchmark INHERITED;
+};
+
+///////////////////////////////////////////////////////////////////////////////
+
 DEF_BENCH( return new NoOpMathBench(p); )
 DEF_BENCH( return new SlowISqrtMathBench(p); )
 DEF_BENCH( return new FastISqrtMathBench(p); )
@@ -501,3 +543,5 @@
 DEF_BENCH( return new CLZBench(p, true); )
 
 DEF_BENCH( return new NormalizeBench(p); )
+
+DEF_BENCH( return new FixedMathBench(p); )