;
; jidctint.asm - accurate integer IDCT (64-bit SSE2)
;
; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
; Copyright (C) 2009, 2016, 2020, D. R. Commander.
; Copyright (C) 2018, Matthias Räncker.
;
; 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 slower but more accurate integer implementation of the
; inverse DCT (Discrete Cosine Transform). The following code is based
; directly on the IJG's original jidctint.c; see the jidctint.c for
; more details.

%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 + 3)

%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_idct_islow_sse2)

EXTN(jconst_idct_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)
PB_CENTERJSAMP times 16 db  CENTERJSAMPLE

    alignz      32

; --------------------------------------------------------------------------
    SECTION     SEG_TEXT
    BITS        64
;
; Perform dequantization and inverse DCT on one block of coefficients.
;
; GLOBAL(void)
; jsimd_idct_islow_sse2(void *dct_table, JCOEFPTR coef_block,
;                       JSAMPARRAY output_buf, JDIMENSION output_col)
;

; r10 = jpeg_component_info *compptr
; r11 = JCOEFPTR coef_block
; r12 = JSAMPARRAY output_buf
; r13d = JDIMENSION output_col

%define original_rbp  rbp + 0
%define wk(i)         rbp - (WK_NUM - (i)) * SIZEOF_XMMWORD
                                        ; xmmword wk[WK_NUM]
%define WK_NUM        12

    align       32
    GLOBAL_FUNCTION(jsimd_idct_islow_sse2)

EXTN(jsimd_idct_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 4

    ; ---- Pass 1: process columns from input.

    mov         rdx, r10                ; quantptr
    mov         rsi, r11                ; inptr

%ifndef NO_ZERO_COLUMN_TEST_ISLOW_SSE2
    mov         eax, dword [DWBLOCK(1,0,rsi,SIZEOF_JCOEF)]
    or          eax, dword [DWBLOCK(2,0,rsi,SIZEOF_JCOEF)]
    jnz         near .columnDCT

    movdqa      xmm0, XMMWORD [XMMBLOCK(1,0,rsi,SIZEOF_JCOEF)]
    movdqa      xmm1, XMMWORD [XMMBLOCK(2,0,rsi,SIZEOF_JCOEF)]
    por         xmm0, XMMWORD [XMMBLOCK(3,0,rsi,SIZEOF_JCOEF)]
    por         xmm1, XMMWORD [XMMBLOCK(4,0,rsi,SIZEOF_JCOEF)]
    por         xmm0, XMMWORD [XMMBLOCK(5,0,rsi,SIZEOF_JCOEF)]
    por         xmm1, XMMWORD [XMMBLOCK(6,0,rsi,SIZEOF_JCOEF)]
    por         xmm0, XMMWORD [XMMBLOCK(7,0,rsi,SIZEOF_JCOEF)]
    por         xmm1, xmm0
    packsswb    xmm1, xmm1
    packsswb    xmm1, xmm1
    movd        eax, xmm1
    test        rax, rax
    jnz         short .columnDCT

    ; -- AC terms all zero

    movdqa      xmm5, XMMWORD [XMMBLOCK(0,0,rsi,SIZEOF_JCOEF)]
    pmullw      xmm5, XMMWORD [XMMBLOCK(0,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]

    psllw       xmm5, PASS1_BITS

    movdqa      xmm4, xmm5              ; xmm5=in0=(00 01 02 03 04 05 06 07)
    punpcklwd   xmm5, xmm5              ; xmm5=(00 00 01 01 02 02 03 03)
    punpckhwd   xmm4, xmm4              ; xmm4=(04 04 05 05 06 06 07 07)

    pshufd      xmm7, xmm5, 0x00        ; xmm7=col0=(00 00 00 00 00 00 00 00)
    pshufd      xmm6, xmm5, 0x55        ; xmm6=col1=(01 01 01 01 01 01 01 01)
    pshufd      xmm1, xmm5, 0xAA        ; xmm1=col2=(02 02 02 02 02 02 02 02)
    pshufd      xmm5, xmm5, 0xFF        ; xmm5=col3=(03 03 03 03 03 03 03 03)
    pshufd      xmm0, xmm4, 0x00        ; xmm0=col4=(04 04 04 04 04 04 04 04)
    pshufd      xmm3, xmm4, 0x55        ; xmm3=col5=(05 05 05 05 05 05 05 05)
    pshufd      xmm2, xmm4, 0xAA        ; xmm2=col6=(06 06 06 06 06 06 06 06)
    pshufd      xmm4, xmm4, 0xFF        ; xmm4=col7=(07 07 07 07 07 07 07 07)

    movdqa      XMMWORD [wk(8)], xmm6   ; wk(8)=col1
    movdqa      XMMWORD [wk(9)], xmm5   ; wk(9)=col3
    movdqa      XMMWORD [wk(10)], xmm3  ; wk(10)=col5
    movdqa      XMMWORD [wk(11)], xmm4  ; wk(11)=col7
    jmp         near .column_end
%endif
.columnDCT:

    ; -- Even part

    movdqa      xmm0, XMMWORD [XMMBLOCK(0,0,rsi,SIZEOF_JCOEF)]
    movdqa      xmm1, XMMWORD [XMMBLOCK(2,0,rsi,SIZEOF_JCOEF)]
    pmullw      xmm0, XMMWORD [XMMBLOCK(0,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
    pmullw      xmm1, XMMWORD [XMMBLOCK(2,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
    movdqa      xmm2, XMMWORD [XMMBLOCK(4,0,rsi,SIZEOF_JCOEF)]
    movdqa      xmm3, XMMWORD [XMMBLOCK(6,0,rsi,SIZEOF_JCOEF)]
    pmullw      xmm2, XMMWORD [XMMBLOCK(4,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
    pmullw      xmm3, XMMWORD [XMMBLOCK(6,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]

    ; (Original)
    ; z1 = (z2 + z3) * 0.541196100;
    ; tmp2 = z1 + z3 * -1.847759065;
    ; tmp3 = z1 + z2 * 0.765366865;
    ;
    ; (This implementation)
    ; tmp2 = z2 * 0.541196100 + z3 * (0.541196100 - 1.847759065);
    ; tmp3 = z2 * (0.541196100 + 0.765366865) + z3 * 0.541196100;

    movdqa      xmm4, xmm1              ; xmm1=in2=z2
    movdqa      xmm5, xmm1
    punpcklwd   xmm4, xmm3              ; xmm3=in6=z3
    punpckhwd   xmm5, xmm3
    movdqa      xmm1, xmm4
    movdqa      xmm3, xmm5
    pmaddwd     xmm4, [rel PW_F130_F054]   ; xmm4=tmp3L
    pmaddwd     xmm5, [rel PW_F130_F054]   ; xmm5=tmp3H
    pmaddwd     xmm1, [rel PW_F054_MF130]  ; xmm1=tmp2L
    pmaddwd     xmm3, [rel PW_F054_MF130]  ; xmm3=tmp2H

    movdqa      xmm6, xmm0
    paddw       xmm0, xmm2              ; xmm0=in0+in4
    psubw       xmm6, xmm2              ; xmm6=in0-in4

    pxor        xmm7, xmm7
    pxor        xmm2, xmm2
    punpcklwd   xmm7, xmm0              ; xmm7=tmp0L
    punpckhwd   xmm2, xmm0              ; xmm2=tmp0H
    psrad       xmm7, (16-CONST_BITS)   ; psrad xmm7,16 & pslld xmm7,CONST_BITS
    psrad       xmm2, (16-CONST_BITS)   ; psrad xmm2,16 & pslld xmm2,CONST_BITS

    movdqa      xmm0, xmm7
    paddd       xmm7, xmm4              ; xmm7=tmp10L
    psubd       xmm0, xmm4              ; xmm0=tmp13L
    movdqa      xmm4, xmm2
    paddd       xmm2, xmm5              ; xmm2=tmp10H
    psubd       xmm4, xmm5              ; xmm4=tmp13H

    movdqa      XMMWORD [wk(0)], xmm7   ; wk(0)=tmp10L
    movdqa      XMMWORD [wk(1)], xmm2   ; wk(1)=tmp10H
    movdqa      XMMWORD [wk(2)], xmm0   ; wk(2)=tmp13L
    movdqa      XMMWORD [wk(3)], xmm4   ; wk(3)=tmp13H

    pxor        xmm5, xmm5
    pxor        xmm7, xmm7
    punpcklwd   xmm5, xmm6              ; xmm5=tmp1L
    punpckhwd   xmm7, xmm6              ; xmm7=tmp1H
    psrad       xmm5, (16-CONST_BITS)   ; psrad xmm5,16 & pslld xmm5,CONST_BITS
    psrad       xmm7, (16-CONST_BITS)   ; psrad xmm7,16 & pslld xmm7,CONST_BITS

    movdqa      xmm2, xmm5
    paddd       xmm5, xmm1              ; xmm5=tmp11L
    psubd       xmm2, xmm1              ; xmm2=tmp12L
    movdqa      xmm0, xmm7
    paddd       xmm7, xmm3              ; xmm7=tmp11H
    psubd       xmm0, xmm3              ; xmm0=tmp12H

    movdqa      XMMWORD [wk(4)], xmm5   ; wk(4)=tmp11L
    movdqa      XMMWORD [wk(5)], xmm7   ; wk(5)=tmp11H
    movdqa      XMMWORD [wk(6)], xmm2   ; wk(6)=tmp12L
    movdqa      XMMWORD [wk(7)], xmm0   ; wk(7)=tmp12H

    ; -- Odd part

    movdqa      xmm4, XMMWORD [XMMBLOCK(1,0,rsi,SIZEOF_JCOEF)]
    movdqa      xmm6, XMMWORD [XMMBLOCK(3,0,rsi,SIZEOF_JCOEF)]
    pmullw      xmm4, XMMWORD [XMMBLOCK(1,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
    pmullw      xmm6, XMMWORD [XMMBLOCK(3,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
    movdqa      xmm1, XMMWORD [XMMBLOCK(5,0,rsi,SIZEOF_JCOEF)]
    movdqa      xmm3, XMMWORD [XMMBLOCK(7,0,rsi,SIZEOF_JCOEF)]
    pmullw      xmm1, XMMWORD [XMMBLOCK(5,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
    pmullw      xmm3, XMMWORD [XMMBLOCK(7,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]

    movdqa      xmm5, xmm6
    movdqa      xmm7, xmm4
    paddw       xmm5, xmm3              ; xmm5=z3
    paddw       xmm7, xmm1              ; xmm7=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      xmm2, xmm5
    movdqa      xmm0, xmm5
    punpcklwd   xmm2, xmm7
    punpckhwd   xmm0, xmm7
    movdqa      xmm5, xmm2
    movdqa      xmm7, xmm0
    pmaddwd     xmm2, [rel PW_MF078_F117]  ; xmm2=z3L
    pmaddwd     xmm0, [rel PW_MF078_F117]  ; xmm0=z3H
    pmaddwd     xmm5, [rel PW_F117_F078]   ; xmm5=z4L
    pmaddwd     xmm7, [rel PW_F117_F078]   ; xmm7=z4H

    movdqa      XMMWORD [wk(10)], xmm2  ; wk(10)=z3L
    movdqa      XMMWORD [wk(11)], xmm0  ; wk(11)=z3H

    ; (Original)
    ; z1 = tmp0 + tmp3;  z2 = tmp1 + tmp2;
    ; tmp0 = tmp0 * 0.298631336;  tmp1 = tmp1 * 2.053119869;
    ; tmp2 = tmp2 * 3.072711026;  tmp3 = tmp3 * 1.501321110;
    ; z1 = z1 * -0.899976223;  z2 = z2 * -2.562915447;
    ; tmp0 += z1 + z3;  tmp1 += z2 + z4;
    ; tmp2 += z2 + z3;  tmp3 += z1 + z4;
    ;
    ; (This implementation)
    ; tmp0 = tmp0 * (0.298631336 - 0.899976223) + tmp3 * -0.899976223;
    ; tmp1 = tmp1 * (2.053119869 - 2.562915447) + tmp2 * -2.562915447;
    ; tmp2 = tmp1 * -2.562915447 + tmp2 * (3.072711026 - 2.562915447);
    ; tmp3 = tmp0 * -0.899976223 + tmp3 * (1.501321110 - 0.899976223);
    ; tmp0 += z3;  tmp1 += z4;
    ; tmp2 += z3;  tmp3 += z4;

    movdqa      xmm2, xmm3
    movdqa      xmm0, xmm3
    punpcklwd   xmm2, xmm4
    punpckhwd   xmm0, xmm4
    movdqa      xmm3, xmm2
    movdqa      xmm4, xmm0
    pmaddwd     xmm2, [rel PW_MF060_MF089]  ; xmm2=tmp0L
    pmaddwd     xmm0, [rel PW_MF060_MF089]  ; xmm0=tmp0H
    pmaddwd     xmm3, [rel PW_MF089_F060]   ; xmm3=tmp3L
    pmaddwd     xmm4, [rel PW_MF089_F060]   ; xmm4=tmp3H

    paddd       xmm2, XMMWORD [wk(10)]  ; xmm2=tmp0L
    paddd       xmm0, XMMWORD [wk(11)]  ; xmm0=tmp0H
    paddd       xmm3, xmm5              ; xmm3=tmp3L
    paddd       xmm4, xmm7              ; xmm4=tmp3H

    movdqa      XMMWORD [wk(8)], xmm2   ; wk(8)=tmp0L
    movdqa      XMMWORD [wk(9)], xmm0   ; wk(9)=tmp0H

    movdqa      xmm2, xmm1
    movdqa      xmm0, xmm1
    punpcklwd   xmm2, xmm6
    punpckhwd   xmm0, xmm6
    movdqa      xmm1, xmm2
    movdqa      xmm6, xmm0
    pmaddwd     xmm2, [rel PW_MF050_MF256]  ; xmm2=tmp1L
    pmaddwd     xmm0, [rel PW_MF050_MF256]  ; xmm0=tmp1H
    pmaddwd     xmm1, [rel PW_MF256_F050]   ; xmm1=tmp2L
    pmaddwd     xmm6, [rel PW_MF256_F050]   ; xmm6=tmp2H

    paddd       xmm2, xmm5              ; xmm2=tmp1L
    paddd       xmm0, xmm7              ; xmm0=tmp1H
    paddd       xmm1, XMMWORD [wk(10)]  ; xmm1=tmp2L
    paddd       xmm6, XMMWORD [wk(11)]  ; xmm6=tmp2H

    movdqa      XMMWORD [wk(10)], xmm2  ; wk(10)=tmp1L
    movdqa      XMMWORD [wk(11)], xmm0  ; wk(11)=tmp1H

    ; -- Final output stage

    movdqa      xmm5, XMMWORD [wk(0)]   ; xmm5=tmp10L
    movdqa      xmm7, XMMWORD [wk(1)]   ; xmm7=tmp10H

    movdqa      xmm2, xmm5
    movdqa      xmm0, xmm7
    paddd       xmm5, xmm3              ; xmm5=data0L
    paddd       xmm7, xmm4              ; xmm7=data0H
    psubd       xmm2, xmm3              ; xmm2=data7L
    psubd       xmm0, xmm4              ; xmm0=data7H

    movdqa      xmm3, [rel PD_DESCALE_P1]  ; xmm3=[rel PD_DESCALE_P1]

    paddd       xmm5, xmm3
    paddd       xmm7, xmm3
    psrad       xmm5, DESCALE_P1
    psrad       xmm7, DESCALE_P1
    paddd       xmm2, xmm3
    paddd       xmm0, xmm3
    psrad       xmm2, DESCALE_P1
    psrad       xmm0, DESCALE_P1

    packssdw    xmm5, xmm7              ; xmm5=data0=(00 01 02 03 04 05 06 07)
    packssdw    xmm2, xmm0              ; xmm2=data7=(70 71 72 73 74 75 76 77)

    movdqa      xmm4, XMMWORD [wk(4)]   ; xmm4=tmp11L
    movdqa      xmm3, XMMWORD [wk(5)]   ; xmm3=tmp11H

    movdqa      xmm7, xmm4
    movdqa      xmm0, xmm3
    paddd       xmm4, xmm1              ; xmm4=data1L
    paddd       xmm3, xmm6              ; xmm3=data1H
    psubd       xmm7, xmm1              ; xmm7=data6L
    psubd       xmm0, xmm6              ; xmm0=data6H

    movdqa      xmm1, [rel PD_DESCALE_P1]  ; xmm1=[rel PD_DESCALE_P1]

    paddd       xmm4, xmm1
    paddd       xmm3, xmm1
    psrad       xmm4, DESCALE_P1
    psrad       xmm3, DESCALE_P1
    paddd       xmm7, xmm1
    paddd       xmm0, xmm1
    psrad       xmm7, DESCALE_P1
    psrad       xmm0, DESCALE_P1

    packssdw    xmm4, xmm3              ; xmm4=data1=(10 11 12 13 14 15 16 17)
    packssdw    xmm7, xmm0              ; xmm7=data6=(60 61 62 63 64 65 66 67)

    movdqa      xmm6, xmm5              ; transpose coefficients(phase 1)
    punpcklwd   xmm5, xmm4              ; xmm5=(00 10 01 11 02 12 03 13)
    punpckhwd   xmm6, xmm4              ; xmm6=(04 14 05 15 06 16 07 17)
    movdqa      xmm1, xmm7              ; transpose coefficients(phase 1)
    punpcklwd   xmm7, xmm2              ; xmm7=(60 70 61 71 62 72 63 73)
    punpckhwd   xmm1, xmm2              ; xmm1=(64 74 65 75 66 76 67 77)

    movdqa      xmm3, XMMWORD [wk(6)]   ; xmm3=tmp12L
    movdqa      xmm0, XMMWORD [wk(7)]   ; xmm0=tmp12H
    movdqa      xmm4, XMMWORD [wk(10)]  ; xmm4=tmp1L
    movdqa      xmm2, XMMWORD [wk(11)]  ; xmm2=tmp1H

    movdqa      XMMWORD [wk(0)], xmm5   ; wk(0)=(00 10 01 11 02 12 03 13)
    movdqa      XMMWORD [wk(1)], xmm6   ; wk(1)=(04 14 05 15 06 16 07 17)
    movdqa      XMMWORD [wk(4)], xmm7   ; wk(4)=(60 70 61 71 62 72 63 73)
    movdqa      XMMWORD [wk(5)], xmm1   ; wk(5)=(64 74 65 75 66 76 67 77)

    movdqa      xmm5, xmm3
    movdqa      xmm6, xmm0
    paddd       xmm3, xmm4              ; xmm3=data2L
    paddd       xmm0, xmm2              ; xmm0=data2H
    psubd       xmm5, xmm4              ; xmm5=data5L
    psubd       xmm6, xmm2              ; xmm6=data5H

    movdqa      xmm7, [rel PD_DESCALE_P1]  ; xmm7=[rel PD_DESCALE_P1]

    paddd       xmm3, xmm7
    paddd       xmm0, xmm7
    psrad       xmm3, DESCALE_P1
    psrad       xmm0, DESCALE_P1
    paddd       xmm5, xmm7
    paddd       xmm6, xmm7
    psrad       xmm5, DESCALE_P1
    psrad       xmm6, DESCALE_P1

    packssdw    xmm3, xmm0              ; xmm3=data2=(20 21 22 23 24 25 26 27)
    packssdw    xmm5, xmm6              ; xmm5=data5=(50 51 52 53 54 55 56 57)

    movdqa      xmm1, XMMWORD [wk(2)]   ; xmm1=tmp13L
    movdqa      xmm4, XMMWORD [wk(3)]   ; xmm4=tmp13H
    movdqa      xmm2, XMMWORD [wk(8)]   ; xmm2=tmp0L
    movdqa      xmm7, XMMWORD [wk(9)]   ; xmm7=tmp0H

    movdqa      xmm0, xmm1
    movdqa      xmm6, xmm4
    paddd       xmm1, xmm2              ; xmm1=data3L
    paddd       xmm4, xmm7              ; xmm4=data3H
    psubd       xmm0, xmm2              ; xmm0=data4L
    psubd       xmm6, xmm7              ; xmm6=data4H

    movdqa      xmm2, [rel PD_DESCALE_P1]  ; xmm2=[rel PD_DESCALE_P1]

    paddd       xmm1, xmm2
    paddd       xmm4, xmm2
    psrad       xmm1, DESCALE_P1
    psrad       xmm4, DESCALE_P1
    paddd       xmm0, xmm2
    paddd       xmm6, xmm2
    psrad       xmm0, DESCALE_P1
    psrad       xmm6, DESCALE_P1

    packssdw    xmm1, xmm4              ; xmm1=data3=(30 31 32 33 34 35 36 37)
    packssdw    xmm0, xmm6              ; xmm0=data4=(40 41 42 43 44 45 46 47)

    movdqa      xmm7, XMMWORD [wk(0)]   ; xmm7=(00 10 01 11 02 12 03 13)
    movdqa      xmm2, XMMWORD [wk(1)]   ; xmm2=(04 14 05 15 06 16 07 17)

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

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

    movdqa      xmm3, XMMWORD [wk(4)]   ; xmm3=(60 70 61 71 62 72 63 73)
    movdqa      xmm4, XMMWORD [wk(5)]   ; xmm4=(64 74 65 75 66 76 67 77)

    movdqa      XMMWORD [wk(6)], xmm2   ; wk(6)=(04 14 24 34 05 15 25 35)
    movdqa      XMMWORD [wk(7)], xmm5   ; wk(7)=(06 16 26 36 07 17 27 37)

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

    movdqa      xmm3, xmm7              ; transpose coefficients(phase 3)
    punpcklqdq  xmm7, xmm0              ; xmm7=col0=(00 10 20 30 40 50 60 70)
    punpckhqdq  xmm3, xmm0              ; xmm3=col1=(01 11 21 31 41 51 61 71)
    movdqa      xmm4, xmm1              ; transpose coefficients(phase 3)
    punpcklqdq  xmm1, xmm2              ; xmm1=col2=(02 12 22 32 42 52 62 72)
    punpckhqdq  xmm4, xmm2              ; xmm4=col3=(03 13 23 33 43 53 63 73)

    movdqa      xmm0, XMMWORD [wk(6)]   ; xmm0=(04 14 24 34 05 15 25 35)
    movdqa      xmm2, XMMWORD [wk(7)]   ; xmm2=(06 16 26 36 07 17 27 37)

    movdqa      XMMWORD [wk(8)], xmm3   ; wk(8)=col1
    movdqa      XMMWORD [wk(9)], xmm4   ; wk(9)=col3

    movdqa      xmm3, xmm0              ; transpose coefficients(phase 3)
    punpcklqdq  xmm0, xmm6              ; xmm0=col4=(04 14 24 34 44 54 64 74)
    punpckhqdq  xmm3, xmm6              ; xmm3=col5=(05 15 25 35 45 55 65 75)
    movdqa      xmm4, xmm2              ; transpose coefficients(phase 3)
    punpcklqdq  xmm2, xmm5              ; xmm2=col6=(06 16 26 36 46 56 66 76)
    punpckhqdq  xmm4, xmm5              ; xmm4=col7=(07 17 27 37 47 57 67 77)

    movdqa      XMMWORD [wk(10)], xmm3  ; wk(10)=col5
    movdqa      XMMWORD [wk(11)], xmm4  ; wk(11)=col7
.column_end:

    ; -- Prefetch the next coefficient block

    prefetchnta [rsi + DCTSIZE2*SIZEOF_JCOEF + 0*32]
    prefetchnta [rsi + DCTSIZE2*SIZEOF_JCOEF + 1*32]
    prefetchnta [rsi + DCTSIZE2*SIZEOF_JCOEF + 2*32]
    prefetchnta [rsi + DCTSIZE2*SIZEOF_JCOEF + 3*32]

    ; ---- Pass 2: process rows from work array, store into output array.

    mov         rax, [original_rbp]
    mov         rdi, r12                ; (JSAMPROW *)
    mov         eax, r13d

    ; -- Even part

    ; xmm7=col0, xmm1=col2, xmm0=col4, xmm2=col6

    ; (Original)
    ; z1 = (z2 + z3) * 0.541196100;
    ; tmp2 = z1 + z3 * -1.847759065;
    ; tmp3 = z1 + z2 * 0.765366865;
    ;
    ; (This implementation)
    ; tmp2 = z2 * 0.541196100 + z3 * (0.541196100 - 1.847759065);
    ; tmp3 = z2 * (0.541196100 + 0.765366865) + z3 * 0.541196100;

    movdqa      xmm6, xmm1              ; xmm1=in2=z2
    movdqa      xmm5, xmm1
    punpcklwd   xmm6, xmm2              ; xmm2=in6=z3
    punpckhwd   xmm5, xmm2
    movdqa      xmm1, xmm6
    movdqa      xmm2, xmm5
    pmaddwd     xmm6, [rel PW_F130_F054]   ; xmm6=tmp3L
    pmaddwd     xmm5, [rel PW_F130_F054]   ; xmm5=tmp3H
    pmaddwd     xmm1, [rel PW_F054_MF130]  ; xmm1=tmp2L
    pmaddwd     xmm2, [rel PW_F054_MF130]  ; xmm2=tmp2H

    movdqa      xmm3, xmm7
    paddw       xmm7, xmm0              ; xmm7=in0+in4
    psubw       xmm3, xmm0              ; xmm3=in0-in4

    pxor        xmm4, xmm4
    pxor        xmm0, xmm0
    punpcklwd   xmm4, xmm7              ; xmm4=tmp0L
    punpckhwd   xmm0, xmm7              ; xmm0=tmp0H
    psrad       xmm4, (16-CONST_BITS)   ; psrad xmm4,16 & pslld xmm4,CONST_BITS
    psrad       xmm0, (16-CONST_BITS)   ; psrad xmm0,16 & pslld xmm0,CONST_BITS

    movdqa      xmm7, xmm4
    paddd       xmm4, xmm6              ; xmm4=tmp10L
    psubd       xmm7, xmm6              ; xmm7=tmp13L
    movdqa      xmm6, xmm0
    paddd       xmm0, xmm5              ; xmm0=tmp10H
    psubd       xmm6, xmm5              ; xmm6=tmp13H

    movdqa      XMMWORD [wk(0)], xmm4   ; wk(0)=tmp10L
    movdqa      XMMWORD [wk(1)], xmm0   ; wk(1)=tmp10H
    movdqa      XMMWORD [wk(2)], xmm7   ; wk(2)=tmp13L
    movdqa      XMMWORD [wk(3)], xmm6   ; wk(3)=tmp13H

    pxor        xmm5, xmm5
    pxor        xmm4, xmm4
    punpcklwd   xmm5, xmm3              ; xmm5=tmp1L
    punpckhwd   xmm4, xmm3              ; xmm4=tmp1H
    psrad       xmm5, (16-CONST_BITS)   ; psrad xmm5,16 & pslld xmm5,CONST_BITS
    psrad       xmm4, (16-CONST_BITS)   ; psrad xmm4,16 & pslld xmm4,CONST_BITS

    movdqa      xmm0, xmm5
    paddd       xmm5, xmm1              ; xmm5=tmp11L
    psubd       xmm0, xmm1              ; xmm0=tmp12L
    movdqa      xmm7, xmm4
    paddd       xmm4, xmm2              ; xmm4=tmp11H
    psubd       xmm7, xmm2              ; xmm7=tmp12H

    movdqa      XMMWORD [wk(4)], xmm5   ; wk(4)=tmp11L
    movdqa      XMMWORD [wk(5)], xmm4   ; wk(5)=tmp11H
    movdqa      XMMWORD [wk(6)], xmm0   ; wk(6)=tmp12L
    movdqa      XMMWORD [wk(7)], xmm7   ; wk(7)=tmp12H

    ; -- Odd part

    movdqa      xmm6, XMMWORD [wk(9)]   ; xmm6=col3
    movdqa      xmm3, XMMWORD [wk(8)]   ; xmm3=col1
    movdqa      xmm1, XMMWORD [wk(11)]  ; xmm1=col7
    movdqa      xmm2, XMMWORD [wk(10)]  ; xmm2=col5

    movdqa      xmm5, xmm6
    movdqa      xmm4, xmm3
    paddw       xmm5, xmm1              ; xmm5=z3
    paddw       xmm4, xmm2              ; xmm4=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      xmm0, xmm5
    movdqa      xmm7, xmm5
    punpcklwd   xmm0, xmm4
    punpckhwd   xmm7, xmm4
    movdqa      xmm5, xmm0
    movdqa      xmm4, xmm7
    pmaddwd     xmm0, [rel PW_MF078_F117]  ; xmm0=z3L
    pmaddwd     xmm7, [rel PW_MF078_F117]  ; xmm7=z3H
    pmaddwd     xmm5, [rel PW_F117_F078]   ; xmm5=z4L
    pmaddwd     xmm4, [rel PW_F117_F078]   ; xmm4=z4H

    movdqa      XMMWORD [wk(10)], xmm0  ; wk(10)=z3L
    movdqa      XMMWORD [wk(11)], xmm7  ; wk(11)=z3H

    ; (Original)
    ; z1 = tmp0 + tmp3;  z2 = tmp1 + tmp2;
    ; tmp0 = tmp0 * 0.298631336;  tmp1 = tmp1 * 2.053119869;
    ; tmp2 = tmp2 * 3.072711026;  tmp3 = tmp3 * 1.501321110;
    ; z1 = z1 * -0.899976223;  z2 = z2 * -2.562915447;
    ; tmp0 += z1 + z3;  tmp1 += z2 + z4;
    ; tmp2 += z2 + z3;  tmp3 += z1 + z4;
    ;
    ; (This implementation)
    ; tmp0 = tmp0 * (0.298631336 - 0.899976223) + tmp3 * -0.899976223;
    ; tmp1 = tmp1 * (2.053119869 - 2.562915447) + tmp2 * -2.562915447;
    ; tmp2 = tmp1 * -2.562915447 + tmp2 * (3.072711026 - 2.562915447);
    ; tmp3 = tmp0 * -0.899976223 + tmp3 * (1.501321110 - 0.899976223);
    ; tmp0 += z3;  tmp1 += z4;
    ; tmp2 += z3;  tmp3 += z4;

    movdqa      xmm0, xmm1
    movdqa      xmm7, xmm1
    punpcklwd   xmm0, xmm3
    punpckhwd   xmm7, xmm3
    movdqa      xmm1, xmm0
    movdqa      xmm3, xmm7
    pmaddwd     xmm0, [rel PW_MF060_MF089]  ; xmm0=tmp0L
    pmaddwd     xmm7, [rel PW_MF060_MF089]  ; xmm7=tmp0H
    pmaddwd     xmm1, [rel PW_MF089_F060]   ; xmm1=tmp3L
    pmaddwd     xmm3, [rel PW_MF089_F060]   ; xmm3=tmp3H

    paddd       xmm0, XMMWORD [wk(10)]  ; xmm0=tmp0L
    paddd       xmm7, XMMWORD [wk(11)]  ; xmm7=tmp0H
    paddd       xmm1, xmm5              ; xmm1=tmp3L
    paddd       xmm3, xmm4              ; xmm3=tmp3H

    movdqa      XMMWORD [wk(8)], xmm0   ; wk(8)=tmp0L
    movdqa      XMMWORD [wk(9)], xmm7   ; wk(9)=tmp0H

    movdqa      xmm0, xmm2
    movdqa      xmm7, xmm2
    punpcklwd   xmm0, xmm6
    punpckhwd   xmm7, xmm6
    movdqa      xmm2, xmm0
    movdqa      xmm6, xmm7
    pmaddwd     xmm0, [rel PW_MF050_MF256]  ; xmm0=tmp1L
    pmaddwd     xmm7, [rel PW_MF050_MF256]  ; xmm7=tmp1H
    pmaddwd     xmm2, [rel PW_MF256_F050]   ; xmm2=tmp2L
    pmaddwd     xmm6, [rel PW_MF256_F050]   ; xmm6=tmp2H

    paddd       xmm0, xmm5              ; xmm0=tmp1L
    paddd       xmm7, xmm4              ; xmm7=tmp1H
    paddd       xmm2, XMMWORD [wk(10)]  ; xmm2=tmp2L
    paddd       xmm6, XMMWORD [wk(11)]  ; xmm6=tmp2H

    movdqa      XMMWORD [wk(10)], xmm0  ; wk(10)=tmp1L
    movdqa      XMMWORD [wk(11)], xmm7  ; wk(11)=tmp1H

    ; -- Final output stage

    movdqa      xmm5, XMMWORD [wk(0)]   ; xmm5=tmp10L
    movdqa      xmm4, XMMWORD [wk(1)]   ; xmm4=tmp10H

    movdqa      xmm0, xmm5
    movdqa      xmm7, xmm4
    paddd       xmm5, xmm1              ; xmm5=data0L
    paddd       xmm4, xmm3              ; xmm4=data0H
    psubd       xmm0, xmm1              ; xmm0=data7L
    psubd       xmm7, xmm3              ; xmm7=data7H

    movdqa      xmm1, [rel PD_DESCALE_P2]  ; xmm1=[rel PD_DESCALE_P2]

    paddd       xmm5, xmm1
    paddd       xmm4, xmm1
    psrad       xmm5, DESCALE_P2
    psrad       xmm4, DESCALE_P2
    paddd       xmm0, xmm1
    paddd       xmm7, xmm1
    psrad       xmm0, DESCALE_P2
    psrad       xmm7, DESCALE_P2

    packssdw    xmm5, xmm4              ; xmm5=data0=(00 10 20 30 40 50 60 70)
    packssdw    xmm0, xmm7              ; xmm0=data7=(07 17 27 37 47 57 67 77)

    movdqa      xmm3, XMMWORD [wk(4)]   ; xmm3=tmp11L
    movdqa      xmm1, XMMWORD [wk(5)]   ; xmm1=tmp11H

    movdqa      xmm4, xmm3
    movdqa      xmm7, xmm1
    paddd       xmm3, xmm2              ; xmm3=data1L
    paddd       xmm1, xmm6              ; xmm1=data1H
    psubd       xmm4, xmm2              ; xmm4=data6L
    psubd       xmm7, xmm6              ; xmm7=data6H

    movdqa      xmm2, [rel PD_DESCALE_P2]  ; xmm2=[rel PD_DESCALE_P2]

    paddd       xmm3, xmm2
    paddd       xmm1, xmm2
    psrad       xmm3, DESCALE_P2
    psrad       xmm1, DESCALE_P2
    paddd       xmm4, xmm2
    paddd       xmm7, xmm2
    psrad       xmm4, DESCALE_P2
    psrad       xmm7, DESCALE_P2

    packssdw    xmm3, xmm1              ; xmm3=data1=(01 11 21 31 41 51 61 71)
    packssdw    xmm4, xmm7              ; xmm4=data6=(06 16 26 36 46 56 66 76)

    packsswb    xmm5, xmm4              ; xmm5=(00 10 20 30 40 50 60 70 06 16 26 36 46 56 66 76)
    packsswb    xmm3, xmm0              ; xmm3=(01 11 21 31 41 51 61 71 07 17 27 37 47 57 67 77)

    movdqa      xmm6, XMMWORD [wk(6)]   ; xmm6=tmp12L
    movdqa      xmm2, XMMWORD [wk(7)]   ; xmm2=tmp12H
    movdqa      xmm1, XMMWORD [wk(10)]  ; xmm1=tmp1L
    movdqa      xmm7, XMMWORD [wk(11)]  ; xmm7=tmp1H

    movdqa      XMMWORD [wk(0)], xmm5   ; wk(0)=(00 10 20 30 40 50 60 70 06 16 26 36 46 56 66 76)
    movdqa      XMMWORD [wk(1)], xmm3   ; wk(1)=(01 11 21 31 41 51 61 71 07 17 27 37 47 57 67 77)

    movdqa      xmm4, xmm6
    movdqa      xmm0, xmm2
    paddd       xmm6, xmm1              ; xmm6=data2L
    paddd       xmm2, xmm7              ; xmm2=data2H
    psubd       xmm4, xmm1              ; xmm4=data5L
    psubd       xmm0, xmm7              ; xmm0=data5H

    movdqa      xmm5, [rel PD_DESCALE_P2]  ; xmm5=[rel PD_DESCALE_P2]

    paddd       xmm6, xmm5
    paddd       xmm2, xmm5
    psrad       xmm6, DESCALE_P2
    psrad       xmm2, DESCALE_P2
    paddd       xmm4, xmm5
    paddd       xmm0, xmm5
    psrad       xmm4, DESCALE_P2
    psrad       xmm0, DESCALE_P2

    packssdw    xmm6, xmm2              ; xmm6=data2=(02 12 22 32 42 52 62 72)
    packssdw    xmm4, xmm0              ; xmm4=data5=(05 15 25 35 45 55 65 75)

    movdqa      xmm3, XMMWORD [wk(2)]   ; xmm3=tmp13L
    movdqa      xmm1, XMMWORD [wk(3)]   ; xmm1=tmp13H
    movdqa      xmm7, XMMWORD [wk(8)]   ; xmm7=tmp0L
    movdqa      xmm5, XMMWORD [wk(9)]   ; xmm5=tmp0H

    movdqa      xmm2, xmm3
    movdqa      xmm0, xmm1
    paddd       xmm3, xmm7              ; xmm3=data3L
    paddd       xmm1, xmm5              ; xmm1=data3H
    psubd       xmm2, xmm7              ; xmm2=data4L
    psubd       xmm0, xmm5              ; xmm0=data4H

    movdqa      xmm7, [rel PD_DESCALE_P2]  ; xmm7=[rel PD_DESCALE_P2]

    paddd       xmm3, xmm7
    paddd       xmm1, xmm7
    psrad       xmm3, DESCALE_P2
    psrad       xmm1, DESCALE_P2
    paddd       xmm2, xmm7
    paddd       xmm0, xmm7
    psrad       xmm2, DESCALE_P2
    psrad       xmm0, DESCALE_P2

    movdqa      xmm5, [rel PB_CENTERJSAMP]  ; xmm5=[rel PB_CENTERJSAMP]

    packssdw    xmm3, xmm1             ; xmm3=data3=(03 13 23 33 43 53 63 73)
    packssdw    xmm2, xmm0             ; xmm2=data4=(04 14 24 34 44 54 64 74)

    movdqa      xmm7, XMMWORD [wk(0)]  ; xmm7=(00 10 20 30 40 50 60 70 06 16 26 36 46 56 66 76)
    movdqa      xmm1, XMMWORD [wk(1)]  ; xmm1=(01 11 21 31 41 51 61 71 07 17 27 37 47 57 67 77)

    packsswb    xmm6, xmm2             ; xmm6=(02 12 22 32 42 52 62 72 04 14 24 34 44 54 64 74)
    packsswb    xmm3, xmm4             ; xmm3=(03 13 23 33 43 53 63 73 05 15 25 35 45 55 65 75)

    paddb       xmm7, xmm5
    paddb       xmm1, xmm5
    paddb       xmm6, xmm5
    paddb       xmm3, xmm5

    movdqa      xmm0, xmm7        ; transpose coefficients(phase 1)
    punpcklbw   xmm7, xmm1        ; xmm7=(00 01 10 11 20 21 30 31 40 41 50 51 60 61 70 71)
    punpckhbw   xmm0, xmm1        ; xmm0=(06 07 16 17 26 27 36 37 46 47 56 57 66 67 76 77)
    movdqa      xmm2, xmm6        ; transpose coefficients(phase 1)
    punpcklbw   xmm6, xmm3        ; xmm6=(02 03 12 13 22 23 32 33 42 43 52 53 62 63 72 73)
    punpckhbw   xmm2, xmm3        ; xmm2=(04 05 14 15 24 25 34 35 44 45 54 55 64 65 74 75)

    movdqa      xmm4, xmm7        ; transpose coefficients(phase 2)
    punpcklwd   xmm7, xmm6        ; xmm7=(00 01 02 03 10 11 12 13 20 21 22 23 30 31 32 33)
    punpckhwd   xmm4, xmm6        ; xmm4=(40 41 42 43 50 51 52 53 60 61 62 63 70 71 72 73)
    movdqa      xmm5, xmm2        ; transpose coefficients(phase 2)
    punpcklwd   xmm2, xmm0        ; xmm2=(04 05 06 07 14 15 16 17 24 25 26 27 34 35 36 37)
    punpckhwd   xmm5, xmm0        ; xmm5=(44 45 46 47 54 55 56 57 64 65 66 67 74 75 76 77)

    movdqa      xmm1, xmm7        ; transpose coefficients(phase 3)
    punpckldq   xmm7, xmm2        ; xmm7=(00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17)
    punpckhdq   xmm1, xmm2        ; xmm1=(20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37)
    movdqa      xmm3, xmm4        ; transpose coefficients(phase 3)
    punpckldq   xmm4, xmm5        ; xmm4=(40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57)
    punpckhdq   xmm3, xmm5        ; xmm3=(60 61 62 63 64 65 66 67 70 71 72 73 74 75 76 77)

    pshufd      xmm6, xmm7, 0x4E  ; xmm6=(10 11 12 13 14 15 16 17 00 01 02 03 04 05 06 07)
    pshufd      xmm0, xmm1, 0x4E  ; xmm0=(30 31 32 33 34 35 36 37 20 21 22 23 24 25 26 27)
    pshufd      xmm2, xmm4, 0x4E  ; xmm2=(50 51 52 53 54 55 56 57 40 41 42 43 44 45 46 47)
    pshufd      xmm5, xmm3, 0x4E  ; xmm5=(70 71 72 73 74 75 76 77 60 61 62 63 64 65 66 67)

    mov         rdxp, JSAMPROW [rdi+0*SIZEOF_JSAMPROW]
    mov         rsip, JSAMPROW [rdi+2*SIZEOF_JSAMPROW]
    movq        XMM_MMWORD [rdx+rax*SIZEOF_JSAMPLE], xmm7
    movq        XMM_MMWORD [rsi+rax*SIZEOF_JSAMPLE], xmm1
    mov         rdxp, JSAMPROW [rdi+4*SIZEOF_JSAMPROW]
    mov         rsip, JSAMPROW [rdi+6*SIZEOF_JSAMPROW]
    movq        XMM_MMWORD [rdx+rax*SIZEOF_JSAMPLE], xmm4
    movq        XMM_MMWORD [rsi+rax*SIZEOF_JSAMPLE], xmm3

    mov         rdxp, JSAMPROW [rdi+1*SIZEOF_JSAMPROW]
    mov         rsip, JSAMPROW [rdi+3*SIZEOF_JSAMPROW]
    movq        XMM_MMWORD [rdx+rax*SIZEOF_JSAMPLE], xmm6
    movq        XMM_MMWORD [rsi+rax*SIZEOF_JSAMPLE], xmm0
    mov         rdxp, JSAMPROW [rdi+5*SIZEOF_JSAMPROW]
    mov         rsip, JSAMPROW [rdi+7*SIZEOF_JSAMPROW]
    movq        XMM_MMWORD [rdx+rax*SIZEOF_JSAMPLE], xmm2
    movq        XMM_MMWORD [rsi+rax*SIZEOF_JSAMPLE], xmm5

    uncollect_args 4
    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
