Implement compile-time optimization for sqrt(constant).

Change-Id: I3427fbaf57787c3051db95ec5882c9292d7985cf
Bug: skia:12034
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/411312
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
diff --git a/tests/SkSLDSLTest.cpp b/tests/SkSLDSLTest.cpp
index e62e11d..47308b0 100644
--- a/tests/SkSLDSLTest.cpp
+++ b/tests/SkSLDSLTest.cpp
@@ -1225,8 +1225,8 @@
     {
         DSLExpression sqrt = DSLWriter::IRGenerator().convertIdentifier(/*offset=*/-1, "sqrt");
         SkTArray<DSLWrapper<DSLExpression>> args;
-        args.emplace_back(1);
-        EXPECT_EQUAL(sqrt(std::move(args)), "sqrt(1.0)");
+        args.emplace_back(16);
+        EXPECT_EQUAL(sqrt(std::move(args)), "4.0");  // sqrt(16) gets optimized to 4
     }
 
     {
@@ -1335,8 +1335,8 @@
 
 DEF_GPUTEST_FOR_MOCK_CONTEXT(DSLDiscard, r, ctxInfo) {
     AutoDSLContext context(ctxInfo.directContext()->priv().getGpu());
-    Statement x = If(Sqrt(1) > 0, Discard());
-    EXPECT_EQUAL(x, "if ((sqrt(1.0) > 0.0)) discard;");
+    Var x(kFloat_Type, "x", 1);
+    EXPECT_EQUAL(If(Sqrt(x) > 0, Discard()), "if ((sqrt(x) > 0.0)) discard;");
 }
 
 DEF_GPUTEST_FOR_MOCK_CONTEXT(DSLDo, r, ctxInfo) {