ref: 3a3af969e7b694a02d4ba51c7bf7ab0258724292
parent: 8ff894639bbfaf849f54424f0d8241b076f0fd97
author: Henrik Gramner <gramner@twoorioles.com>
date: Tue Jan 14 15:52:09 EST 2020
x86: Fix missing saturations in inverse identity asm
--- a/src/x86/itx.asm
+++ b/src/x86/itx.asm
@@ -3452,8 +3452,8 @@
IDTX16 0, 1, 15
mova m1, [rsp+32*0]
pmulhrsw m15, m1
- paddw m1, m1
- paddw m15, m1
+ paddsw m1, m1
+ paddsw m15, m1
jmp m(idct_16x16_internal).end
%define o_base iadst4_dconly2a + 128
--- a/src/x86/itx_ssse3.asm
+++ b/src/x86/itx_ssse3.asm
@@ -880,7 +880,7 @@
pmulhrsw m1, m0, [coeffq]
pmulhrsw m1, m0
pmulhrsw m0, m1, [o(pw_1697x8)]
- paddw m1, m0
+ paddsw m1, m0
pmulhrsw m1, [o(pw_2048)]
punpcklwd m1, m1
punpckhdq m2, m1, m1
@@ -903,7 +903,7 @@
punpcklqdq m0, m2
mova m4, [o(pw_2896x8)]
pmulhrsw m0, m4
- paddw m0, m0
+ paddsw m0, m0
pmulhrsw m0, m4
pmulhrsw m0, [o(pw_2048)]
mova m1, m0
@@ -1159,10 +1159,10 @@
pmulhrsw m1, m3, [coeffq+16*1]
pmulhrsw m2, m3, [coeffq+16*2]
pmulhrsw m3, [coeffq+16*3]
- paddw m0, m0
- paddw m1, m1
- paddw m2, m2
- paddw m3, m3
+ paddsw m0, m0
+ paddsw m1, m1
+ paddsw m2, m2
+ paddsw m3, m3
punpckhwd m4, m0, m1
punpcklwd m0, m1
@@ -1184,10 +1184,10 @@
pmulhrsw m5, m7, m1
pmulhrsw m6, m7, m2
pmulhrsw m7, m3
- paddw m0, m4
- paddw m1, m5
- paddw m2, m6
- paddw m3, m7
+ paddsw m0, m4
+ paddsw m1, m5
+ paddsw m2, m6
+ paddsw m3, m7
jmp m(iadst_8x4_internal).end
%macro INV_TXFM_8X8_FN 2-3 -1 ; type1, type2, fast_thresh