{"name": "ff_idct_xvid_sse2_add", "code": "__int64 __fastcall ff_idct_xvid_sse2_add ( __int64 @@a1@@ , unsigned int @@a2@@ , __int64 @@a3@@ ) { ff_idct_xvid_sse2 ( @@a3@@ ) ; return ff_add_pixels_clamped_mmx ( @@a3@@ , @@a1@@ , @@a2@@ ) ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}]}
{"name": "ff_idct_xvid_sse2", "code": "__int64 __fastcall ff_idct_xvid_sse2 ( __int64 @@a1@@ ) { __m128i v1 ; __m128i v2 ; __m128i v3 ; __m128i v4 ; __m128i v5 ; __m128i v6 ; __m128i v7 ; __m128i v8 ; __m128i v9 ; __m128i v10 ; __m128i v11 ; __m128i v12 ; __m128i v13 ; __m128i v14 ; int @@v15@@ ; __m128i v16 ; __m128i v17 ; __m128i v18 ; __m128i v19 ; __m128i @@v20@@ ; __int64 @@result@@ ; int @@v22@@ ; __m128i v23 ; int @@v24@@ ; __m128i v25 ; __m128i v26 ; __m128i v27 ; __m128i v28 ; __m128i v29 ; __m128i v30 ; __m128i v31 ; __m128i v32 ; __m128i v33 ; __m128i v34 ; __m128i v35 ; __m128i v36 ; __m128i v37 ; __m128i v38 ; __m128i v39 ; __m128i v40 ; __m128i v41 ; __m128i v42 ; __m128i v43 ; __m128i v44 ; __m128i v45 ; __m128i v46 ; __m128i v47 ; __m128i v48 ; __m128i v49 ; __m128i v50 ; __m128i v51 ; __m128i v52 ; __m128i v53 ; __m128i v54 ; __m128i v55 ; __m128i v56 ; __m128i v57 ; __m128i v58 ; __m128i v59 ; __m128i v60 ; __m128i v61 ; __m128i v62 ; __m128i v63 ; __m128i v64 ; __m128i v65 ; __m128i v66 ; __m128i v67 ; __m128i v68 ; __m128i v69 ; __m128i v70 ; __m128i v71 ; __m128i v72 ; __m128i v73 ; __m128i v74 ; __m128i v75 ; __m128i v76 ; __m128i v77 ; __m128i v78 ; __m128i v79 ; __m128i v80 ; __m128i v81 ; __m128i v82 ; __m128i v83 ; __m128i v84 ; v1 = _mm_load_si128 ( ( const __m128i * ) @@a1@@ ) ; v2 = _mm_add_epi32 ( _mm_add_epi32 ( _mm_madd_epi16 ( _mm_unpacklo_epi64 ( v1 , v1 ) , ( __m128i ) iTab1 ) , _mm_madd_epi16 ( _mm_shuffle_epi32 ( v1 , Number ) , ( __m128i ) xmmword_790 ) ) , ( __m128i ) walkenIdctRounders ) ; v3 = _mm_add_epi32 ( _mm_madd_epi16 ( _mm_shuffle_epi32 ( v1 , Number ) , ( __m128i ) xmmword_7A0 ) , _mm_madd_epi16 ( _mm_unpackhi_epi64 ( v1 , v1 ) , ( __m128i ) xmmword_7B0 ) ) ; v4 = _mm_shufflehi_epi16 ( _mm_packs_epi32 ( _mm_srai_epi32 ( _mm_add_epi32 ( v3 , v2 ) , Number ) , _mm_srai_epi32 ( _mm_sub_epi32 ( v2 , v3 ) , Number ) ) , Number ) ; v5 = _mm_load_si128 ( ( const __m128i * ) ( @@a1@@ + Number ) ) ; v6 = _mm_add_epi32 ( _mm_add_epi32 ( _mm_madd_epi16 ( _mm_unpacklo_epi64 ( v5 , v5 ) , ( __m128i ) iTab2 ) , _mm_madd_epi16 ( _mm_shuffle_epi32 ( v5 , Number ) , ( __m128i ) xmmword_7D0 ) ) , ( __m128i ) xmmword_890 ) ; v7 = _mm_add_epi32 ( _mm_madd_epi16 ( _mm_shuffle_epi32 ( v5 , Number ) , ( __m128i ) xmmword_7E0 ) , _mm_madd_epi16 ( _mm_unpackhi_epi64 ( v5 , v5 ) , ( __m128i ) xmmword_7F0 ) ) ; v8 = _mm_shufflehi_epi16 ( _mm_packs_epi32 ( _mm_srai_epi32 ( _mm_add_epi32 ( v7 , v6 ) , Number ) , _mm_srai_epi32 ( _mm_sub_epi32 ( v6 , v7 ) , Number ) ) , Number ) ; v9 = _mm_load_si128 ( ( const __m128i * ) ( @@a1@@ + Number ) ) ; v10 = _mm_add_epi32 ( _mm_add_epi32 ( _mm_madd_epi16 ( _mm_unpacklo_epi64 ( v9 , v9 ) , ( __m128i ) iTab3 ) , _mm_madd_epi16 ( _mm_shuffle_epi32 ( v9 , Number ) , ( __m128i ) xmmword_810 ) ) , ( __m128i ) xmmword_8A0 ) ; v11 = _mm_add_epi32 ( _mm_madd_epi16 ( _mm_shuffle_epi32 ( v9 , Number ) , ( __m128i ) xmmword_820 ) , _mm_madd_epi16 ( _mm_unpackhi_epi64 ( v9 , v9 ) , ( __m128i ) xmmword_830 ) ) ; v12 = _mm_shufflehi_epi16 ( _mm_packs_epi32 ( _mm_srai_epi32 ( _mm_add_epi32 ( v11 , v10 ) , Number ) , _mm_srai_epi32 ( _mm_sub_epi32 ( v10 , v11 ) , Number ) ) , Number ) ; v13 = Number L ; v14 = Number L ; @@v15@@ = _m_pmovmskb ( _m_paddusb ( _m_por ( * ( __m64 * ) ( @@a1@@ + Number ) , * ( __m64 * ) ( @@a1@@ + Number ) ) , ( __m64 ) m127 ) ) ; if ( _m_pmovmskb ( _m_paddusb ( _m_por ( * ( __m64 * ) ( @@a1@@ + Number ) , * ( __m64 * ) ( @@a1@@ + Number ) ) , ( __m64 ) m127 ) ) ) { v16 = _mm_load_si128 ( ( const __m128i * ) ( @@a1@@ + Number ) ) ; v17 = _mm_add_epi32 ( _mm_add_epi32 ( _mm_madd_epi16 ( _mm_unpacklo_epi64 ( v16 , v16 ) , ( __m128i ) iTab4 ) , _mm_madd_epi16 ( _mm_shuffle_epi32 ( v16 , Number ) , ( __m128i ) xmmword_850 ) ) , ( __m128i ) xmmword_8B0 ) ; v18 = _mm_add_epi32 ( _mm_madd_epi16 ( _mm_shuffle_epi32 ( v16 , Number ) , ( __m128i ) xmmword_860 ) , _mm_madd_epi16 ( _mm_unpackhi_epi64 ( v16 , v16 ) , ( __m128i ) xmmword_870 ) ) ; v13 = _mm_shufflehi_epi16 ( _mm_packs_epi32 ( _mm_srai_epi32 ( _mm_add_epi32 ( v18 , v17 ) , Number ) , _mm_srai_epi32 ( _mm_sub_epi32 ( v17 , v18 ) , Number ) ) , Number ) ; } v19 = Number L ; @@v20@@ = Number L ; @@result@@ = ( unsigned int ) _m_pmovmskb ( _m_paddusb ( _m_por ( * ( __m64 * ) ( @@a1@@ + Number ) , * ( __m64 * ) ( @@a1@@ + Number ) ) , ( __m64 ) m127 ) ) ; @@v22@@ = _m_pmovmskb ( _m_paddusb ( _m_por ( * ( __m64 * ) ( @@a1@@ + Number ) , * ( __m64 * ) ( @@a1@@ + Number ) ) , ( __m64 ) m127 ) ) ; v23 = Number L ; @@v24@@ = _m_pmovmskb ( _m_paddusb ( _m_por ( * ( __m64 * ) ( @@a1@@ + Number ) , * ( __m64 * ) ( @@a1@@ + Number ) ) , ( __m64 ) m127 ) ) ; v25 = _mm_load_si128 ( ( const __m128i * ) & tan3 ) ; v26 = _mm_load_si128 ( ( const __m128i * ) & tan1 ) ; if ( @@v15@@ ) { v45 = _mm_load_si128 ( ( const __m128i * ) ( @@a1@@ + Number ) ) ; v46 = _mm_add_epi32 ( _mm_madd_epi16 ( _mm_unpacklo_epi64 ( v45 , v45 ) , ( __m128i ) iTab1 ) , _mm_madd_epi16 ( _mm_shuffle_epi32 ( v45 , Number ) , ( __m128i ) xmmword_790 ) ) ; v47 = _mm_add_epi32 ( _mm_madd_epi16 ( _mm_shuffle_epi32 ( v45 , Number ) , ( __m128i ) xmmword_7A0 ) , _mm_madd_epi16 ( _mm_unpackhi_epi64 ( v45 , v45 ) , ( __m128i ) xmmword_7B0 ) ) ; v14 = _mm_shufflehi_epi16 ( _mm_packs_epi32 ( _mm_srai_epi32 ( _mm_add_epi32 ( v47 , v46 ) , Number ) , _mm_srai_epi32 ( _mm_sub_epi32 ( v46 , v47 ) , Number ) ) , Number ) ; LABEL_9 : v48 = _mm_load_si128 ( ( const __m128i * ) ( @@a1@@ + Number ) ) ; v49 = _mm_add_epi32 ( _mm_add_epi32 ( _mm_madd_epi16 ( _mm_unpacklo_epi64 ( v48 , v48 ) , ( __m128i ) iTab4 ) , _mm_madd_epi16 ( _mm_shuffle_epi32 ( v48 , Number ) , ( __m128i ) xmmword_850 ) ) , ( __m128i ) xmmword_8C0 ) ; v50 = _mm_add_epi32 ( _mm_madd_epi16 ( _mm_shuffle_epi32 ( v48 , Number ) , ( __m128i ) xmmword_860 ) , _mm_madd_epi16 ( _mm_unpackhi_epi64 ( v48 , v48 ) , ( __m128i ) xmmword_870 ) ) ; v19 = _mm_shufflehi_epi16 ( _mm_packs_epi32 ( _mm_srai_epi32 ( _mm_add_epi32 ( v50 , v49 ) , Number ) , _mm_srai_epi32 ( _mm_sub_epi32 ( v49 , v50 ) , Number ) ) , Number ) ; if ( ! @@v22@@ ) goto LABEL_11 ; goto LABEL_10 ; } if ( ( _DWORD ) @@result@@ ) goto LABEL_9 ; if ( ! @@v22@@ ) { if ( ! @@v24@@ ) { v27 = _mm_adds_epi16 ( _mm_mulhi_epi16 ( v25 , v13 ) , v13 ) ; v28 = _mm_subs_epi16 ( v8 , v13 ) ; v29 = _mm_adds_epi16 ( v13 , v8 ) ; v30 = _mm_mulhi_epi16 ( v26 , v8 ) ; v31 = _mm_subs_epi16 ( v30 , v27 ) ; v32 = _mm_adds_epi16 ( v27 , v30 ) ; v33 = v28 ; v34 = _mm_load_si128 ( ( const __m128i * ) & sqrt2 ) ; v35 = _mm_mulhi_epi16 ( _mm_subs_epi16 ( v28 , v32 ) , v34 ) ; v36 = _mm_mulhi_epi16 ( _mm_adds_epi16 ( v32 , v33 ) , v34 ) ; v37 = _mm_adds_epi16 ( v36 , v36 ) ; v38 = _mm_adds_epi16 ( v35 , v35 ) ; v39 = _mm_mulhi_epi16 ( _mm_load_si128 ( ( const __m128i * ) & tan2 ) , v12 ) ; v40 = _mm_subs_epi16 ( v4 , v12 ) ; v41 = _mm_adds_epi16 ( v12 , v4 ) ; v42 = v4 ; v43 = _mm_subs_epi16 ( v4 , v39 ) ; v44 = _mm_adds_epi16 ( v39 , v42 ) ; * ( __m128i * ) ( @@a1@@ + Number ) = _mm_srai_epi16 ( _mm_adds_epi16 ( v37 , v44 ) , Number ) ; * ( __m128i * ) ( @@a1@@ + Number ) = _mm_srai_epi16 ( _mm_adds_epi16 ( v38 , v43 ) , Number ) ; * ( __m128i * ) ( @@a1@@ + Number ) = _mm_srai_epi16 ( _mm_subs_epi16 ( v43 , v38 ) , Number ) ; * ( __m128i * ) ( @@a1@@ + Number ) = _mm_srai_epi16 ( _mm_subs_epi16 ( v44 , v37 ) , Number ) ; * ( __m128i * ) @@a1@@ = _mm_srai_epi16 ( _mm_adds_epi16 ( v29 , v41 ) , Number ) ; * ( __m128i * ) ( @@a1@@ + Number ) = _mm_srai_epi16 ( _mm_adds_epi16 ( v31 , v40 ) , Number ) ; * ( __m128i * ) ( @@a1@@ + Number ) = _mm_srai_epi16 ( _mm_subs_epi16 ( v40 , v31 ) , Number ) ; * ( __m128i * ) ( @@a1@@ + Number ) = _mm_srai_epi16 ( _mm_subs_epi16 ( v41 , v29 ) , Number ) ; return @@result@@ ; } goto LABEL_12 ; } LABEL_10 : v51 = _mm_load_si128 ( ( const __m128i * ) ( @@a1@@ + Number ) ) ; v52 = _mm_add_epi32 ( _mm_add_epi32 ( _mm_madd_epi16 ( _mm_unpacklo_epi64 ( v51 , v51 ) , ( __m128i ) iTab3 ) , _mm_madd_epi16 ( _mm_shuffle_epi32 ( v51 , Number ) , ( __m128i ) xmmword_810 ) ) , ( __m128i ) xmmword_8D0 ) ; v53 = _mm_add_epi32 ( _mm_madd_epi16 ( _mm_shuffle_epi32 ( v51 , Number ) , ( __m128i ) xmmword_820 ) , _mm_madd_epi16 ( _mm_unpackhi_epi64 ( v51 , v51 ) , ( __m128i ) xmmword_830 ) ) ; @@v20@@ = _mm_shufflehi_epi16 ( _mm_packs_epi32 ( _mm_srai_epi32 ( _mm_add_epi32 ( v53 , v52 ) , Number ) , _mm_srai_epi32 ( _mm_sub_epi32 ( v52 , v53 ) , Number ) ) , Number ) ; LABEL_11 : if ( @@v24@@ ) { LABEL_12 : v54 = _mm_load_si128 ( ( const __m128i * ) ( @@a1@@ + Number ) ) ; v55 = _mm_add_epi32 ( _mm_add_epi32 ( _mm_madd_epi16 ( _mm_unpacklo_epi64 ( v54 , v54 ) , ( __m128i ) iTab2 ) , _mm_madd_epi16 ( _mm_shuffle_epi32 ( v54 , Number ) , ( __m128i ) xmmword_7D0 ) ) , ( __m128i ) xmmword_8D0 ) ; v56 = _mm_add_epi32 ( _mm_madd_epi16 ( _mm_shuffle_epi32 ( v54 , Number ) , ( __m128i ) xmmword_7E0 ) , _mm_madd_epi16 ( _mm_unpackhi_epi64 ( v54 , v54 ) , ( __m128i ) xmmword_7F0 ) ) ; v23 = _mm_shufflehi_epi16 ( _mm_packs_epi32 ( _mm_srai_epi32 ( _mm_add_epi32 ( v56 , v55 ) , Number ) , _mm_srai_epi32 ( _mm_sub_epi32 ( v55 , v56 ) , Number ) ) , Number ) ; } v57 = v25 ; v58 = _mm_subs_epi16 ( _mm_adds_epi16 ( _mm_mulhi_epi16 ( v25 , v13 ) , v13 ) , v19 ) ; v59 = _mm_adds_epi16 ( _mm_adds_epi16 ( _mm_mulhi_epi16 ( v57 , v19 ) , v19 ) , v13 ) ; v60 = _mm_mulhi_epi16 ( v26 , v23 ) ; v61 = _mm_subs_epi16 ( _mm_mulhi_epi16 ( v26 , v8 ) , v23 ) ; v62 = _mm_adds_epi16 ( v60 , v8 ) ; v63 = v61 ; v64 = _mm_subs_epi16 ( v62 , v59 ) ; v65 = _mm_subs_epi16 ( v61 , v58 ) ; v66 = _mm_adds_epi16 ( v59 , v62 ) ; v67 = _mm_adds_epi16 ( v58 , v63 ) ; v68 = v64 ; v69 = _mm_load_si128 ( ( const __m128i * ) & sqrt2 ) ; v70 = _mm_mulhi_epi16 ( _mm_subs_epi16 ( v64 , v67 ) , v69 ) ; v71 = _mm_mulhi_epi16 ( _mm_adds_epi16 ( v67 , v68 ) , v69 ) ; v72 = _mm_adds_epi16 ( v71 , v71 ) ; v73 = _mm_adds_epi16 ( v70 , v70 ) ; v74 = _mm_load_si128 ( ( const __m128i * ) & tan2 ) ; v75 = _mm_adds_epi16 ( _mm_mulhi_epi16 ( v74 , @@v20@@ ) , v12 ) ; v76 = _mm_subs_epi16 ( _mm_mulhi_epi16 ( v74 , v12 ) , @@v20@@ ) ; v77 = v4 ; v78 = _mm_subs_epi16 ( v4 , v14 ) ; v79 = _mm_adds_epi16 ( v14 , v77 ) ; v80 = _mm_subs_epi16 ( v79 , v75 ) ; v81 = _mm_adds_epi16 ( v75 , v79 ) ; v82 = v78 ; v83 = _mm_subs_epi16 ( v78 , v76 ) ; v84 = _mm_adds_epi16 ( v76 , v82 ) ; * ( __m128i * ) ( @@a1@@ + Number ) = _mm_srai_epi16 ( _mm_adds_epi16 ( v72 , v84 ) , Number ) ; * ( __m128i * ) ( @@a1@@ + Number ) = _mm_srai_epi16 ( _mm_adds_epi16 ( v73 , v83 ) , Number ) ; * ( __m128i * ) ( @@a1@@ + Number ) = _mm_srai_epi16 ( _mm_subs_epi16 ( v83 , v73 ) , Number ) ; * ( __m128i * ) ( @@a1@@ + Number ) = _mm_srai_epi16 ( _mm_subs_epi16 ( v84 , v72 ) , Number ) ; * ( __m128i * ) @@a1@@ = _mm_srai_epi16 ( _mm_adds_epi16 ( v66 , v81 ) , Number ) ; * ( __m128i * ) ( @@a1@@ + Number ) = _mm_srai_epi16 ( _mm_adds_epi16 ( v65 , v80 ) , Number ) ; * ( __m128i * ) ( @@a1@@ + Number ) = _mm_srai_epi16 ( _mm_subs_epi16 ( v80 , v65 ) , Number ) ; * ( __m128i * ) ( @@a1@@ + Number ) = _mm_srai_epi16 ( _mm_subs_epi16 ( v81 , v66 ) , Number ) ; return @@result@@ ; }", "source": [{"n": "v22", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "v15", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "v24", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v20", "t": {"T": 8}, "location": "r672"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]}