Add shl_i32, srs_i32, and shr_i32 ops

Change-Id: I28e3fb933f65e38997bf4afe8bdc970e0aad2a6c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/274030
Commit-Queue: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
diff --git a/src/core/SkVM.cpp b/src/core/SkVM.cpp
index 88c3d57..d9c3ce9 100644
--- a/src/core/SkVM.cpp
+++ b/src/core/SkVM.cpp
@@ -1971,6 +1971,9 @@
                 case Op::add_i32: vals[i] = b->CreateAdd(vals[x], vals[y]); break;
                 case Op::sub_i32: vals[i] = b->CreateSub(vals[x], vals[y]); break;
                 case Op::mul_i32: vals[i] = b->CreateMul(vals[x], vals[y]); break;
+                case Op::shl_i32: vals[i] = b->CreateShl(vals[x], immy); break;
+                case Op::sra_i32: vals[i] = b->CreateAShr(vals[x], immy); break;
+                case Op::shr_i32: vals[i] = b->CreateLShr(vals[x], immy); break;
 
                 case Op::add_f32: vals[i] = I(b->CreateFAdd(F(vals[x]), F(vals[y]))); break;
                 case Op::sub_f32: vals[i] = I(b->CreateFSub(F(vals[x]), F(vals[y]))); break;