remove inv()

inv(x) -> 1-x

Change-Id: If64591f4f3ce15eb487222f052fc4bd1bac97977
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280316
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
diff --git a/src/core/SkVM.cpp b/src/core/SkVM.cpp
index 04b35fa..e196c8f 100644
--- a/src/core/SkVM.cpp
+++ b/src/core/SkVM.cpp
@@ -1257,16 +1257,16 @@
                 fn(src.r, dst.r),
                 fn(src.g, dst.g),
                 fn(src.b, dst.b),
-                mad(dst.a, inv(src.a), src.a),   // srcover for alpha
+                mad(dst.a, 1-src.a, src.a),   // srcover for alpha
             };
         };
 
         auto non_sep = [&](auto R, auto G, auto B) {
             return Color{
-                add(mma(src.r, inv(dst.a), dst.r, inv(src.a)), R),
-                add(mma(src.g, inv(dst.a), dst.g, inv(src.a)), G),
-                add(mma(src.b, inv(dst.a), dst.b, inv(src.a)), B),
-                mad(dst.a, inv(src.a), src.a),  // srcover
+                add(mma(src.r, 1-dst.a,  dst.r, 1-src.a), R),
+                add(mma(src.g, 1-dst.a,  dst.g, 1-src.a), G),
+                add(mma(src.b, 1-dst.a,  dst.b, 1-src.a), B),
+                mad(dst.a,1-src.a, src.a),  // srcover
             };
         };
 
@@ -1281,7 +1281,7 @@
             case SkBlendMode::kDstOver: std::swap(src, dst); // fall-through
             case SkBlendMode::kSrcOver:
                 return apply_rgba([&](auto s, auto d) {
-                    return mad(d, inv(src.a), s);
+                    return mad(d,1-src.a, s);
                 });
 
             case SkBlendMode::kDstIn: std::swap(src, dst); // fall-through
@@ -1293,18 +1293,18 @@
             case SkBlendMode::kDstOut: std::swap(src, dst); // fall-through
             case SkBlendMode::kSrcOut:
                 return apply_rgba([&](auto s, auto d) {
-                    return mul(s, inv(dst.a));
+                    return mul(s, 1-dst.a);
                 });
 
             case SkBlendMode::kDstATop: std::swap(src, dst); // fall-through
             case SkBlendMode::kSrcATop:
                 return apply_rgba([&](auto s, auto d) {
-                    return mma(s, dst.a,  d, inv(src.a));
+                    return mma(s, dst.a,  d, 1-src.a);
                 });
 
             case SkBlendMode::kXor:
                 return apply_rgba([&](auto s, auto d) {
-                    return mma(s, inv(dst.a),  d, inv(src.a));
+                    return mma(s, 1-dst.a,  d, 1-src.a);
                 });
 
             case SkBlendMode::kPlus:
@@ -1352,9 +1352,9 @@
                     // TODO: divide and check for non-finite result instead of checking for s == 0.
                     auto mn   = min(dst.a,
                                     div(mul(sub(dst.a, d), src.a), s)),
-                         burn = mad(src.a, sub(dst.a, mn), mma(s, inv(dst.a), d, inv(src.a)));
-                    return select(eq(d, dst.a), mad(s, inv(dst.a), d),
-                           select(eq(s,  0.0f), mul(d, inv(src.a))
+                         burn = mad(src.a, sub(dst.a, mn), mma(s, 1-dst.a, d, 1-src.a));
+                    return select(eq(d, dst.a), mad(s, 1-dst.a, d),
+                           select(eq(s,  0.0f), mul(d, 1-src.a)
                                               , burn));
                 });
 
@@ -1363,15 +1363,15 @@
                     // TODO: divide and check for non-finite result instead of checking for s == sa.
                     auto dodge = mad(src.a, min(dst.a,
                                                 div(mul(d, src.a), sub(src.a, s))),
-                                     mma(s, inv(dst.a), d, inv(src.a)));
-                    return select(eq(d,  0.0f), mul(s, inv(dst.a)),
-                           select(eq(s, src.a), mad(d, inv(src.a), s)
+                                     mma(s, 1-dst.a, d, 1-src.a));
+                    return select(eq(d,  0.0f), mul(s, 1-dst.a),
+                           select(eq(s, src.a), mad(d, 1-src.a, s)
                                               , dodge));
                 });
 
             case SkBlendMode::kHardLight:
                 return apply_rgb_srcover_a([&](auto s, auto d) {
-                    return add(mma(s, inv(dst.a), d, inv(src.a)),
+                    return add(mma(s, 1-dst.a, d, 1-src.a),
                                select(lte(two(s), src.a),
                                       two(mul(s, d)),
                                       sub(mul(src.a, dst.a), two(mul(sub(dst.a, d), sub(src.a, s))))));
@@ -1379,7 +1379,7 @@
 
             case SkBlendMode::kOverlay:
                 return apply_rgb_srcover_a([&](auto s, auto d) {
-                    return add(mma(s, inv(dst.a), d, inv(src.a)),
+                    return add(mma(s, 1-dst.a, d, 1-src.a),
                                select(lte(two(d), dst.a),
                                       two(mul(s, d)),
                                       sub(mul(src.a, dst.a), two(mul(sub(dst.a, d), sub(src.a, s))))));
@@ -1387,7 +1387,7 @@
 
             case SkBlendMode::kMultiply:
                 return apply_rgba([&](auto s, auto d) {
-                    return add(mma(s, inv(dst.a), d, inv(src.a)), mul(s, d));
+                    return add(mma(s, 1-dst.a, d, 1-src.a), mul(s, d));
                 });
 
             case SkBlendMode::kSoftLight:
@@ -1402,7 +1402,7 @@
                          //    3. light src, light dst?
 
                          // Used in case 1
-                    auto darkSrc = mul(d, mad(sub(s2, src.a), inv(m), src.a)),
+                    auto darkSrc = mul(d, mad(sub(s2, src.a), 1-m, src.a)),
                          // Used in case 2
                          darkDst = mad(mad(m4, m4, m4), sub(m, 1.0f), mul(7.0f, m)),
                          // Used in case 3.
@@ -1411,9 +1411,9 @@
                          liteSrc = mad(mul(dst.a, sub(s2, src.a)),
                                        select(lte(two(two(d)), dst.a), darkDst, liteDst),
                                        mul(d, src.a));
-                    return mad(s, inv(dst.a), mad(d,
-                                                  inv(src.a),
-                                                  select(lte(s2, src.a), darkSrc, liteSrc)));
+                    return mad(s, 1-dst.a, mad(d,
+                                               1-src.a,
+                                               select(lte(s2, src.a), darkSrc, liteSrc)));
 
 
                 });
diff --git a/src/core/SkVM.h b/src/core/SkVM.h
index 3943d4d..d8278f9 100644
--- a/src/core/SkVM.h
+++ b/src/core/SkVM.h
@@ -504,7 +504,6 @@
         F32 mad(F32  x, F32  y, F32  z) { return add(mul(x,y), z); }
         F32 mad(F32a x, F32a y, F32a z) { return mad(_(x), _(y), _(z)); }
 
-        F32    inv(F32 x) { return sub(1.0f, x); }
         F32 negate(F32 x) { return sub(0.0f, x); }
         F32   sqrt(F32);
 
diff --git a/src/effects/SkHighContrastFilter.cpp b/src/effects/SkHighContrastFilter.cpp
index 1ae0a05..83ba5cf 100644
--- a/src/effects/SkHighContrastFilter.cpp
+++ b/src/effects/SkHighContrastFilter.cpp
@@ -154,10 +154,10 @@
     }
 
     if (fConfig.fInvertStyle == InvertStyle::kInvertBrightness) {
-        c = {p->inv(c.r), p->inv(c.g), p->inv(c.b), c.a};
+        c = {1-c.r, 1-c.g, 1-c.b, c.a};
     } else if (fConfig.fInvertStyle == InvertStyle::kInvertLightness) {
         auto [h, s, l, a] = p->to_hsla(c);
-        c = p->to_rgba({h, s, p->inv(l), a});
+        c = p->to_rgba({h, s, 1-l, a});
     }
 
     if (fConfig.fContrast != 0.0) {