sse = vpx_sum_squares_2d_i16(diff, diff_stride, bs);
#if CONFIG_VP9_HIGHBITDEPTH
- if ((xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) && (xd->bd > 8))
- sse = ROUND_POWER_OF_TWO(sse, (xd->bd - 8) * 2);
+ if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH)
+ sse = ROUNDZ_POWER_OF_TWO(sse, (xd->bd - 8) * 2);
#endif // CONFIG_VP9_HIGHBITDEPTH
sse = (int64_t)sse * 16;
}
#if CONFIG_VP9_HIGHBITDEPTH
- if ((xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) && (xd->bd > 8))
- tmp = ROUND_POWER_OF_TWO(tmp, (xd->bd - 8) * 2);
+ if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH)
+ tmp = ROUNDZ_POWER_OF_TWO(tmp, (xd->bd - 8) * 2);
#endif // CONFIG_VP9_HIGHBITDEPTH
*bsse += (int64_t)tmp * 16;
#define __builtin_prefetch(x)
#endif
-/* Shift down with rounding */
+/* Shift down with rounding for use when n > 0 */
#define ROUND_POWER_OF_TWO(value, n) \
(((value) + (1 << ((n) - 1))) >> (n))
+/* Shift down with rounding for use when n >= 0 */
+#define ROUNDZ_POWER_OF_TWO(value, n) \
+ ((n) ? (((value) + (1 << ((n) - 1))) >> (n)) : (value))
+
#define ALIGN_POWER_OF_TWO(value, n) \
(((value) + ((1 << (n)) - 1)) & ~((1 << (n)) - 1))