Fix int overflow in diffwtd_mask_d32()

BUG=b/69668572

Change-Id: Ie60081628b3fb5a14153664ec55f57fabd7d8433
diff --git a/av1/common/reconinter.c b/av1/common/reconinter.c
index 3d7fa0a..eae86cc 100644
--- a/av1/common/reconinter.c
+++ b/av1/common/reconinter.c
@@ -556,8 +556,9 @@
   int block_stride = block_size_wide[sb_type];
   for (i = 0; i < h; ++i) {
     for (j = 0; j < w; ++j) {
-      diff = abs(src0[i * src0_stride + j] - src1[i * src1_stride + j]);
-      diff = ROUND_POWER_OF_TWO(diff, round);
+      diff = (int)ROUND_POWER_OF_TWO(llabs((int64_t)src0[i * src0_stride + j] -
+                                           (int64_t)src1[i * src1_stride + j]),
+                                     round);
       m = clamp(mask_base + (diff / DIFF_FACTOR), 0, AOM_BLEND_A64_MAX_ALPHA);
       mask[i * block_stride + j] =
           which_inverse ? AOM_BLEND_A64_MAX_ALPHA - m : m;