;
; jfdctint.asm - accurate integer FDCT (64-bit SSE2)
;
; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
; Copyright (C) 2009, 2016, D. R. Commander.
;
; Based on the x86 SIMD extension for IJG JPEG library
; Copyright (C) 1999-2006, MIYASAKA Masaru.
; For conditions of distribution and use, see copyright notice in jsimdext.inc
;
; This file should be assembled with NASM (Netwide Assembler),
; can *not* be assembled with Microsoft's MASM or any compatible
; assembler (including Borland's Turbo Assembler).
; NASM is available from http://nasm.sourceforge.net/ or
; http://sourceforge.net/project/showfiles.php?group_id=6208
;
; This file contains a slow-but-accurate integer implementation of the
; forward DCT (Discrete Cosine Transform). The following code is based
; directly on the IJG's original jfdctint.c; see the jfdctint.c for
; more details.
;
; [TAB8]

%include "jsimdext.inc"
%include "jdct.inc"

; --------------------------------------------------------------------------

%define CONST_BITS  13
%define PASS1_BITS  2

%define DESCALE_P1  (CONST_BITS - PASS1_BITS)
%define DESCALE_P2  (CONST_BITS + PASS1_BITS)

%if CONST_BITS == 13
F_0_298 equ  2446  ; FIX(0.298631336)
F_0_390 equ  3196  ; FIX(0.390180644)
F_0_541 equ  4433  ; FIX(0.541196100)
F_0_765 equ  6270  ; FIX(0.765366865)
F_0_899 equ  7373  ; FIX(0.899976223)
F_1_175 equ  9633  ; FIX(1.175875602)
F_1_501 equ 12299  ; FIX(1.501321110)
F_1_847 equ 15137  ; FIX(1.847759065)
F_1_961 equ 16069  ; FIX(1.961570560)
F_2_053 equ 16819  ; FIX(2.053119869)
F_2_562 equ 20995  ; FIX(2.562915447)
F_3_072 equ 25172  ; FIX(3.072711026)
%else
; NASM cannot do compile-time arithmetic on floating-point constants.
%define DESCALE(x, n)  (((x) + (1 << ((n) - 1))) >> (n))
F_0_298 equ DESCALE( 320652955, 30 - CONST_BITS)  ; FIX(0.298631336)
F_0_390 equ DESCALE( 418953276, 30 - CONST_BITS)  ; FIX(0.390180644)
F_0_541 equ DESCALE( 581104887, 30 - CONST_BITS)  ; FIX(0.541196100)
F_0_765 equ DESCALE( 821806413, 30 - CONST_BITS)  ; FIX(0.765366865)
F_0_899 equ DESCALE( 966342111, 30 - CONST_BITS)  ; FIX(0.899976223)
F_1_175 equ DESCALE(1262586813, 30 - CONST_BITS)  ; FIX(1.175875602)
F_1_501 equ DESCALE(1612031267, 30 - CONST_BITS)  ; FIX(1.501321110)
F_1_847 equ DESCALE(1984016188, 30 - CONST_BITS)  ; FIX(1.847759065)
F_1_961 equ DESCALE(2106220350, 30 - CONST_BITS)  ; FIX(1.961570560)
F_2_053 equ DESCALE(2204520673, 30 - CONST_BITS)  ; FIX(2.053119869)
F_2_562 equ DESCALE(2751909506, 30 - CONST_BITS)  ; FIX(2.562915447)
F_3_072 equ DESCALE(3299298341, 30 - CONST_BITS)  ; FIX(3.072711026)
%endif

; --------------------------------------------------------------------------
    SECTION     SEG_CONST

    alignz      32
    GLOBAL_DATA(jconst_fdct_islow_sse2)

EXTN(jconst_fdct_islow_sse2):

PW_F130_F054   times 4 dw  (F_0_541 + F_0_765),  F_0_541
PW_F054_MF130  times 4 dw  F_0_541, (F_0_541 - F_1_847)
PW_MF078_F117  times 4 dw  (F_1_175 - F_1_961),  F_1_175
PW_F117_F078   times 4 dw  F_1_175, (F_1_175 - F_0_390)
PW_MF060_MF089 times 4 dw  (F_0_298 - F_0_899), -F_0_899
PW_MF089_F060  times 4 dw -F_0_899, (F_1_501 - F_0_899)
PW_MF050_MF256 times 4 dw  (F_2_053 - F_2_562), -F_2_562
PW_MF256_F050  times 4 dw -F_2_562, (F_3_072 - F_2_562)
PD_DESCALE_P1  times 4 dd  1 << (DESCALE_P1 - 1)
PD_DESCALE_P2  times 4 dd  1 << (DESCALE_P2 - 1)
PW_DESCALE_P2X times 8 dw  1 << (PASS1_BITS - 1)

    alignz      32

; --------------------------------------------------------------------------
    SECTION     SEG_TEXT
    BITS        64
;
; Perform the forward DCT on one block of samples.
;
; GLOBAL(void)
; jsimd_fdct_islow_sse2(DCTELEM *data)
;

; r10 = DCTELEM *data

%define wk(i)   rbp - (WK_NUM - (i)) * SIZEOF_XMMWORD  ; xmmword wk[WK_NUM]
%define WK_NUM  6

    align       32
    GLOBAL_FUNCTION(jsimd_fdct_islow_sse2)

EXTN(jsimd_fdct_islow_sse2):
    push        rbp
    mov         rax, rsp                     ; rax = original rbp
    sub         rsp, byte 4
    and         rsp, byte (-SIZEOF_XMMWORD)  ; align to 128 bits
    mov         [rsp], rax
    mov         rbp, rsp                     ; rbp = aligned rbp
    lea         rsp, [wk(0)]
    collect_args 1

    ; ---- Pass 1: process rows.

    mov         rdx, r10                ; (DCTELEM *)

    movdqa      xmm0, XMMWORD [XMMBLOCK(0,0,rdx,SIZEOF_DCTELEM)]
    movdqa      xmm1, XMMWORD [XMMBLOCK(1,0,rdx,SIZEOF_DCTELEM)]
    movdqa      xmm2, XMMWORD [XMMBLOCK(2,0,rdx,SIZEOF_DCTELEM)]
    movdqa      xmm3, XMMWORD [XMMBLOCK(3,0,rdx,SIZEOF_DCTELEM)]

    ; xmm0=(00 01 02 03 04 05 06 07), xmm2=(20 21 22 23 24 25 26 27)
    ; xmm1=(10 11 12 13 14 15 16 17), xmm3=(30 31 32 33 34 35 36 37)

    movdqa      xmm4, xmm0              ; transpose coefficients(phase 1)
    punpcklwd   xmm0, xmm1              ; xmm0=(00 10 01 11 02 12 03 13)
    punpckhwd   xmm4, xmm1              ; xmm4=(04 14 05 15 06 16 07 17)
    movdqa      xmm5, xmm2              ; transpose coefficients(phase 1)
    punpcklwd   xmm2, xmm3              ; xmm2=(20 30 21 31 22 32 23 33)
    punpckhwd   xmm5, xmm3              ; xmm5=(24 34 25 35 26 36 27 37)

    movdqa      xmm6, XMMWORD [XMMBLOCK(4,0,rdx,SIZEOF_DCTELEM)]
    movdqa      xmm7, XMMWORD [XMMBLOCK(5,0,rdx,SIZEOF_DCTELEM)]
    movdqa      xmm1, XMMWORD [XMMBLOCK(6,0,rdx,SIZEOF_DCTELEM)]
    movdqa      xmm3, XMMWORD [XMMBLOCK(7,0,rdx,SIZEOF_DCTELEM)]

    ; xmm6=( 4 12 20 28 36 44 52 60), xmm1=( 6 14 22 30 38 46 54 62)
    ; xmm7=( 5 13 21 29 37 45 53 61), xmm3=( 7 15 23 31 39 47 55 63)

    movdqa      XMMWORD [wk(0)], xmm2   ; wk(0)=(20 30 21 31 22 32 23 33)
    movdqa      XMMWORD [wk(1)], xmm5   ; wk(1)=(24 34 25 35 26 36 27 37)

    movdqa      xmm2, xmm6              ; transpose coefficients(phase 1)
    punpcklwd   xmm6, xmm7              ; xmm6=(40 50 41 51 42 52 43 53)
    punpckhwd   xmm2, xmm7              ; xmm2=(44 54 45 55 46 56 47 57)
    movdqa      xmm5, xmm1              ; transpose coefficients(phase 1)
    punpcklwd   xmm1, xmm3              ; xmm1=(60 70 61 71 62 72 63 73)
    punpckhwd   xmm5, xmm3              ; xmm5=(64 74 65 75 66 76 67 77)

    movdqa      xmm7, xmm6              ; transpose coefficients(phase 2)
    punpckldq   xmm6, xmm1              ; xmm6=(40 50 60 70 41 51 61 71)
    punpckhdq   xmm7, xmm1              ; xmm7=(42 52 62 72 43 53 63 73)
    movdqa      xmm3, xmm2              ; transpose coefficients(phase 2)
    punpckldq   xmm2, xmm5              ; xmm2=(44 54 64 74 45 55 65 75)
    punpckhdq   xmm3, xmm5              ; xmm3=(46 56 66 76 47 57 67 77)

    movdqa      xmm1, XMMWORD [wk(0)]   ; xmm1=(20 30 21 31 22 32 23 33)
    movdqa      xmm5, XMMWORD [wk(1)]   ; xmm5=(24 34 25 35 26 36 27 37)
    movdqa      XMMWORD [wk(2)], xmm7   ; wk(2)=(42 52 62 72 43 53 63 73)
    movdqa      XMMWORD [wk(3)], xmm2   ; wk(3)=(44 54 64 74 45 55 65 75)

    movdqa      xmm7, xmm0              ; transpose coefficients(phase 2)
    punpckldq   xmm0, xmm1              ; xmm0=(00 10 20 30 01 11 21 31)
    punpckhdq   xmm7, xmm1              ; xmm7=(02 12 22 32 03 13 23 33)
    movdqa      xmm2, xmm4              ; transpose coefficients(phase 2)
    punpckldq   xmm4, xmm5              ; xmm4=(04 14 24 34 05 15 25 35)
    punpckhdq   xmm2, xmm5              ; xmm2=(06 16 26 36 07 17 27 37)

    movdqa      xmm1, xmm0              ; transpose coefficients(phase 3)
    punpcklqdq  xmm0, xmm6              ; xmm0=(00 10 20 30 40 50 60 70)=data0
    punpckhqdq  xmm1, xmm6              ; xmm1=(01 11 21 31 41 51 61 71)=data1
    movdqa      xmm5, xmm2              ; transpose coefficients(phase 3)
    punpcklqdq  xmm2, xmm3              ; xmm2=(06 16 26 36 46 56 66 76)=data6
    punpckhqdq  xmm5, xmm3              ; xmm5=(07 17 27 37 47 57 67 77)=data7

    movdqa      xmm6, xmm1
    movdqa      xmm3, xmm0
    psubw       xmm1, xmm2              ; xmm1=data1-data6=tmp6
    psubw       xmm0, xmm5              ; xmm0=data0-data7=tmp7
    paddw       xmm6, xmm2              ; xmm6=data1+data6=tmp1
    paddw       xmm3, xmm5              ; xmm3=data0+data7=tmp0

    movdqa      xmm2, XMMWORD [wk(2)]   ; xmm2=(42 52 62 72 43 53 63 73)
    movdqa      xmm5, XMMWORD [wk(3)]   ; xmm5=(44 54 64 74 45 55 65 75)
    movdqa      XMMWORD [wk(0)], xmm1   ; wk(0)=tmp6
    movdqa      XMMWORD [wk(1)], xmm0   ; wk(1)=tmp7

    movdqa      xmm1, xmm7              ; transpose coefficients(phase 3)
    punpcklqdq  xmm7, xmm2              ; xmm7=(02 12 22 32 42 52 62 72)=data2
    punpckhqdq  xmm1, xmm2              ; xmm1=(03 13 23 33 43 53 63 73)=data3
    movdqa      xmm0, xmm4              ; transpose coefficients(phase 3)
    punpcklqdq  xmm4, xmm5              ; xmm4=(04 14 24 34 44 54 64 74)=data4
    punpckhqdq  xmm0, xmm5              ; xmm0=(05 15 25 35 45 55 65 75)=data5

    movdqa      xmm2, xmm1
    movdqa      xmm5, xmm7
    paddw       xmm1, xmm4              ; xmm1=data3+data4=tmp3
    paddw       xmm7, xmm0              ; xmm7=data2+data5=tmp2
    psubw       xmm2, xmm4              ; xmm2=data3-data4=tmp4
    psubw       xmm5, xmm0              ; xmm5=data2-data5=tmp5

    ; -- Even part

    movdqa      xmm4, xmm3
    movdqa      xmm0, xmm6
    paddw       xmm3, xmm1              ; xmm3=tmp10
    paddw       xmm6, xmm7              ; xmm6=tmp11
    psubw       xmm4, xmm1              ; xmm4=tmp13
    psubw       xmm0, xmm7              ; xmm0=tmp12

    movdqa      xmm1, xmm3
    paddw       xmm3, xmm6              ; xmm3=tmp10+tmp11
    psubw       xmm1, xmm6              ; xmm1=tmp10-tmp11

    psllw       xmm3, PASS1_BITS        ; xmm3=data0
    psllw       xmm1, PASS1_BITS        ; xmm1=data4

    movdqa      XMMWORD [wk(2)], xmm3   ; wk(2)=data0
    movdqa      XMMWORD [wk(3)], xmm1   ; wk(3)=data4

    ; (Original)
    ; z1 = (tmp12 + tmp13) * 0.541196100;
    ; data2 = z1 + tmp13 * 0.765366865;
    ; data6 = z1 + tmp12 * -1.847759065;
    ;
    ; (This implementation)
    ; data2 = tmp13 * (0.541196100 + 0.765366865) + tmp12 * 0.541196100;
    ; data6 = tmp13 * 0.541196100 + tmp12 * (0.541196100 - 1.847759065);

    movdqa      xmm7, xmm4              ; xmm4=tmp13
    movdqa      xmm6, xmm4
    punpcklwd   xmm7, xmm0              ; xmm0=tmp12
    punpckhwd   xmm6, xmm0
    movdqa      xmm4, xmm7
    movdqa      xmm0, xmm6
    pmaddwd     xmm7, [rel PW_F130_F054]   ; xmm7=data2L
    pmaddwd     xmm6, [rel PW_F130_F054]   ; xmm6=data2H
    pmaddwd     xmm4, [rel PW_F054_MF130]  ; xmm4=data6L
    pmaddwd     xmm0, [rel PW_F054_MF130]  ; xmm0=data6H

    paddd       xmm7, [rel PD_DESCALE_P1]
    paddd       xmm6, [rel PD_DESCALE_P1]
    psrad       xmm7, DESCALE_P1
    psrad       xmm6, DESCALE_P1
    paddd       xmm4, [rel PD_DESCALE_P1]
    paddd       xmm0, [rel PD_DESCALE_P1]
    psrad       xmm4, DESCALE_P1
    psrad       xmm0, DESCALE_P1

    packssdw    xmm7, xmm6              ; xmm7=data2
    packssdw    xmm4, xmm0              ; xmm4=data6

    movdqa      XMMWORD [wk(4)], xmm7   ; wk(4)=data2
    movdqa      XMMWORD [wk(5)], xmm4   ; wk(5)=data6

    ; -- Odd part

    movdqa      xmm3, XMMWORD [wk(0)]   ; xmm3=tmp6
    movdqa      xmm1, XMMWORD [wk(1)]   ; xmm1=tmp7

    movdqa      xmm6, xmm2              ; xmm2=tmp4
    movdqa      xmm0, xmm5              ; xmm5=tmp5
    paddw       xmm6, xmm3              ; xmm6=z3
    paddw       xmm0, xmm1              ; xmm0=z4

    ; (Original)
    ; z5 = (z3 + z4) * 1.175875602;
    ; z3 = z3 * -1.961570560;  z4 = z4 * -0.390180644;
    ; z3 += z5;  z4 += z5;
    ;
    ; (This implementation)
    ; z3 = z3 * (1.175875602 - 1.961570560) + z4 * 1.175875602;
    ; z4 = z3 * 1.175875602 + z4 * (1.175875602 - 0.390180644);

    movdqa      xmm7, xmm6
    movdqa      xmm4, xmm6
    punpcklwd   xmm7, xmm0
    punpckhwd   xmm4, xmm0
    movdqa      xmm6, xmm7
    movdqa      xmm0, xmm4
    pmaddwd     xmm7, [rel PW_MF078_F117]  ; xmm7=z3L
    pmaddwd     xmm4, [rel PW_MF078_F117]  ; xmm4=z3H
    pmaddwd     xmm6, [rel PW_F117_F078]   ; xmm6=z4L
    pmaddwd     xmm0, [rel PW_F117_F078]   ; xmm0=z4H

    movdqa      XMMWORD [wk(0)], xmm7   ; wk(0)=z3L
    movdqa      XMMWORD [wk(1)], xmm4   ; wk(1)=z3H

    ; (Original)
    ; z1 = tmp4 + tmp7;  z2 = tmp5 + tmp6;
    ; tmp4 = tmp4 * 0.298631336;  tmp5 = tmp5 * 2.053119869;
    ; tmp6 = tmp6 * 3.072711026;  tmp7 = tmp7 * 1.501321110;
    ; z1 = z1 * -0.899976223;  z2 = z2 * -2.562915447;
    ; data7 = tmp4 + z1 + z3;  data5 = tmp5 + z2 + z4;
    ; data3 = tmp6 + z2 + z3;  data1 = tmp7 + z1 + z4;
    ;
    ; (This implementation)
    ; tmp4 = tmp4 * (0.298631336 - 0.899976223) + tmp7 * -0.899976223;
    ; tmp5 = tmp5 * (2.053119869 - 2.562915447) + tmp6 * -2.562915447;
    ; tmp6 = tmp5 * -2.562915447 + tmp6 * (3.072711026 - 2.562915447);
    ; tmp7 = tmp4 * -0.899976223 + tmp7 * (1.501321110 - 0.899976223);
    ; data7 = tmp4 + z3;  data5 = tmp5 + z4;
    ; data3 = tmp6 + z3;  data1 = tmp7 + z4;

    movdqa      xmm7, xmm2
    movdqa      xmm4, xmm2
    punpcklwd   xmm7, xmm1
    punpckhwd   xmm4, xmm1
    movdqa      xmm2, xmm7
    movdqa      xmm1, xmm4
    pmaddwd     xmm7, [rel PW_MF060_MF089]  ; xmm7=tmp4L
    pmaddwd     xmm4, [rel PW_MF060_MF089]  ; xmm4=tmp4H
    pmaddwd     xmm2, [rel PW_MF089_F060]   ; xmm2=tmp7L
    pmaddwd     xmm1, [rel PW_MF089_F060]   ; xmm1=tmp7H

    paddd       xmm7, XMMWORD [wk(0)]   ; xmm7=data7L
    paddd       xmm4, XMMWORD [wk(1)]   ; xmm4=data7H
    paddd       xmm2, xmm6              ; xmm2=data1L
    paddd       xmm1, xmm0              ; xmm1=data1H

    paddd       xmm7, [rel PD_DESCALE_P1]
    paddd       xmm4, [rel PD_DESCALE_P1]
    psrad       xmm7, DESCALE_P1
    psrad       xmm4, DESCALE_P1
    paddd       xmm2, [rel PD_DESCALE_P1]
    paddd       xmm1, [rel PD_DESCALE_P1]
    psrad       xmm2, DESCALE_P1
    psrad       xmm1, DESCALE_P1

    packssdw    xmm7, xmm4              ; xmm7=data7
    packssdw    xmm2, xmm1              ; xmm2=data1

    movdqa      xmm4, xmm5
    movdqa      xmm1, xmm5
    punpcklwd   xmm4, xmm3
    punpckhwd   xmm1, xmm3
    movdqa      xmm5, xmm4
    movdqa      xmm3, xmm1
    pmaddwd     xmm4, [rel PW_MF050_MF256]  ; xmm4=tmp5L
    pmaddwd     xmm1, [rel PW_MF050_MF256]  ; xmm1=tmp5H
    pmaddwd     xmm5, [rel PW_MF256_F050]   ; xmm5=tmp6L
    pmaddwd     xmm3, [rel PW_MF256_F050]   ; xmm3=tmp6H

    paddd       xmm4, xmm6              ; xmm4=data5L
    paddd       xmm1, xmm0              ; xmm1=data5H
    paddd       xmm5, XMMWORD [wk(0)]   ; xmm5=data3L
    paddd       xmm3, XMMWORD [wk(1)]   ; xmm3=data3H

    paddd       xmm4, [rel PD_DESCALE_P1]
    paddd       xmm1, [rel PD_DESCALE_P1]
    psrad       xmm4, DESCALE_P1
    psrad       xmm1, DESCALE_P1
    paddd       xmm5, [rel PD_DESCALE_P1]
    paddd       xmm3, [rel PD_DESCALE_P1]
    psrad       xmm5, DESCALE_P1
    psrad       xmm3, DESCALE_P1

    packssdw    xmm4, xmm1              ; xmm4=data5
    packssdw    xmm5, xmm3              ; xmm5=data3

    ; ---- Pass 2: process columns.

    movdqa      xmm6, XMMWORD [wk(2)]   ; xmm6=col0
    movdqa      xmm0, XMMWORD [wk(4)]   ; xmm0=col2

    ; xmm6=(00 10 20 30 40 50 60 70), xmm0=(02 12 22 32 42 52 62 72)
    ; xmm2=(01 11 21 31 41 51 61 71), xmm5=(03 13 23 33 43 53 63 73)

    movdqa      xmm1, xmm6              ; transpose coefficients(phase 1)
    punpcklwd   xmm6, xmm2              ; xmm6=(00 01 10 11 20 21 30 31)
    punpckhwd   xmm1, xmm2              ; xmm1=(40 41 50 51 60 61 70 71)
    movdqa      xmm3, xmm0              ; transpose coefficients(phase 1)
    punpcklwd   xmm0, xmm5              ; xmm0=(02 03 12 13 22 23 32 33)
    punpckhwd   xmm3, xmm5              ; xmm3=(42 43 52 53 62 63 72 73)

    movdqa      xmm2, XMMWORD [wk(3)]   ; xmm2=col4
    movdqa      xmm5, XMMWORD [wk(5)]   ; xmm5=col6

    ; xmm2=(04 14 24 34 44 54 64 74), xmm5=(06 16 26 36 46 56 66 76)
    ; xmm4=(05 15 25 35 45 55 65 75), xmm7=(07 17 27 37 47 57 67 77)

    movdqa      XMMWORD [wk(0)], xmm0   ; wk(0)=(02 03 12 13 22 23 32 33)
    movdqa      XMMWORD [wk(1)], xmm3   ; wk(1)=(42 43 52 53 62 63 72 73)

    movdqa      xmm0, xmm2              ; transpose coefficients(phase 1)
    punpcklwd   xmm2, xmm4              ; xmm2=(04 05 14 15 24 25 34 35)
    punpckhwd   xmm0, xmm4              ; xmm0=(44 45 54 55 64 65 74 75)
    movdqa      xmm3, xmm5              ; transpose coefficients(phase 1)
    punpcklwd   xmm5, xmm7              ; xmm5=(06 07 16 17 26 27 36 37)
    punpckhwd   xmm3, xmm7              ; xmm3=(46 47 56 57 66 67 76 77)

    movdqa      xmm4, xmm2              ; transpose coefficients(phase 2)
    punpckldq   xmm2, xmm5              ; xmm2=(04 05 06 07 14 15 16 17)
    punpckhdq   xmm4, xmm5              ; xmm4=(24 25 26 27 34 35 36 37)
    movdqa      xmm7, xmm0              ; transpose coefficients(phase 2)
    punpckldq   xmm0, xmm3              ; xmm0=(44 45 46 47 54 55 56 57)
    punpckhdq   xmm7, xmm3              ; xmm7=(64 65 66 67 74 75 76 77)

    movdqa      xmm5, XMMWORD [wk(0)]   ; xmm5=(02 03 12 13 22 23 32 33)
    movdqa      xmm3, XMMWORD [wk(1)]   ; xmm3=(42 43 52 53 62 63 72 73)
    movdqa      XMMWORD [wk(2)], xmm4   ; wk(2)=(24 25 26 27 34 35 36 37)
    movdqa      XMMWORD [wk(3)], xmm0   ; wk(3)=(44 45 46 47 54 55 56 57)

    movdqa      xmm4, xmm6              ; transpose coefficients(phase 2)
    punpckldq   xmm6, xmm5              ; xmm6=(00 01 02 03 10 11 12 13)
    punpckhdq   xmm4, xmm5              ; xmm4=(20 21 22 23 30 31 32 33)
    movdqa      xmm0, xmm1              ; transpose coefficients(phase 2)
    punpckldq   xmm1, xmm3              ; xmm1=(40 41 42 43 50 51 52 53)
    punpckhdq   xmm0, xmm3              ; xmm0=(60 61 62 63 70 71 72 73)

    movdqa      xmm5, xmm6              ; transpose coefficients(phase 3)
    punpcklqdq  xmm6, xmm2              ; xmm6=(00 01 02 03 04 05 06 07)=data0
    punpckhqdq  xmm5, xmm2              ; xmm5=(10 11 12 13 14 15 16 17)=data1
    movdqa      xmm3, xmm0              ; transpose coefficients(phase 3)
    punpcklqdq  xmm0, xmm7              ; xmm0=(60 61 62 63 64 65 66 67)=data6
    punpckhqdq  xmm3, xmm7              ; xmm3=(70 71 72 73 74 75 76 77)=data7

    movdqa      xmm2, xmm5
    movdqa      xmm7, xmm6
    psubw       xmm5, xmm0              ; xmm5=data1-data6=tmp6
    psubw       xmm6, xmm3              ; xmm6=data0-data7=tmp7
    paddw       xmm2, xmm0              ; xmm2=data1+data6=tmp1
    paddw       xmm7, xmm3              ; xmm7=data0+data7=tmp0

    movdqa      xmm0, XMMWORD [wk(2)]   ; xmm0=(24 25 26 27 34 35 36 37)
    movdqa      xmm3, XMMWORD [wk(3)]   ; xmm3=(44 45 46 47 54 55 56 57)
    movdqa      XMMWORD [wk(0)], xmm5   ; wk(0)=tmp6
    movdqa      XMMWORD [wk(1)], xmm6   ; wk(1)=tmp7

    movdqa      xmm5, xmm4              ; transpose coefficients(phase 3)
    punpcklqdq  xmm4, xmm0              ; xmm4=(20 21 22 23 24 25 26 27)=data2
    punpckhqdq  xmm5, xmm0              ; xmm5=(30 31 32 33 34 35 36 37)=data3
    movdqa      xmm6, xmm1              ; transpose coefficients(phase 3)
    punpcklqdq  xmm1, xmm3              ; xmm1=(40 41 42 43 44 45 46 47)=data4
    punpckhqdq  xmm6, xmm3              ; xmm6=(50 51 52 53 54 55 56 57)=data5

    movdqa      xmm0, xmm5
    movdqa      xmm3, xmm4
    paddw       xmm5, xmm1              ; xmm5=data3+data4=tmp3
    paddw       xmm4, xmm6              ; xmm4=data2+data5=tmp2
    psubw       xmm0, xmm1              ; xmm0=data3-data4=tmp4
    psubw       xmm3, xmm6              ; xmm3=data2-data5=tmp5

    ; -- Even part

    movdqa      xmm1, xmm7
    movdqa      xmm6, xmm2
    paddw       xmm7, xmm5              ; xmm7=tmp10
    paddw       xmm2, xmm4              ; xmm2=tmp11
    psubw       xmm1, xmm5              ; xmm1=tmp13
    psubw       xmm6, xmm4              ; xmm6=tmp12

    movdqa      xmm5, xmm7
    paddw       xmm7, xmm2              ; xmm7=tmp10+tmp11
    psubw       xmm5, xmm2              ; xmm5=tmp10-tmp11

    paddw       xmm7, [rel PW_DESCALE_P2X]
    paddw       xmm5, [rel PW_DESCALE_P2X]
    psraw       xmm7, PASS1_BITS        ; xmm7=data0
    psraw       xmm5, PASS1_BITS        ; xmm5=data4

    movdqa      XMMWORD [XMMBLOCK(0,0,rdx,SIZEOF_DCTELEM)], xmm7
    movdqa      XMMWORD [XMMBLOCK(4,0,rdx,SIZEOF_DCTELEM)], xmm5

    ; (Original)
    ; z1 = (tmp12 + tmp13) * 0.541196100;
    ; data2 = z1 + tmp13 * 0.765366865;
    ; data6 = z1 + tmp12 * -1.847759065;
    ;
    ; (This implementation)
    ; data2 = tmp13 * (0.541196100 + 0.765366865) + tmp12 * 0.541196100;
    ; data6 = tmp13 * 0.541196100 + tmp12 * (0.541196100 - 1.847759065);

    movdqa      xmm4, xmm1              ; xmm1=tmp13
    movdqa      xmm2, xmm1
    punpcklwd   xmm4, xmm6              ; xmm6=tmp12
    punpckhwd   xmm2, xmm6
    movdqa      xmm1, xmm4
    movdqa      xmm6, xmm2
    pmaddwd     xmm4, [rel PW_F130_F054]   ; xmm4=data2L
    pmaddwd     xmm2, [rel PW_F130_F054]   ; xmm2=data2H
    pmaddwd     xmm1, [rel PW_F054_MF130]  ; xmm1=data6L
    pmaddwd     xmm6, [rel PW_F054_MF130]  ; xmm6=data6H

    paddd       xmm4, [rel PD_DESCALE_P2]
    paddd       xmm2, [rel PD_DESCALE_P2]
    psrad       xmm4, DESCALE_P2
    psrad       xmm2, DESCALE_P2
    paddd       xmm1, [rel PD_DESCALE_P2]
    paddd       xmm6, [rel PD_DESCALE_P2]
    psrad       xmm1, DESCALE_P2
    psrad       xmm6, DESCALE_P2

    packssdw    xmm4, xmm2              ; xmm4=data2
    packssdw    xmm1, xmm6              ; xmm1=data6

    movdqa      XMMWORD [XMMBLOCK(2,0,rdx,SIZEOF_DCTELEM)], xmm4
    movdqa      XMMWORD [XMMBLOCK(6,0,rdx,SIZEOF_DCTELEM)], xmm1

    ; -- Odd part

    movdqa      xmm7, XMMWORD [wk(0)]   ; xmm7=tmp6
    movdqa      xmm5, XMMWORD [wk(1)]   ; xmm5=tmp7

    movdqa      xmm2, xmm0              ; xmm0=tmp4
    movdqa      xmm6, xmm3              ; xmm3=tmp5
    paddw       xmm2, xmm7              ; xmm2=z3
    paddw       xmm6, xmm5              ; xmm6=z4

    ; (Original)
    ; z5 = (z3 + z4) * 1.175875602;
    ; z3 = z3 * -1.961570560;  z4 = z4 * -0.390180644;
    ; z3 += z5;  z4 += z5;
    ;
    ; (This implementation)
    ; z3 = z3 * (1.175875602 - 1.961570560) + z4 * 1.175875602;
    ; z4 = z3 * 1.175875602 + z4 * (1.175875602 - 0.390180644);

    movdqa      xmm4, xmm2
    movdqa      xmm1, xmm2
    punpcklwd   xmm4, xmm6
    punpckhwd   xmm1, xmm6
    movdqa      xmm2, xmm4
    movdqa      xmm6, xmm1
    pmaddwd     xmm4, [rel PW_MF078_F117]  ; xmm4=z3L
    pmaddwd     xmm1, [rel PW_MF078_F117]  ; xmm1=z3H
    pmaddwd     xmm2, [rel PW_F117_F078]   ; xmm2=z4L
    pmaddwd     xmm6, [rel PW_F117_F078]   ; xmm6=z4H

    movdqa      XMMWORD [wk(0)], xmm4   ; wk(0)=z3L
    movdqa      XMMWORD [wk(1)], xmm1   ; wk(1)=z3H

    ; (Original)
    ; z1 = tmp4 + tmp7;  z2 = tmp5 + tmp6;
    ; tmp4 = tmp4 * 0.298631336;  tmp5 = tmp5 * 2.053119869;
    ; tmp6 = tmp6 * 3.072711026;  tmp7 = tmp7 * 1.501321110;
    ; z1 = z1 * -0.899976223;  z2 = z2 * -2.562915447;
    ; data7 = tmp4 + z1 + z3;  data5 = tmp5 + z2 + z4;
    ; data3 = tmp6 + z2 + z3;  data1 = tmp7 + z1 + z4;
    ;
    ; (This implementation)
    ; tmp4 = tmp4 * (0.298631336 - 0.899976223) + tmp7 * -0.899976223;
    ; tmp5 = tmp5 * (2.053119869 - 2.562915447) + tmp6 * -2.562915447;
    ; tmp6 = tmp5 * -2.562915447 + tmp6 * (3.072711026 - 2.562915447);
    ; tmp7 = tmp4 * -0.899976223 + tmp7 * (1.501321110 - 0.899976223);
    ; data7 = tmp4 + z3;  data5 = tmp5 + z4;
    ; data3 = tmp6 + z3;  data1 = tmp7 + z4;

    movdqa      xmm4, xmm0
    movdqa      xmm1, xmm0
    punpcklwd   xmm4, xmm5
    punpckhwd   xmm1, xmm5
    movdqa      xmm0, xmm4
    movdqa      xmm5, xmm1
    pmaddwd     xmm4, [rel PW_MF060_MF089]  ; xmm4=tmp4L
    pmaddwd     xmm1, [rel PW_MF060_MF089]  ; xmm1=tmp4H
    pmaddwd     xmm0, [rel PW_MF089_F060]   ; xmm0=tmp7L
    pmaddwd     xmm5, [rel PW_MF089_F060]   ; xmm5=tmp7H

    paddd       xmm4,  XMMWORD [wk(0)]  ; xmm4=data7L
    paddd       xmm1,  XMMWORD [wk(1)]  ; xmm1=data7H
    paddd       xmm0, xmm2              ; xmm0=data1L
    paddd       xmm5, xmm6              ; xmm5=data1H

    paddd       xmm4, [rel PD_DESCALE_P2]
    paddd       xmm1, [rel PD_DESCALE_P2]
    psrad       xmm4, DESCALE_P2
    psrad       xmm1, DESCALE_P2
    paddd       xmm0, [rel PD_DESCALE_P2]
    paddd       xmm5, [rel PD_DESCALE_P2]
    psrad       xmm0, DESCALE_P2
    psrad       xmm5, DESCALE_P2

    packssdw    xmm4, xmm1              ; xmm4=data7
    packssdw    xmm0, xmm5              ; xmm0=data1

    movdqa      XMMWORD [XMMBLOCK(7,0,rdx,SIZEOF_DCTELEM)], xmm4
    movdqa      XMMWORD [XMMBLOCK(1,0,rdx,SIZEOF_DCTELEM)], xmm0

    movdqa      xmm1, xmm3
    movdqa      xmm5, xmm3
    punpcklwd   xmm1, xmm7
    punpckhwd   xmm5, xmm7
    movdqa      xmm3, xmm1
    movdqa      xmm7, xmm5
    pmaddwd     xmm1, [rel PW_MF050_MF256]  ; xmm1=tmp5L
    pmaddwd     xmm5, [rel PW_MF050_MF256]  ; xmm5=tmp5H
    pmaddwd     xmm3, [rel PW_MF256_F050]   ; xmm3=tmp6L
    pmaddwd     xmm7, [rel PW_MF256_F050]   ; xmm7=tmp6H

    paddd       xmm1, xmm2              ; xmm1=data5L
    paddd       xmm5, xmm6              ; xmm5=data5H
    paddd       xmm3, XMMWORD [wk(0)]   ; xmm3=data3L
    paddd       xmm7, XMMWORD [wk(1)]   ; xmm7=data3H

    paddd       xmm1, [rel PD_DESCALE_P2]
    paddd       xmm5, [rel PD_DESCALE_P2]
    psrad       xmm1, DESCALE_P2
    psrad       xmm5, DESCALE_P2
    paddd       xmm3, [rel PD_DESCALE_P2]
    paddd       xmm7, [rel PD_DESCALE_P2]
    psrad       xmm3, DESCALE_P2
    psrad       xmm7, DESCALE_P2

    packssdw    xmm1, xmm5              ; xmm1=data5
    packssdw    xmm3, xmm7              ; xmm3=data3

    movdqa      XMMWORD [XMMBLOCK(5,0,rdx,SIZEOF_DCTELEM)], xmm1
    movdqa      XMMWORD [XMMBLOCK(3,0,rdx,SIZEOF_DCTELEM)], xmm3

    uncollect_args 1
    mov         rsp, rbp                ; rsp <- aligned rbp
    pop         rsp                     ; rsp <- original rbp
    pop         rbp
    ret

; For some reason, the OS X linker does not honor the request to align the
; segment unless we do this.
    align       32
