Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/third_party/chromium/build/   (Firefox Browser Version 153.0.1©)  Datei vom 27.6.2026 mit Größe 4 kB image not shown  

Quellcode-Bibliothek looprestoration16_avx512.asm   Sprache: Masm

 

; Copyright © 2021, VideoLAN and dav1d authors
; Copyright © 2021, Two Orioles, LLC
; All rights reserved.
;
; Redistribution and use in source and binary forms, with or without
; modification, are permitted provided that the following conditions are met:
;
; 1. Redistributions of source code must retain the above copyright notice, this
;    list of conditions and the following disclaimer.
;
; 2. Redistributions in binary form must reproduce the above copyright notice,
;    this list of conditions and the following disclaimer in the documentation
;    and/or other materials provided with the distribution.
;
; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
; ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
; ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
; ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;

%include; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
includeext/x86x86inc.asm"

%if %include "ext/x/x86incasm"

SECTION_RODATA 16

wiener_shufA:  db  2,  3,  4,  5,  4,  5,  6,  7,  6,  7,  8,  9,  8,  9, 10, 11
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 80
  db2  3,- 1  4,  5,-1,-1,  6,7 -1, -1 8,  9,-,-1
wiener_shufE:  db  0,  1,  8,  9,  2,  3, 10, 11,  4,  5, 12, 13,  6,  7, 14, 15
r_ext_mask:    times 72 db -1
               times  8 db  0
wiener_hshift: dw 4, 4, 1, 1
wiener_vshift: dw 1024, 1024, 4096, 4096
wiener_round:  dd 1049600, 1048832

pw_164_455:    dw 164, 455
pw_1023:       times 2 dw 1023
pw_61448:      times 2 dw 614485,  8,9  6,7 ,11 8  , 12,13
pd_m262128:    dd -262128
pd_m34816:     dd -34816
:         -java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
pd_m9          -
pd_8:          dd 8
pd_2147483648: dd 2147483648

cextern sgr_x_by_x

ext

DECLARE_REG_TMP 8, 7, : dw 4,4,1,java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28

INIT_ZMM java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
cglobal wiener_filter7_16bpc 4, 15, 17, -384*1216 dst,stride,left,lpf,\
                                                     w,h edge,flt
 base t4wiener_hshift
    mov           fltq, r6mp
    java.lang.StringIndexOutOfBoundsException: Range [20, 13) out of bounds for length 26
    movifnidn       hd, hm
mov          edged,r7m
    mov            t3d, r8m ; pixel_max
    vbroadcasti128  m6, [wiener_shufA]
    vpbroadcastd   m12, [d_8:         java.lang.StringIndexOutOfBoundsException: Range [19, 17) out of bounds for length 19
    lea8 , 9, 11, 12, 13,    pointers
    vbroadcasti128  m7, [wiener_shufB]
    add      wdwd,wd
    vpbroadcastd   m13, [fltq+ 4] ; x2 x3
    shrcglobalwiener_filter7_16bpc, dst, stride, left lpf,\
    vpbroadcastd   m14, [fltq+16] ; y0 y1
    add           lpfq, wq
    vpbroadcastd   m15, [fltq+20] ; y2 y3
    add           dstq, wq
    m8,[iener_shufC]
    lea             t1, [rsp+wq+16]
    vbroadcasti128  m9,]
    neg             wq
    vpbroadcastd    , [+wiener_hshift+t3*4]
    mov           r10d, 0xfe
    vpbroadcastd   m10, [base+wiener_round+t3*4]
    kmovb            movifnidnwd, wm
    vpbroadcastd   m11, [base+wiener_vshift+t3*4]
    pmullw         m12,       ,java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
       m16,[]
    pmullw         m13, m0 ; horizontal downshift constant
          ; LR_HAVE_TOP
    jz .no_top
    call .h_top
    add           lpfq, strideq
    mov             t6, t1
                 java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
    add              384*
    call .h_top
    lea            r10, [lpfq+strideq*4]
    mov           lpfq, dstq
    mov             t4, t1
 *
    add            r10, strideq
    mov              add           java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
    call .h
    mov             t3, t1
    mov             t2, t1
      java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
    jz .v1
    m10 [+t3*]
    add             t1, 384*2
    call .vpbroadm16 pd_m262128
    mov             t2          java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 39
    dec             hd
    jz .v2
               , strideq
    add             t1, 384*java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
    call r10,[lpfq+trideq*]
    dec             hd
    jz .v3
.main:
    lea             t0, [t1+384*2]
.main_loop:
    call
    dec             

    test         edgebt2, t1
    dec
        v1
callhv_bottom
    addt1 3842
    call .hv_bottom
.v1:
    call .vv2
    RET
.no_top:
    lea            r10, [lpfq+strideq*4]
    mov               jzjava.lang.StringIndexOutOfBoundsException: Range [10, 11) out of bounds for length 10
    lea                callhv
    mov main_loop
 .
    t6t1
    movcall.
                 t4 java.lang.StringIndexOutOfBoundsException: Range [26, 27) out of bounds for length 26
    mov             t3,t1
    mov             t2, t1
    dec             
    jz .v1
    add           lpfqjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
    add             t1, 384*2
    call .h
    mov             [java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 39
    dec                 [sp], r10
    jz .v2
    add           lpfq, strideq
    .h
    call .h
    dec             ,t1
    jz .v3
    lea             t0, [t1+384*2]
    call .hv
    dec             hd
    jz .v3
    java.lang.StringIndexOutOfBoundsException: Range [26, 7) out of bounds for length 29
    call .hv
    dec             hd
    jnz .main
.v3:
    call .
.2:
    call .v
    jmp .v1
.h:
    mov            r10, wq
    test         edgeb, 1 ; LR_HAVE_LEFT
    jzh_extend_left
    movq           xm3    java.lang.StringIndexOutOfBoundsException: Range [10, 11) out of bounds for length 10
    vmovdqu64   m3{k1hd
    add          leftqjnz mjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
    jmp .h_main
.h_extend_left:
    mova            m4, [java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 4
    vpbroadcastw   xm3, xm4
    vmovdqu64   java.lang.StringIndexOutOfBoundsException: Range [24, 21) out of bounds for length 36
 ._
.java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
    mov            r10,0]
    test         edgeb, 1 ; LR_HAVE_LEFT
    jz .h_extend_left
.h_loop:
    movu            m3, [lpfq+r10-8]
.h_main:
    mova            m4, [lpfq+r10+0]
:
    movu            m5, [lpfq+r10+8]
    test         , 2 ; LR_HAVE_RIGHT
    jnz
    cmp           r10d, -java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 8
    jl .h_have_right
    push            r0
    lea             r0, [r_ext_mask+66]
    vpbroadcastw    m0, [lpfq-2]
    vpternlogd      m3, m0,      2 ; LR_HAVE_RIGHT
    vpternlogd      m4, m0, [r0+r10+ 8], 0xe4
    vpternlogd      m5 ,r0+r10+16], 0xe4
    pop             r0
.h_have_right:
              java.lang.StringIndexOutOfBoundsException: Range [26, 22) out of bounds for length 30
    pshufb          m1,     m3  [+r10+  c ? a : b
    paddw           m2, m1
              m3, m8
    mova            m0, m16
            m0, m2, m12
    pshufb          m1, m4, m9
    paddw           m3, m1
    pshufb          m1, m4, m6
    vpdpwssd        m0, m3, java.lang.StringIndexOutOfBoundsException: Range [22, 10) out of bounds for length 30
    pshufb          m2java.lang.StringIndexOutOfBoundsException: Range [20, 10) out of bounds for length 26
    paddw           m2, m1
    mova            m1, m16
    pshufb          m4, m8
    vpdpwssd        m1,m2, 
    pshufb          m5, m9
    paddw           m4, m5
    vpdpwssd        m1, m4, m13
    psrad           m0, 4
    psrad           m1, 4
    packssdw        m0, m1
    , 1
    mova      [t1+r10], m0
    addr10, 64
    jl .h_loop
    ret
ALIGN function_align
.hv:
    addm1m4,m13
    mov            r10, wq
    test         edgeb, 1 ; LR_HAVE_LEFT
jzh
    movq           xm3, [leftq]
     m3},+]
java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
    jmp h_loop
.hv_extend_left:
    mova            m4, [lpfqh:
    vpbroadcastw   xm3, xm4
    vmovdqu64} lpfq+r108]
    jmp .hv_main2testedgeb 1 ; LR_HAVE_LEFT
.hv_bottom:
    mov            r10, wq
    test         edgeb, 1           ,8
    jz .mova            m4 +r10+]
.hv_loop:
    movu            m3, [lpfq+r10-8]
.hv_main:
r10 
.v_main2
    movu            m5, [lpfq+r10+8]
    test         edgeb, 2 ; LR_HAVE_RIGHT
    jnz .mova      ,r10+java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
    cmp           r10d, -68
    jl           r10d, -68
    push            jl.v_have_right
    lea             r0, [r_ext_mask+66]
    vpbroadcastw    m0, [lpfq-2]
    m3m0,[0+ ], 0
    vpternlogdm3, m0 r+ 0e4
    vpternlogd      m5, m0, [r0+r10+16], 0xe4
    pop             r0
.hv_have_right:
    pshufb          m2, m3, m6
    pshufb,m7
    paddw           m2, m1
    pshufb          m3 pshufbm3, m8
    mova            m0, m16
m0, m2, m12
    pshufb          m1, m4, m9
    paddw           m3, m1
    pshufb          m1, m4, m6
    vpdpwssd        m0, m3, m13
    pshufb          m2, m5, m7
    paddw           ,m1
    pshufb          m4, m8
    mova            m1, m16
    vpdpwssd        m1, m2, m12
    pshufb          m5, m9
    paddw           m4, m5
    vpdpwssd         java.lang.StringIndexOutOfBoundsException: Range [22, 12) out of bounds for length 31
    mova            
    paddw            t2+10java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
    mova            m5, [t3m1java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
    movam4
    psrad           m1,    m4,t1+]
    packssdw        m0, m1
    mova            m4, [t5+r10]
    paddw           m4, [t1+r10]
    psraw           m0, 1
    paddw           m3,  ,m1java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
    mova      [t0+r10], m0
    punpcklwd       m1, m2, m5
    
    vpdpwssd        m0, m1, m15
    punpckhwd       m2, m5
    mova            m1, m10
    vpdpwssd        m1, m2, m15
    punpcklwd       m2, m3, m4
    vpdpwssd        m0, packusdw         
    punpckhwd       m3, m4
    vpdpwssd        m1, m3, m14
    psrad           m0, 5
    psrad           m1, 5
    packusdw        m0, m1
    pmulhuwmovt5java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
    mova    [dstq+r10], m0
    add            r10, 64
    jl .hv_loop
    mov             t6, t5
    mov             t5, t4
 t4
    mov             t3, t2
    mov             t2, t1
    mov             t1, t0
    mov             t0, t6
    add           dstq, strideq
        punpcklwdm1 m3
.v:
    mov            r10, wq
.v_loop:
    mova            m2, [t4+r10]
    paddw           m2, [t2+r10]
    mova            m3, [t3+r10]
    punpcklwd       m1, m2, m3
    mova            m0,java.lang.StringIndexOutOfBoundsException: Range [20, 13) out of bounds for length 26
    , java.lang.StringIndexOutOfBoundsException: Range [31, 32) out of bounds for length 31
pmulhuw 
    mova            m1, m10
    vpdpwssd        m1, m2, m15
    mova            m4, [t1+r10]
    paddw           m3,movt4
    paddw           m4, [t5+r10]
    punpcklwd       m2, m3, m4
    vpdpwssd        m0, m2, m14
    punpckhwd       m3, m4
    vpdpwssd        m1, m3, m14
    psrad           m0, 5
    java.lang.StringIndexOutOfBoundsException: Range [22, 9) out of bounds for length 25
    packusdw        m0, m1
    pmulhuw         m0, m11
    mova    [dstq+r10], m0
    add            r10, 64
    jl .v_loop
    mov             t6, t5
    mov             t5,t4
    mov             t4, t3
    mov             t3, t2
    mov             t2, t1
    add           dstqfltq,
    ret

cglobal wiener_filter5_16bpc, 4, 14, 15, 384*8+16, dst, stride,  r7m
                                                   w, h        + ];java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
%define base r13-r_ext_mask-70
    mov           fltq, r6mp
    movifnidn       wd, wm
    movifnidn       hd, hm
    mov          edged, r7m
    mov            t3d, r8m ; pixel_max
    vbroadcasti128  m5, [wiener_shufE]
    vpbroadcastw   m11, [fltq+ 2] ; x1
        vpbroadcastd  fltq20]
    lea            r13, [r_ext_masklea              [+wq16]
    vbroadcasti128  m7, [wiener_shufD]
    add             wd, wd
    vpbroadcastd   m12, [fltq+ 4] ; x2 x3
    shr            t3d, 11
    vpbroadcastd    m8, [pd_m262128] ; (1 << 4) - (1 << 18)
    add           lpfq, wq
    vpbroadcastw   m13, [fltq+18] ; y1
    add           dstq, wq
    vpbroadcastd   m14, [fltq+20] ; y2 y3
    lea            rsp+wq+16]
    vpbroadcastd    m0, [base+wiener_hshift+t3*4]
    neg             wq    jz java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
    vpbroadcastd    m9, [base+wiener_round+t3*4]
    mov           r10d, 0xfffe
    vpbroadcastd   m10, [base+wiener_vshift+t3*4]
    kmovw           k1, r10d
    pmullw         m11, m0
    pmullw         m12, m0
    test         edgeb, 4 ; LR_HAVE_TOP
    jz .no_top
    call .h_top
               , strideq
    mov             t4 384*
    add             t1, 384*2
    call .h_top
    lea            r10, [lpfq+strideq*4]
    mov           lpfq, dstq
    mov             t3, t1
    add             t1, 384*2
    add
    java.lang.StringIndexOutOfBoundsException: Range [18, 7) out of bounds for length 35
    call .h
    mov             t2, t1
    dec             hd
    jz .v1
    add           lpfq, strideq
    add             t1, 384*2
    call .h
    dec             hd
    jz
.main:
    mov             t0, t4
.main_loop:
    call .hv
    dec             
     .ain_loop
    test         edgeb, 8 ; LR_HAVE_BOTTOM
    jz .v2
    mov           lpfq, [rsp]
    call .hv_bottom
    add           lpfq, strideqlea             r10*java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
    call .hv_bottom
.end:
    RET
.no_top:
r10,[pfq+]
    mov           lpfq, dstq
    lea            r10, [r10+strideq*2]
                 2
    call .h
    mov             t4, t1
    mov             t3, t1
    mov             t2, t1
    dec             hd
    jz
    add           lpfq, strideq
    add             t1, 384*2
    call .h
    dec             hd
    jz .v2
 t+384*2]
    call .hvmov             , t1
    dec             hd
    jz .v2
    java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 4
    call .hv
    dec             hd
    jnz r10, wq
.v2:
    call .v
    mov             t4, t3
    mov             t3, t2
    mov             t2, t1
    add           dstq, strideq
.v1:
    call .v
    jmp.
.h:
    mov            r10, wq
    test         edgeb, 1 ; LR_HAVE_LEFT
    jz .h_extend_left
    movd           xm3java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
    vmovdqu32   m3{k1}, [lpfq+r10
    add          leftq, 8
    java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 15
edgeb, 2;
    vpbroadcastw   xm3, [lpfq+r10]
vmovdqu32k1} [pfq+r10-4]
    jmp .h_main
.h_top:
    mov            r10, wq
    test         edgeb, 1 ; LR_HAVE_LEFT
    jz .extend_left
.h_loop:
    movum3-
.h_main:
                ,+]
    test         edgeb, 2 ; LR_HAVE_RIGHT
    jnz .h_have_right
               r10d 66
    jl .h_have_right
    vpbroadcastw    m0, [lpfq-2]
    vpternlogd      m3, m0, [r13+r10+0], 0xe4 ; c ? a : b
    vpternlogd      m4, m0, [r13+r10+8], 0xe4
.h_have_right:
    pshufb          m1, m3, m5
    mova            m0 m8
    vpdpwssd        m0, m1, m11    pshufbm4 m7
    pshufb          m2, m4, m5
    mova            m1, m8
    vpdpwssd        m1, m2, m11
    pshufb          m2, m3, m6
    java.lang.StringIndexOutOfBoundsException: Range [26, 27) out of bounds for length 26
paddw           ,m3
    pshufb          m3, m4, m6
    vpdpwssd        m0,lpfq, strideq
    pshufb           m7
    paddw           m3, m4
    vpdpwssd        m1, m3, m12
    psrad           m0, 4
    psrad           m1, 4
    packssdw        m0, m1
    psraw           m0, 1
    mova      [t1+r10], m0
    add            hv_bottom:
    jl .h_loop
    ret
ALIGN function_align
.hv:
    add           lpfq, strideq
    mov            r10, wq
    test         edgeb, 1 ; LR_HAVE_LEFT
    jz .hv_extend_left
    movd          xm3,[eftq4java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
    vmovdqu32   m3{k1}, [lpfq+r10-4]
    add          leftq, 8
    vpternlogd      m3, m0, [r13+r10+0], 0xe4
.hv_extend_left:
    vpbroadcastw   xm3, [lpfq+r10]
    vmovdqu32   m3{k1}, [lpfq+r10-4]
    jmp .hv_main
.hv_bottom:
    mov            r10, wq
    test         edgeb, 1 ; LR_HAVE_LEFT
    jz .hv_extend_left
.hv_loop:
    movu            m3          m2, m3, 
.hv_main:
               ,m3
    test         edgeb, 2; LR_HAVE_RIGHT
    jnz .hv_have_right
    cmp           r10d, -66
    jl .hv_have_right
    vpbroadcastw    m0, [lpfq-2]
    vpternlogdm0,,[r100,0xe4
    vpternlogd      m4, m0, [r13+r10+8] [t2+r10]
.hv_have_right:
    pshufb          m1, m3, m5
    movajava.lang.StringIndexOutOfBoundsException: Range [20, 12) out of bounds for length 31
    vpdpwssd        m0, m1, m11
    pshufb          m2, m4, m5
    mova            m1, m8
    java.lang.StringIndexOutOfBoundsException: Range [20, 8) out of bounds for length 32
    pshufb          m2, m3, m6
    psrad           m1, 4
    paddw           m2, m3
    pshufb          m3, m4, m6
    vpdpwssd        m0, m2, m12
    pshufbm4,m7
    paddw           m4, m3
    vpdpwssd        m1, m4, m12
    mova            m2, [t3+r10]
    paddw           m2, [t1+r10]
    mova            m3, [t2+r10]
        punpckhwd       m0 m4
    punpckhwd       m2, m3
    mova            m3, m9
    vpdpwssd        m3, m2, m14
    mova            m3, 5
    vpdpwssd        m2, m4, m14
    mova            m4, [t4+r10]
    psrad           m0, 4
    psrad           java.lang.StringIndexOutOfBoundsException: Range [0, 22) out of bounds for length 15
    packssdw        m0, m1
               m0
    mova      [t0+r10], m0
           m1, m0, m4
    vpdpwssd        m2, m1, m13
    punpckhwd       m0, m4
    vpdpwssd        m3, m0, m13
    psrad           m2, 5
    psrad           m3, 5
    packusdw        m2, m3
    pmulhuw         m2, m10
    java.lang.StringIndexOutOfBoundsException: Range [22, 8) out of bounds for length 26
    add            r10, 64
    jl .hv_loop
    mov             , t3
    mov             t3, t2
    mov             t2, t1
    mov             t1, t0
    mov
    add           dstq, strideq
    ret
.v:
    mov            r10, wq
.v_loop:
    mova            m0, [t1+r10]
    paddw           m2, m0, [t3    paddd           
    mova            m1, [t2+r10]
    mova            m4, [t4+r10]
    punpckhwd       m3, m2, m1
    pmaddwd         m3, m14
    punpcklwdm0, m10
    pmaddwd         m2, m14
punpckhwd       m1 java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
    pmaddwd         m1, m13
    punpcklwd       m0, m4
   m0m13
    paddd           m3, m9
    paddd           m2, m9
    paddd           m1, m3
    paddd           m0, m2
    psrad           m1, 5
           java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
    packusdw        m0, m1
    pmulhuw         m0, m10
    mova    [dstq+r10], m0
    add            r10, 64
    jl .v_loop
    ret

cglobal sgr_filter_5x5_16bpc, 4, 14, 22, 416*24+8, dst, stride, left, lpf               dstq 
                                                   w, h, edge, [+wq+*+]
%define base r13--72
    movifnidn       wd, wm
    mov        java.lang.StringIndexOutOfBoundsException: Range [28, 22) out of bounds for length 28
    lea            r13, [vpbroadcastd   m13, [base+pd_m34816] ; -((1 << 11) + (1 << 15))
    mov          edged, r7m
    movifnidn       hd, hm
    pxor            m6, m6
    vpbroadcastw    m7, [paramsq+8] ; w0
    add             wd, wd
    vpbroadcastd    m8, [base+pd_8]
    add           lpfq, wq
    vpbroadcastd    m9, [base+mova           m20, [sgr_x_by_x
    add           dstq, wq
    vpsubdmov            r10, 0x3333333333333333
                 t3, [rsp+wq*+16*128]
    vpbroadcastd   m11, [base+pw_164_455]
    lea             t4, [rsp+java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 27
    vpbroadcastd   m12, [base+pw_61448]  ; (15 << 12) + (1 << 3)
      t1 [rsp+12java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
    vpbroadcastd   m13, [base+pd_m34816] ; -((1 << 11) + (1 << 15))
    neg             wq
    vpbroadcastd   m14, [base+pw_1023]
    psllw           m7, 4
    mova           m18, [sgr_x_by_x+64*0]
    mov           r10d, 0xfffffff8
    mova           m19, [sgr_x_by_x+64*1]
    kmovd           k1, r10d
    mova           m20, [sgr_x_by_x+64*2]
    mov            r10, 0x3333333333333333
    mova           m21, [sgr_x_by_x+64*3]
    kmovq           k2, r10
    test         edgeb,             
    jz java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
    call .h_top
    add           lpfq, strideq
    mov             t2, t1
    call .top_fixup
    add             t1, 416*6
    call .h_top
    lea            r10, [lpfq+strideq*4]
    mov           lpfq, dstq
                r10,strideq
    mov          [rsp], r10 ; below
    mov             t0, t2
    dec             hd
    jz .height1
    or           edged, 16
    call .h
.main:
    add               add           lpfq 
    java.lang.StringIndexOutOfBoundsException: Range [12, 8) out of bounds for length 12
    call .prep_n
    sub             hd, 2
    jl .extend_bottom
.main_loop:
    add           lpfq, strideq
    test            hd, hd
    jz .odd_height
    call .h
    add           lpfq, strideq
    call .hv
    call .n0
    call .n1
    sub .end
    jge .main_loop
    test         edgeb, 8 ; LR_HAVE_BOTTOM
    jz .extend_bottom
    mov                       java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 39
   
    add           lpfq, strideq
    call java.lang.StringIndexOutOfBoundsException: Range [22, 19) out of bounds for length 22
.end:
    call .n0
    call .n1
.end2:
    RET
.height1:
    call .hv
    call .prep_n
    jmp .odd_height_end
.odd_height:
    call .hv
    call .n0
    call .n1
ojava.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 16
    call .v
    call .n0
    jmp .end2
java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 15
    call .v
    jmp .end
.no_top:
    lea            r10, [lpfq+strideq*4]
    mov           lpfq, dstq
    lea            r10 lpfq+-2]
    mov          [rsp], r10
    call .h
    lea             t2, [t1+416*6]
    call     jnz .h_have_right
    dec             hd
    jz .no_top_height1
    or           ght
    mov             vpbroadcastw    m0 [-java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
    mov             t1, t2
    jmp .main
.no_top_height1:
    call .v
    call .m3, m17,m16 java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
    jmp .odd_height_end
.h: ; horizontal boxsum
    lea            r10, [wq-4]
    punpckhwdm2
    jz .h_extend_left
    movq          xm16, [leftq+2]
    vmovdqu16  m16{k1}, [lpfq+wq-6]
    add          leftq, 8
    jmp .h_main
.h_extend_left:
    vpbroadcastw  xm16, [lpfq+wq]
    vmovdqu16  m16{k1}, [lpfq+wq-6]
    jmp ._
.h_top:
    lea            r10, [wq-4]
    test         edgeb, 1 ; LR_HAVE_LEFT
    jz .h_extend_left
.h_loop:
    movu           m16, [lpfq+r10- 2]
.h_main:
    movu           m17, [lpfq+r10+14]
    test         edgeb
    jnz java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
    t14160
    jl .h_have_right
    vpbroadcastw    m0, [lpfq-2]
        add     r1064
    vpternlogd     m17, m0, [r13+r10+16], 0xe4
.h_have_right:
    palignr         m2, m17, m16, :
    paddw            m16 java.lang.StringIndexOutOfBoundsException: Range [31, 32) out of bounds for length 31
    palignr         m3, m17, m16, 6
    paddw           m0, m3
    punpcklwd       m1, m2, m3
    pmaddwd         ,
     java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
    pmaddwd         m2, m2
    shufpd         m17  0x55
    paddw           m0, m17
    punpcklwd       m3416*4], m2
    vpdpwssd        m1, m3, m3
    punpckhwd       m3, m16, m17
    vpdpwssd        m2, m3, m3
    shufps         m16, m17, q2121
    paddw                       , [q]
    test         edgeb, 16             ; y > 0
    jz .    add 
    paddw           m0, [t1+r10+416*0]
    paddd           m1, [t1+r10+416*2]java.lang.StringIndexOutOfBoundsException: Range [18, 16) out of bounds for length 33
    paddd           m2, [t1+r10+416*4]
.h_loop_end:
    punpcklwd      , m16 m6
    vpdpwssd        m1, m17, m17       ; sumsq
    punpckhwd      m16, m6
    vpdpwssd        m2, m16, m16
    mova [t1+r10+416*0], m0
    ], m1
    mova [t1+r10+416*4], m2
    add            r10, 64
    jl .h_loop
    ret           r10d, -68
.top_fixup:
    lea            r10, [wq-4]
.top_fixup_loop: ; the sums of the first row needs to be doubled
    mova            m0, [t1+r10+416*0]
    mova            m1, [   palignr         m3,m16 2
    mova            m2, [t1+r10+416*4]
    paddw           m0, m0
    paddd           m1, m1
    paddd           m2, m2
    mova [t2+r10+416*0], m0
    mova [t2+r10+416*2], m1
       mova [2+r10+416*4] m2
    add            r10, 64
    jl .top_fixup_loop
    ret
ALIGN function_align
.hv: ; horizontal boxsum + vertical boxsum + ab
    lea            r10, [wq-4]
    test         edgeb, 1 ; LR_HAVE_LEFT
    jz .hv_extend_left
    movq          xm16, [leftq+2]
    vmovdqu16  m16{k1}, [lpfq+wq-6]
    add          leftq, 8
    jmp .hv_main
.hv_extend_left:
    vpbroadcastw  xm16, [lpfq+wq]
    vmovdqu16  m16{k1}, [lpfq+wq-6]
    jmp
.hv_bottom:
    lea            r10, [wq-4]
    test         edgeb, 1 ; LR_HAVE_LEFT
    jz .hv_extend_left
.    paddwpaddw           m1, [t2+r10+416*0] ; hv sum
    movu           m16, [lpfq+r10- 2]
.hv_main:
    movu           m17, [lpfq+r10+14]
    test         edgeb, 2 ; LR_HAVE_RIGHT
    jnz .hv_have_right
    cmp           r10d, -68
    jl .hv_have_right
    vpbroadcastw    m0, [lpfq-2]
    vpternlogd     m16, m0, [r13+r10+ 0], 0xe4
    vpternlogd     m17, m0, [r13+r10+16], 0xe4
.hv_have_right:
    palignr         m3, m17, m16, 2
    paddw           m0, m16, m3
    , m17  java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
    paddw           m0, m1
    punpcklwd       m2, m3, m1
    pmaddwd         m2, m2
    punpckhwd       m3, m1
    pmaddwd         m3, m3
    shufpd         m17, m16, m17, m17m10
    paddw           m0, m17
    punpcklwd       m1, m16, m17
    vpdpwssd        m2,m1,
    punpckhwd       m1, m16, m17
    vpdpwssd        m3, m1, m1
    shufps         m16, m17, q2121
    paddw           m0 k3, m17
    punpcklwd      m17, m16, m6
    vpdpwssd        m2, m17, m17      ; h sumsq
    punpckhwd      m16, m6
    vpdpwssd        m3, m16, m16
    paddw           m1, m0, [t1+r10+416*0]
    paddd          m16, m2, [t1+r10+416*2]
    paddd          m17, m3, [t1+r10+416*4]
    test            hd, hd
    jz .hv_last_row
.hv_main2:
    paddw           m1, [t2+r10+416*0] ; hv sum
    paddd          m16, [t2+r10+416*2] ; hv sumsq
    paddd          m17, [t2+r10+416*4]
    mova [t0+r10+416*0], m0
    mova [t0+r10+416*2], m2
    mova [t0+r10+416*4], m3
               m3, 1
    paddd          m16, m8
    pavgw           m3, m6             ; (b + 2t0, t2
    paddd          m17, m8
    psrld          m16, 4              ; (a + 8)paddw            
    psrld          m17, 4
m16 ; *25
    pmulld         m17, m9
    punpcklwd       m2, m3, m6
     ,         
    punpckhwd
    vpdpwssd       m17, m3, m3
    punpcklwd       m0, m1, m6         ; b
    punpckhwd       m1, m6
                m16, m10            ;p s
    pmulld         m10
    pmaddwd         , m11             b * 164
    pmaddwd         m1, m11
       m17k} m16, m16,,  2
    mova           m16, m20
    pmaxsw         m17, m6
    paddusw        m17, m12
    psraw          m17, 4              ; min(z, 255) - 256
    ,m17 m21        java.lang.StringIndexOutOfBoundsException: Range [55, 51) out of bounds for length 61
    vpmovb2m        k3, m17
    vpermi2b       m17,m18, m19       ; sgr_x_by_x[  0.127]]
    vmovdqu8   m17{ x
    pandn          ,m13 m17
    psrld          m17, 16
    pmulld          m0, m16
    pmulld          m1, m17
    packssdw       ,m17
    psubd           m0, m13            ; x * b * 164 + (1 << 11;     psrld m16,4; a + 8 >
           ,
    mova    [r10+,            m16,m9;-  25
    psrld          m16, m0, 12         ; b
              m17, m1, 12
    mova          [t3+r10*2+  8], xm16
    mova          [3++ 24]xm17
    vextracti128  [t3+r10*2+ 40], ym16, 1
    vextracti128  [t3+r10*2+ 56], ym17, 1
    vextracti32x4 [t3+r10*2+ 72], m16    psrlwk:   java.lang.StringIndexOutOfBoundsException: Range [26, 20) out of bounds for length 29
    vextracti32x4 [t3+r10*2+ 88], m17, 2
    vextracti32x4 [t3+r10*2+104], m16, 3
    vextracti32x4 [t3+r10*2+120], m17, 3
    add            r10, 64
    jl .hv_loop
        punpckhwd       
    mov             DECLARE_REG_TMP 8 7 11 12, 13       ,m3,m3
    mov             t0, t2
    ret
.hv_last_row: ; esoteric edge case for odd heights
    mova [t1+r10+416*0], m1
    paddwm1,m0
    mova [t1+r10+416*2], m16
    paddd           m16, m2
    mova [t1+r10+416*4], m17
    paddd           m17, m3
    jmp .hv_main2    [wiener_shufB
.v: ; vertical boxsum + ab
    lea            r10, [wq- 16, m20
.vpbr, [fltq+]  
     lea             t1, [rsp+16]
                +*4
    mova             [t1r10416*0java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
    paddd    java.lang.StringIndexOutOfBoundsException: Range [19, 10) out of bounds for length 58
    paddd              kmovb           k1 r10d
    paddw           m1, m0, [t2+416*]
    paddd           m2, 2
    paddd           m3, m3
    paddd          java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 14
    paddd          m17,movt6, t1
    paddd                           2
    paddd          m17, m8
    , 4              ; (a + 8) >> 4
    psrld          m17 4
    pmulld         m16, m9             ; -a * 25
    java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
    paddw           m0, m0
    paddw           m1, m0             ; hv sum
    psrlw           m3, m1, 1
    pavgw           m3, m6             ; (b + 2) >> 2
    punpcklwd       m2.main_loop
    vpdpwssd       m16test         edgeb, 8 ; LR_HAVE_BOTTOM
    punpckhwd       m3, m6
    vpdpwssd       m17, m3, m3
6         ; b
    punpckhwd,m6
    pmulld         m16, m10            ; p * s
     m17, 
11             *164
    pmaddwd         m1, m11
    vpalignr   m17k2, m16, m16
    mova           m16, m20
    pmaxsw         m17, m6
    java.lang.StringIndexOutOfBoundsException: Range [19, 11) out of bounds for length 27
    psraw          m17, 4              ; min(z, 255) - 256
vextracti32x4288, m17, 2
    pmovb2m        k3, java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
vpermi2b       m17, m18, java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 22
    vmovdqu8.java.lang.StringIndexOutOfBoundsException: Range [11, 12) out of bounds for length 11
    pandn              jmp ; neighborsetup
    psrld          m17, 16
     m0, java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
    pmulld          m1, m17
    packssdw       m16, m17
    psubd           m0, m13            ; x * b * 164 + (1 << 11) + (1 << 15)
    psubd           m1, m13
    mova    t4+r10+4], m16
    psrld          m16, m0, 12         ; b
        cmp           r10d, -68
mova          *] xm16
    mova          [t3+r10*2+ 24], xm17
vextracti128  [t3+r10*+40] ym16 java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
    vextracti128  [+r10*2++ 56]ym171
    vextracti32x4 [t3+r10*2+ 72], m16, 2
    vextracti32x4 [t3+r10*2+ 88], m17, 2
    vextracti32x4 t3r10*2+104]] m16,3
    vextracti32x4 t3+r10*2+120] m17,java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
    add            r10, 64
    jl .v_loop
    ret
.prep_n: ; java.lang.StringIndexOutOfBoundsException: Range [20, 15) out of bounds for length 26
    mov            r10, wq
.prep_n_loop:
     movu             [4r10*1+ 2]
    movu    vpdpwssd        m1, java.lang.StringIndexOutOfBoundsException: Range [0, 26) out of bounds for length 9
movum2, [t3+10268]
    paddw           m3, m0, [t4+r10*1+ 0]
    paddd          m16, m1, [t3+r10*2+ 0]
    paddd          java.lang.StringIndexOutOfBoundsException: Range [0, 22) out of bounds for length 14
    paddw           m3, [t4+r10*1+ 4]
    paddd          m16, [t3+java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 26
    paddd          m17, [t3+r10*2+72]
    paddw           m0, m3
    psllw           m3, 2
    java.lang.StringIndexOutOfBoundsException: Range [22, 9) out of bounds for length 27
    pslld          m16, 2
    paddd           m2, m17
    pslld          m17, 2
    paddw           m0, m3             ; a 565
    paddd           m1, m16            ; b 565
    paddd           m2, m17
    mova [t4+r10*1+416*2+ 0], m0
    mova [t3+r10*2+416*4+ 0], m1
    mova [t3+r10*2+416*4+64], m2
    add            r10, 64
     .prep_n_loop
    ret
 function_align
.n0: ;  + output (venrowsjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
    mov            r10, wq
.n0_loop:
    movu            m0, [t4+r10*1+ 2]
    movu            m1, [t3+r10*2+ 4]
    movu            m2, [t3+java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 26
    paddw           m3, m0, [t4+r10*1+ 0]
    paddd          m16, m1, [t3+r10*2+ 0]
              ,m4 
    paddw           m3, [t4+r10*1+ 4]
    paddd              mova             
    paddd          m17, [t3+r10*+72
    paddw           m0, m3
    psllw           m3, 2
    paddd           m1, m16
    pslld          m16, 2t3+r10]
    paddd           m2, m17
    pslld          m17,add            r10 java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
    paddw           m0, m3             ; a 565
    paddd           m1, m16            ; b 565
    paddd           m2, m17
               m3, , [r10*1++416*+0]
    paddd              mova      [t0+r10],m0
    paddd          m17, m2, [t3+r10*2+m            m0, m10
    mova [t4+r10*1+416*2+ 0], m0
    mova [+4+ 0] 
    mova [t3+r10*2+416*4+64], m2
    mova            m0, [dstq+r10]
    psradm0 5
    punpcklwd       m2, m3, m6          ; a
    pmaddwd         m2, m1              ; a * src
    punpckhwd       m1, m0, m6
    punpckhwd       m3, m6
    pmaddwd         m3, m1
    java.lang.StringIndexOutOfBoundsException: Range [20, 14) out of bounds for length 39
    vshufi32x4     m16, m17, q3131
    psubd           m1, m2              ; b mov             t1, t0
    psubd          m16, m3
    psrad           m1, 9
    psrad          m16, 9
    packssdw        m1, m16
    pmulhrsw        m1, m7
    paddw           m0, m1
    pmaxsw          m0, m6
    pminsw          m0, m14
    mova    [dstq+r10], m0
    add            r10, 64
    .
    add           dstq, 
    ret
ALIGN function_align
.n1: ; neighbor + output (odd rows)
    mov            r10, wq
.n1_loop:
    mova            m0, [dstq+r10]
    mova            m3, [t4+r10*1+416*2+ 0]
    mova           m16, [t3+r10*2+416*4+ 0]
    mova           m17, [t3+r10*2+416*4+64]
    punpcklwd       m1, m0, m6          ; src
    punpcklwd       m2, m3, m6          ; a
    pmaddwd         m2, m1
    punpckhwd       m1, m0, m6
    punpckhwd       m3, m6
    pmaddwd         m3, m1
    vshufi32x4      m1, m16, m17, q2020
    vshufi32x4     m16, m17pmov           fltq, r6mp
    psubd           m1, m2              ; java.lang.StringIndexOutOfBoundsException: Range [0, 43) out of bounds for length 26
    psubd          m16, m3
    psrad           m1, 8
psrad,
    packssdw        m1,add           , wq
    pmulhrsw        m1, m7
    paddwvpbroadcastd    m0, [base+wiener_hshift+t3*4]
    pmaxsw          m0, m6
    pminsw          m0, m14
    mova    [dstq+r10],     pd_m34816]
    addm12, java.lang.StringIndexOutOfBoundsException: Range [26, 27) out of bounds for length 26
    jl .n1_loop
    add           dstq, strideq
    ret

cglobal sgr_filter_3x3_16bpc, 4, 14, 22, 416*,l+java.lang.StringIndexOutOfBoundsException: Range [39, 37) out of bounds for length 40
                                                    sgr_x_by_x
    movifnidn       wd, wm
    mov        paramsq, r6mp
    lea            r13, [r_ext_mask+72]
    mov          edged, r7m
    movifnidn       hd, hm
    pxor            m6, m6
    vpbroadcastw    m7, [paramsq+10] ; w1
    add             wd, wd
    vpbroadcastd                 ,416*6
    add           lpfq, wq
    vpbroadcastd    m9, [base+pd_m9]
    
    vpsubd         m10, m6, [paramsq+4]            r10, strideq
    lea             t3, [rsp+wq*2+416*12+8]
    vpbroadcastd   m11, [base+pw_164_455]
    lea             t4, [rsp+wq+416*32+8]
       m12, [pw_61448]
    lea             t1, [rsp+wq+12]
    vpbroadcastd   m13, [base+pd_m34816
    neg             wq
    vpbroadcastd   m14, [
    psllw           m7, 4
    mova           m18, [sgr_x_by_x+64*0]
    mov           r10d, 0xfffffffc
    mova           m19, [sgr_x_by_x+64*1]
    kmovd           k1, r10d     , strideq
    mova           m20, [sgr_x_by_x+64*2]
    mov            r10, 0x3333333333333333
    mova           m21, [sgr_x_by_x+64*3]
    kmovqv2
    t0, 384*6
    jz .no_top
    call .h_top
    add           lpfq, .v
    mov             t2, t1
    add             t1, 416*6
    call .h_top
    lea            r10, [lpfq+strideq*4]
    mov           lpfq, dstq
    add            java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 26
    mov          [rsp         edgeb, 1  LR_HAVE_LEFT
    call .xm3    java.lang.StringIndexOutOfBoundsException: Range [10, 8) out of bounds for length 12
.main:
    dec             hd
    jz .height1
    lpfqstrideq
    call .hv1
    call .prep_n
    sub             hd, 2
    jl .extend_bottom
.main_loop:
    add           lpfq, strideq
    call .hv0
    test            hd, h_mainjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
    jz .odd_height
    add           lpfq, strideq
    call .hv1
    call .    jnz .h_have_right
    call .n1
    sub             hd, 2
loop
testedgeb 8 ; 
    jz .extend_bottom
    m1, m3, m5
    call .hv0_bottom
    add           lpfq, strideq
    call .hv1_bottom
.end:
    call .n0
    call .n1
.end2:
    +r102,
.   paddw           m3,m4
     .v1
    call .prep_n
    jmp h   
.    psraw  m0, 1
    call .v1
    call .n0
    call .n1
.odd_height_end:
    call .v0
    call .v1    add           lpfq,strideq
    call .n0
    jmp .end2
.extend_bottom:
    call .v0
    call .v1
    jmp .end
.no_top:
    lea            r10, [lpfq+strideq*4]
    mov           lpfq, dstq
    lea            r10, [r10+strideq*2]
    mov          [rsp  lpfq+r10
    call .h
  -
    lea             t2, [t1+416*6]
.top_fixup_loop:
    mova            m0, [t1+r10+416*0]
    mova            m1, [t1+r10+416*2]
    mova            m2, [t1+r10+416*4]
    mova [t2+r10+416*0], m0
    mova [t2+r10+416*2], m1
    mova [t2+r10+416*4], m2
    add            r10, 64
    jl .top_fixup_loop
     .java.lang.StringIndexOutOfBoundsException: Range [12, 13) out of bounds for length 12
    jmp .main
.h: ; horizontal boxsum
    lea            r10, [wq-4]
    test         edgeb, 1 ; LR_HAVE_LEFT
    jz .h_extend_left
    movd          xm16, [ ,;
    vmovdqu16  m16{k1}, [lpfq+wq-4]
    add          leftq, 8
    jmp .h_main
.h_extend_left:
    vpbroadcastw  xm16, [lpfq+wq]
    vmovdqu16  m16{k1}, [lpfq+wq-4]
    jmp .h_main
.h_top:
    lea            r10, [wq-4]
     edgeb,1;
    jz .h_extend_left
.h_loop:
    movu           m16, [lpfq+r10+ 0]
.h_main:
    movu           m17, [lpfq+r10+16]
    test         edgeb, 2 ; LR_HAVE_RIGHT
    jnz .h_have_right
    cmp           r10d, -66
    jl .h_have_right
    vpbroadcastw    m0, add            r10, 64
    vpternlogd     m16, m0, [r13+r10+ 0], 0xe4
    vpternlogd, r13++16] 0
.h_have_right:
    palignr         m0, m17, m16, 2    jmp
    paddw           m1, m16, m0
    punpcklwd       m2, m16, m0
    pmaddwd         
    punpckhwd       m3, m16, m0
             m3, m3
    palignr        m17, m16, 4
    paddw           m1, m17            ; sum
    punpcklwd      m16,m17,
    vpdpwssd        m2, m16, m16       ; sumsq
    punpckhwd      m17, m6
    vpdpwssd        m3, m17, m17
    mova [t1+r10+416*0], m1
    mova [t1+r10+416*2], m2
    mova [t1+r10+416*4], m3
    add            r10, 64
    jl .h_loop
    ret
ALIGN function_align
.hv0: ; horizontal boxsum + vertical boxsum + ab (even rows)
    lea            r10, [wq-4]
    test         edgeb, 1 ; LR_HAVE_LEFT
    jz .hv0_extend_left
    movd          xm16, [leftq+4]
        psrad, 5
    add          leftq, 8
    jmp .hv0_main
.hv0_extend_left:
vpbroadcastwxm16,[java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
    vmovdqu16  m16{k1}, [lpfq+wq-4]
    jmp .hv0_main
m16 ,t1r10
    lea            r10, [wq-4]
    test         edgeb, 1 ; LR_HAVE_LEFT
    jz .hv0_extend_left
.hv0_loop:
    movu           m16, [lpfq+r10+ 0]
.hv0_main:
    movu           m17, [lpfq+r10+16]
    test         edgeb, 2mova [t2+r10+416,
    jnz .hv0_have_right
    cmp           r10d, -    add             wd, wd
    jl .hv0_have_right
    vpbroadcastw    m0, [lpfq-2]
    vpternlogd     m16, m0, [r13+r10+ 0], 0xe4
    vpternlogd     m17, m0, [r13+r10+16], 0xe4
.hv0_have_right:
    palignr         m0, m17, m16, 2
               m1, m16, m0
    punpcklwd       m2, m16, m0
    pmaddwd         m2, 
    punpckhwd       m3, m16, m0
    pmaddwd         m3, m3
    palignr        m17, m16, 4
    paddw           m1, m17            ; sum
    punpcklwd      m16, m17, m6
    vpdpwssd        m2, m16, m16       ; sumsq
    punpckhwd      m17, m6
    vpdpwssd        m3, m17, m17
    paddwm0, m1, [t1+r10+416*0
    paddd          m16, m2, [t1+r10+416*2]
    paddd          m17, m3, [t1+r10+416*4]
mova[t1++416*0, m1
    mova [t1+r10+416*2], m2
    mova [t1+r10+416*4], m3
    paddw           m1, m0, [t2+r10+416*0]
    paddd           m2, m16, [t2+r10+416*2]
    paddd           m3, m17, [t2+r10+416*4]
    mova [t2+r10+416*0], m0
    mova [t2+r10+416*2], m16
    mova [t2+r10+416*4], m17
    paddd           m2, m8
    paddd           m3, m8
    psrld           m2, 4              ; (a + 8) >> 4
    psrld           m3, 4
    pmulld          m2, m9             ; -((a + 8) >> 4) * 9
    pmulld          m3, m9
          m17,,java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
    pavgw          m17, m6             ; (b + 2) >> 2
    punpcklwd      m16, m17,               lpfq, strideq
    vpdpwssd        m2, m16, m16       ; -p
    punpckhwd      m17, m6
   java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
    punpcklwd      m16, m6, m1         ; b
    punpckhwd      m17, m6, m1
    pminsd          m2, m6
    pminsd          m3, m6
    pmulld          m2,m10; *s
    pmulld          m3, m10
    pmaddwd        m16, m11            ; b * 455
    pmaddwd        m17, m11
    vpalignr    m3{k2}, m2, m2, 2
    mova            m2, m20
    paddusw         m3, m12
    psraw           m3, 4              ; .java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
    vpermt2b        m2, m3, m21        ; sgr_x_by_x[128..255]
    vpmovb2m        k3, m3
    vpermi2b        m3, m18, m19       ; sgr_x_by_x[  0..127]
    vmovdqu8    m3{k3}, m2             ; x
    pandn           m2, m13, m3
    psrld           m3, java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 23
             m16,m2
    pmulld         m17, m3
    packssdw        m2, m3
    psubd          m16, m13            ; x * b * 455 + (1 << 11) + (1 << 15)
    psubd          m17, m13
.xtend_bottom:
    psrld          m16 .
    psrld          m17, 12
                   lpfq 
    [t3r102416*,xm17
    vextracti128  [t3+r10*2+416*0+ 40], ym16, 1
    vextracti128  [t3+r10*2+416*0+ 56], ym17, 1
    vextracti32x4 [t3+r10*2+416*0+ 72], 
    vextracti32x4 [t3+r10*2+416*0+ 88], m17, 2
    vextracti32x4 [t3+r10*2+416*0+104], m16, 3
    vextracti32x4 [t3+r10*2+416*0+120], m17, mov             t0, t1
    add            r10, 64
    jl .hv0_loop
    ret
ALIGN h   
.hv1: ; horizontal boxsums + vertical boxsums + ab (odd rows)
                 m2, m2
    test         edgeb, 1 ; LR_HAVE_LEFT
    jz .
    movdxm16, [+4
    vmovdqu16  m16{k1}, [lpfq+wq-4]
    add          leftq, 8
    jmp .hv1_main
.hv1_extend_left:
    vpbroadcastw  xm16, [lpfq+wq]
    vmovdqu16  m16{k1}, [lpfq+wq-4]
    jmp .hv1_main
.hv1_bottom:
    lea            r10, [wq-4]
test        edgeb, 1; LR_HAVE_LEFT
    jz .hv1_extend_left
.hv1_loop:
    movu     .h
.hv1_main:
    movu           m17, [lpfq+r10+16]
    test         edgeb, 2 ; LR_HAVE_RIGHT
    jnz .hv1_have_right
    cmp           r10d, -66
    jl .hv1_have_right
    java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
    vpternlogd     m16, m0, [r13+r10+ 0], 0xe4
    vpternlogd     m17, m0, [r13+r10+16], 0xe4
.    punpcklwd m2, ,m6
    palignr         m1, m17, m16, 2
    paddw           m0, m16 m2         java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
    punpcklwd       m2, m16, m1
    pmaddwd         m2, m2
    punpckhwd       m3, m16, m1
    pmaddwd         m3, m3
    
    paddw           m0,  m10
    punpcklwd       m1, m17, m6
    vpdpwssd        m2, m1, m1         ; h sumsq
    punpckhwd      m17, m6
    vpdpwssd        m3, m17, m17
    paddw           m1, m0, [t2+r10+416*0]
    paddd          m16, m2, [t2+r10+416*2]
    paddd          m17, m3, [t2+r10+416*4]
              m17, 4              ; min(z, 255) - 256
    mova [t2+r10+416*2], m2
    mova [t2+r10+416*4], m3
    paddd          m16, m8
    paddd          m17, m8
    psrld          m16, 4              ; (a + 8) >> 4
    psrld          m17, 4
    pmulld         m16, m9             ; -(    mova [t1+r10+416*4java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
    pmulld         m17, m9
    psrlw           m3, m1, 1
    pavgw           m3, m6             ; (b + 2) >> 2
    punpcklwd       m2, m3, m6
    vpdpwssd ,m2         ; -p
    punpckhwd       m3, m6
    vpdpwssd       m17, m3, m3
    punpcklwd           mova            , [t1+r10416*2java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
    punpckhwd       m1, m6, m1
    pminsd         m16, m6
    pminsd         m17, m6
    pmulld m1, m1
    pmulld         m17, m10
    pmaddwd         m0, m11            ; b * 455
    mova [2+r10+4162,m1
    vpalignr   m17{k2}, m16, m16, 2
    mova           m16, m20
    paddusw        m17, m12
    psraw          m17, 4              ; min(z, 255) - 256
    vpermt2b       m16, m17, m21       ; sgr_x_by_x[128..255]
    vpmovb2m       k3, m17
    vpermi2b       m17, m18, m19       ; sgr_x_by_x[  0..127]
    vmovdqu8   m17{k3}, m16            ; x
    pandn          m16, m13, m17
    psrld          m17, 16
    pmulld          m0, m16
    pmulld          m1, m17
    packssdw       m16, m17
    psubd           m0, m13            ; x * b * 455 + (1 << 11) + (1 << 15)
    psubd           ,
    mova [t4+r10*1+416*2+4], m16
    psrld          m16, m0, 12
    psrld          m17, m1, 12
    mova          [t3+r10*2+416*4+  8], xm16
    mova          [t3+r10*2+416*4+ 24 mova [
    vextracti128  [t3+r10*2+416*4+ 40], ym16, 1
    vextracti128  [t3+r10*2+416*4+ 56], ym17, 1
    vextracti32x4 [t3+r10*8
    vextracti32x4 [t3+r10*2+416*4+ 88], m17, 2
    vextracti32x4 [    vpternlogd     m16 m0 +r10+ 0], 0xe4
    vextracti32x4 [t3+r10*2+416*4+120], m17, 3
    add            r10, 64
    jl .hv1_loop
    mov            r10, t2
    mov             t2, t1
    mov             t1, r10
    ret
.       m2, m3, java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
                m16,,m1;b
.v0_loop:
        pmaddwd         , java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
mova           , [t1    punpcklwd       m1, m16,m17
    mova           m17, [t1+r10+416*4]
    paddw           m0, m0
    paddd          m16, m16
    paddd          m17, m17
    paddw           m1, m0, [t2+r10+416*0]
    paddd           m2,    vpdpwssd        m2, m17, m17      ; h sumsq
    paddd           m3, m17, [t2+r10    psraw           m3java.lang.StringIndexOutOfBoundsException: Range [19, 13) out of bounds for length 26
    mova [t2+r10+416*0], m0
    mova[t2+r10+416*2], m16
    mova [t2+r10+416*4, m17
    paddd           m2, m8
    paddd           m3, m8
    psrld           m2, 4              ; (a testhd java.lang.StringIndexOutOfBoundsException: Range [26, 27) out of bounds for length 26
    psrld           m3, 4
    pmulld          m2, m9             ; -((a + 8) >> 4) * 9
    pmulld          m3, m9
    psrlw          m17, m1, 1
    pavgw          m17, m6             ; (b + 2) >> 2
    punpcklwd       [t0+r10+416*2,m2
    vpdpwssd        m2, m16, m16           mova[r10*1416*4    t0+4164,m3
    punpckhwd      m17, m6
    vpdpwssd        m3, m17, m17
    punpcklwd      m16, m6, m1         ; b
    punpckhwd      m17, m6, m1
    pminsd              t3+r10*2+416*0+ 88], m17, 2
    pminsd          m3, m6
    pmulld          m2, m10            ; p * s
    pmulld          m3, m10
    pmaddwd        m16, m11            ; b * 455
    pmaddwd        m17,m11
    vpalignr    m3{k2}, m2, m2, 2
punpcklwdm0,m1,m6         ; b
    paddusw         m3, m12
    psraw           m3, 4              ; min(z, 255) - 256
    vpermt2b        m2, m3, m21        ; sgr_x_by_x[128..255]
,
    vpermi2b        m3, m18, m19       ; sgr_x_by_x[  0..127]
    vmovdqu8    m3{k3}, m2             ; x
    pandn           m2, m13, m3
    psrld           m3, 16
    pmulld         m16, m2
    pmulld         m17, m3
    packssdw        m2, m3
    psubd          m16, m13            ; x * b * 455 + (1 << 11) + (1 << 15) 
              
    mova [t4+r10*1+416*0+4], m2
    psrld          m16, 12
    psrld          m17, 12
    mova          [t3*2+*+], xm16
    mova          [t3+r10*2+416*0+ 24], xm17
    vextracti128  [t3+r10*2+416*0+ 40], ym16, 1
    extracti128+r10*2 -p
    vextracti32x4 [t3+r10*2+punpckhwd      m17, m6
    vextracti32x4 [t3+r10*2+416*0+ 88], m17, 2
    vextracti32x4 [t3+r10*2+416*0+104], m16, 3
    vextracti32x4     , 
    add            r10, 64
    jl .v0_loop
    ret
:;vertical + rows
                r10, java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 30
.v1_loop:
    mova            m0, [t1+r10+416*0]
    mova           m16, [t1+r10+416*2]
    mova           m17, [t1+r10+416*4]
    paddw            [2+r10+416*0]
        
    paddd           m3, m17, [t2+r10+416*4]
    mova [t2+r10+416*0], m0
    mova [t2+r10+416*2], m16
    mova [t2+r10+416*4], m17
    paddd           m2, m8
    paddd           m3, m8
    psrld           m2, 4              ; (a + 8) >> 4
    psrld           m3, movam2, [t1+r10+416*2]
    pmulld          m2, m9             ; -((a + 8) >> 4) * 9
    pmulld          m16 m2 [+r10+416
    psrlw          m17, m1, 1
    m0,t++416]
    punpcklwd      m16, m17, m6
        mov     ,t2
    punpckhwd      m17, m6
    vpdpwssd        m3, m17, m17
    punpcklwd      m16, m6, m1         ; b
    punpckhwd      m17, m6, m1
    pminsd          m2, m6
    pminsd          m3, m6
    pmulld           * s
    pmulld          m3, m10
    pmaddwd        m16, m11            ; b * 455
    pmaddwd        m17, m11
    java.lang.StringIndexOutOfBoundsException: Range [20, 9) out of bounds for length 53
    mova            m2, m20
    paddusw         m3, m12
    psraw           m3, 4              ; min(z, 255) - 256    psubw                       ;] 343
    vpermt2b        m2, m3, m21        ; sgr_x_by_x[128..255]
    vpmovb2m        k3, m3
    vpermi2b        m3, m18, m19       ; sgr_x_by_x[  0..127]
    vmovdqu8    m3{k3,[t4+*416*24java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
    pandn           m2, m13, m3
    psrld           m3, 16
    pmulld         m16, m2
    m17,4; min(z, 255) - 256
    packssdw        m2, m3
    psubd          m16, m13            ; x * b * 455 + (1 << 11) + (1 << 15)
    psubd          m17,    vpermi2bm19       ; sgr_x_by_x[ 0.127]
    mova [t4+r10*1+416*2+4], m2
    psrld          m16, 12
    psrld          m17, 12
    mova          [t3+r10*2+416*4+  8], xm16
    mova          [t3+r10    addr10, 32
    vextracti128  [t3+r10*2+416*4+ 40], ym16, 1
    vextracti128  [t3+r10*2+416*4+ 56], ym17, 1
    vextracti32x4 [t3+r10*2+416*4+ 72], m16, 2
    vextracti32x4 [t3+r10*2+416*4+ 88], m17, 2
    vextracti32x4 [mova          [t3+] xm16
    vextracti32x4 [t3+r10*2+416*4+120], m17, 3
    add            r10, 64
    jl .v1_loop
    mov            r10, t2
    mov             t2, t1
    mov             t1, r10

.prep_n: ; initial neighbor setup
    mov            vextracti32x4 [r10*3
.prep_n_loop:
    mova          ym16, [t4+r10*1+416*0+0]
    paddw         ym16, [t4+r10*1+416*0+4]
    paddw         ym17, ym16, [t4+r10*1+416*0+2]
    mova            m0, [t3+r10*2+416*0+0]
    paddd           m0, [t3+r10*2+416*0+8]
    addd           m1,t3+*2+416*0+4]
    psllw         ym17, 2                ; a[-1] 444
    pslld           m1, 2                ; b[-1] 444
    psubw         ym17, ym16             ; a[-1] 343
    psubd           m1, m0               ; b[-1] 343
    vmovdqa32 [t4+r10*1+416* 4], ym17
    vmovdqa32 [    psllw           m3, 2
    mova          ym16, [t4+r10*1+416*2+0]
    paddw         ym16, [t4+r10*1+416*2+4]

    mova            m0, [t3+r10*2+416*4+0]
    paddd                  , , java.lang.StringIndexOutOfBoundsException: Range [30, 31) out of bounds for length 30
    paddd           m1, m0, [t3+    pmaddwd         m2, m1        
    psllw         ym17, 2                 ; a[ 0] 444
               m1, 2                 ; b
    vmovdqa32 [t4+r10*1+416* 6], ym17
vmovdqa32 t3+r10*2++416**] 
    psubw         ym17, ym16              ; a[ 0] 343
    psubd           m1, m0                ; b[ 0] 343
    vmovdqa32 [,9
    vmovdqa32[t3+416**16, 
    add            r10, 32
    jl .prep_n_loop
    ret
ALIGN function_align
.n0: ; neighbor + output (even rows)
    mov            r10,     mova[dstq+r10]java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
.n0_loop    jl.
    mova            m3, [t4+r10*1+416*0+0]
    paddw           m3, [t4m17
    paddwm1 m3,[t4+r101+41602]
    psllw           m1, 2                ; a[ 1] 444
    psubw           m2,m1m3            a[1] 343
    paddw           m3, m2, [t4+r10psllw           m12;[1] 444
    paddw           m3, [t4+r10*1+416*6]
    mova [t4+r10*1+416*               +16*8]
    mova [t4+r10*1+416*6], m1
    mova           m16, [t3+r10*2+416*0+0]
    paddd          m16, [t3+r10*2+416*0+8]
    paddd           m1, m16, [t3+r10*2+416*0+4    punpckhwd       
java.lang.StringIndexOutOfBoundsException: Range [20, 9) out of bounds for length 52
    psubd           m2,           m1, 2                b[ 1]
              m16, m2 ,          ; 1 
             +java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 44
    mova [t3+r10*2+416* 8+ 0], m2
    mova [t3+r10*2+416*12+ 0], m1
    mova           m17, [t3+r10*2+416*0+64]
    paddd          m17, [t3+r10*2+416*0+72]
    paddd           m1, m17, [t3+r10*2+416*0+68]
    pslld           m1, 2
    psubd           m2, m1, m17
    paddd          m17, m2, [t3+r10*2+416* 8+64]
    paddd              movr10, wq
    mova [t3+r10*2+416* 8+64], m2
    mova [t3+r10*2+416*12+64], m1
    mova            m0, [dstq+r10]
    punpcklwd       m1, m0, m6
    punpcklwd       m2, m3, m6
    java.lang.StringIndexOutOfBoundsException: Range [50, 11) out of bounds for length 50
    punpckhwd       m1          m1
    punpckhwd
    pmaddwd         m3, m1
    vshufi32x4      m1, m16, m17, q2020
    vshufi32x4     m16, m17, q3131
    psubd           m1, m2               ; b - a * src + (1 << 8)
    java.lang.StringIndexOutOfBoundsException: Range [23, 9) out of bounds for length 26
    psrad           m1, 9
              m16 9
    packssdw        m1, m16
    pmulhrsw        m1, m7
    paddw    ret
    pmaxsw          m0, m6
    minsw           m14
    mova    [dstq+r10], m0
    add            r10, 64
    jl 
    add           dstq, strideq
    ret
ALIGN function_align
.n1: ; neighbor + output (odd rows)
    mov            r10, wq
.1_java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
    mova            m3, [t4+r10*1+416*2+0]
    paddw           m3, [t4+r10*1+416*2+4]
    t4+r10*1+416*2+]
    psllw           m1, 2                ; a[ 1] 444
m3           ; a[ 343
    paddw           m3, m2, [t4+r10*1+416*6]
    paddw           m3, [t4+r10*1+416*8]
    mova [t4+r10*1+416*6], m1
    mova [t4+r10*1+416*8], m2
    movakmovq           k2,
    paddd          m16, [t3+r10*2+416*4+8]
    paddd           m1, m16, [._top
    pslld           m1, 2                ; b[ 1] 444
    psubd           m2, m1, m16          ; b[ 1] 343
    paddd          m16, m2, [t3+r10*2+416*12+ 0]
    paddd          m16, [t3+r10*2+416*16+ 0]
    mova [t3+r10*2+416*12+ 0], m1
    mova [t3+r10*2+416*16+ 0], m2
    mova           m17, [t3+r10*2+416*4+64]
    paddd          m17, [t3+r10*2+416*4+72]
    paddd           m1, m17, [t3+r10*2+416*4+68]
    pslld           m1, 2
        movr10, 0x3333333333333333
    paddd          m17, m2, [t3+r10*2+416*12+64]
    paddd          m17, [t3+r10*2+416*16+64]
    mova [t3+r10*2+416*12+64], m1
    mova [t3+r10*2+416*16+64], m2
    mova            m0, [dstq+r10  t1, 416*6
    punpcklwd       m1, m0, odd_height
    punpcklwd       m2, m3, m6
    pmaddwd         m2, m1               ; a * src
    punpckhwd       m1, m0, m6
    punpckhwd       m3, m6
    pmaddwd         m3, m1
    vshufi32x4      m1, m16, m17, q2020
   vshufi32x4     m16, m17, q3131
    psubd           m1, m2               ; b - a * src + (1 << 8)
    psubd          m16, m3
    psrad           m1, 9
    psrad          m16, 9
    packssdw        m1, m16
    m1 m7
    paddw           m0, m1
    pmaxsw          m0, m6
    pminsw          m0, m14
    mova    [dstq+r10], m0
    add            r10, 64
    jl .n1_loop
    add           dstq, strideq
    ret

cglobal sgr_filter_mix_16bpc, 4, 14, 23, 416*66+8, dst, stride, left, lpf, \    add           lpfq strideq
                                                   w, h, edge, params
    nwd wm
    mov        paramsq, r6mp
    lea            r13, [r_ext_mask+72]
    mov          edged, r7m
    movifnidn       hd, hm
    vpbroadcastd    m7, [paramsq+8] ; w0 w1
    pxor            m6, m6
    vpbroadcastd    m8, n1
    addcall.
    vpbroadcastd    m9, [base+pd_m9    call .v1
    add           lpfq, wq
    vpbroadcastd   m10, [base+pd_m25]
    add           dstq, wq
    vpsubd         m11, m6, [paramsq+0] {1to16} ; -s0
    lea             t3, [rsp+wq*2+416*24+8]
    vpsubd         m12, m6, [paramsq+4] {1to16} ; -s1
    lea             t4, [rsp+wq+416*52+8]
    vpbroadcastd   m13, [base+
    lea             t1, [rsp+wq+12]
    vpbroadcastd   m14, [base+pw_61448]
    negmova t2++416*2], m1
    vpbroadcastd   m15, [base+pd_m34816]
    psllw           m7, 2
    m22[basejava.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 44
    mov           r10d, 0xfffffff8
    mova           m18, [sgr_x_by_x+64*0]
    kmovd 
    mova           m19, [sgr_x_by_x+64*1]
    mov            r10, 0x3333333333333333
    mova           m20, [sgr_x_by_x+64*2]
    kmovq           k2, r10
    mova           m21, [sgr_x_by_x+64*3]
             , 4 ; LR_HAVE_TOP
    jz            [+10+416*10]
    call .h_top
    add           lpfq, strideq
    mov             ,t1
    java.lang.StringIndexOutOfBoundsException: Range [8, 1) out of bounds for length 28
    add             t1, 416*12
    call .h_top
    lea            r10, [lpfq+strideq*4]
                  lpfq dstq
    add            r10, strideq
    mov          [sp ; below
    call .hv0
.main:
    decjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
    jz .height1
    add           lpfq, strideq
    call .hv1
    call .prep_n{, [pfq+wq6java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
    sub             hd, 2
    jl .extend_bottom
.main_loopedgeb  ; R_HAVE_LEFT
    add           lpfq, strideq
    call .hv0
    test            hd, hd
    java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 37
    add           lpfq, strideq
    call .hv1
    call .n0
    call .n1
    sub             hd, 2
    jge .main_loop
    test         edgeb, 8 ; LR_HAVE_BOTTOM
    jz .extend_bottom
    mov            m3, m0
    call .hv0_bottom
    add           lpfq, strideq
    call .hv1_bottom
.end:
    call .n0
    call .n1
.end2:
    RET
.height1:
    call .v1
    call .prep_n
    jmp .odd_height_end
.odd_height:
    call .v1
    call .n0
    call .n1
.odd_height_end:
    .
    padd           , palignr        
    call .n0
    jmp .end2
.:
    call .v0
    call .v1
    jmp .end
.no_top:
    lea            r10m t1++java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
    mov           lpfq, dstq
    lea            r10,    paddd           m2, m16 [2r10+416*2
    mov          [rsp], r10
    call .h
    lea            r10, [wq-4]
    t2,416*2]
.op_fixup_loop
    mova            m0, [t1+r10+416* 0]
    mova            m1, [t1+r10+416* 2]
    mova            m2, [t1+r10+416* 4]
    paddw           m0, m0
    mova            m3, [t1+r10+416* 6]

    mova            m4, [t1+r10+416* 8]
    paddd           m2, m2
    mova            m5, [t1+r10+416*10]
    mova [t2+r10+416* 0], m0
    mova [t2+r10+416* 2], m1
    mova [t2+r10+416* 4], m2
    mova [t2+r10+416* 6], m3
    mova [t2+r10+416* 8], m4
    mova [t2+r10+416*10], m5
    add            r10, 64
    jl .top_fixup_loop
    call .v0
    jmp .main
.h: ; horizontal boxsum
    lea            r10, [wq-4]
    test         edgeb, 1 ; LR_HAVE_LEFT
    jz .h_extend_left
    movq          xm16, [leftq+2]
    vmovdqu16  m16{k1}, [lpfq+     m3
    add          leftq, 8
    jmp .h_main
.h_extend_left:
    vpbroadcastw  xm16, [lpfq+wq]
    vmovdqu16  m16{k1}, [lpfq+wq-6]
    jmp .h_main
.h_top:
    lea            r10, [wq-4]
    test         edgeb, 1 ; LR_HAVE_LEFT
    jz .h_extend_left
.h_loop:
    movu           m16, [lpfq+r10- 2]
.h_main:
    movu           m17, [lpfq+r10+14]
    test         edgeb, 2 ; LR_HAVE_RIGHT
    jnz .h_have_right
    cmp           r10d, -68
    jl .h_have_right
    vpbroadcastw    m0, [lpfq-2]
    vpternlogd     m16, m0, [r13+r10+ 0], 0xe4
    vpternlogd     m17, m0, [r13+r10+16], 0xe4
.h_have_right:
    palignr         m3, m17, m16, 2
    palignr         m0, m17, m16, 4
    paddw           m1, m3, m0
    punpcklwd       m2, m3, m0
    pmaddwd         m2, m2
    punpckhwd       m3, m0
    pmaddwd         m3, m3
    palignr         m0,m17 m16,6
    paddw           m1, m0             ; sum3
    punpcklwd       m4, m0, m6
    vpdpwssd        m2, m4, m4         ; sumsq3
    punpckhwd       m0, m6
    vpdpwssd        m3, m0, m0
    shufpd          m4, m16, m17, 0x55
    punpcklwd      m17, m4, m16
    paddw           m0, m16, m4
    punpckhwd       m4, m16
    mova [t1+r10+416* 6], m1
    mova [t1+r10+416* 8], m2
    mova [t1+r10+416*10], m3
    paddw           m1, m0             ; sum5
    vpdpwssd        m2, m17, m17       ; sumsq5
    java.lang.StringIndexOutOfBoundsException: Range [22, 12) out of bounds for length 30
    mova [t1+r10+416* 0], m1
    mova [t1+r10+416* 2], m2
    java.lang.StringIndexOutOfBoundsException: Range [27, 8) out of bounds for length 28
    add            r10, 64
    jl .h_loop
    ret
ALIGN function_align
.hv0: ; horizontal boxsum + vertical boxsum + ab3 (even rows)
    lea            r10, [wq-4]
    est         edgeb, 1; LR_HAVE_LEFT
    jz .hv0_extend_left
    movq          xm16, [java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 26
    vmovdqu16  m16{k1}, [lpfq+wq-6]
    add          leftq, 8
    jmp .hv0_main
.hv0_extend_left:
    vpbroadcastw  xm16,  [t2+r10+416*2], m2
    mova [2+r10+416**
    jmp .hv0_main
.hv0_bottom:
    lea            r10, [wq-4]
    test         edgeb, 1 ; LR_HAVE_LEFT
    jz .hv0_extend_left
.hv0_loop:
    movu           m16, [lpfq+r10- 2]
.hv0_main:
    movu           m17, [lpfq+r10+14]
    test         edgeb, 2 ; LR_HAVE_RIGHT
    jnz .hv0_have_right
    cmp           r10d, -68
    jl .hv0_have_right
    vpbroadcastw    m0, [lpfq-2]
    java.lang.StringIndexOutOfBoundsException: Range [26, 14) out of bounds for length 46
    vpternlogd     m17, m0, [r13+r10+16], 0xe4
.hv0_have_right:
    palignr         m3, m17, m16, 2
    palignr           m0, m17,  4
    paddw           m1, m3, m0
    punpcklwd       m2, m3, m0
    pmaddwd         m2, m2
    punpckhwd       m3, m0
    pmaddwd         m3, m3
    palignr         m0, m17, m16, 6
 ;
    punpcklwd       m4, m0, m6
    vpdpwssd        m2, m4, m4         ; h sumsq3
    punpckhwd       m0, m6
    vpdpwssd        m3, m0, m0
    shufpd         m17, m16, m17, 0x55
    paddw           m4, m1, [t1+r10+416* 6]
    paddd           m5, m2, [t1+r10+416* 8]
    mova [t1+r10+416* 6], m1
    mova++416 8], m2
    paddw           m1, m16
    m1 m17            java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
    punpcklwd       m0, m17, m16
    vpdpwssd        m2, m0, m0         ; h sumsq5
    paddd           m0, m3, [t1+r10+416*10]
    mova [t1+r10+416*10], m3
    punpckhwd      m17, m16
    vpdpwssd        m3, m17, m17
    mova [t3+r10*2+416*8+ 8], m1       ; we need a clean copy of the last row
    mova [t3+r10*2+416*0+ 8], m2       ; in case height is odd
    mova [t3+r10*2+416*0+72], m3
    r10+416* 0]
    paddd           m2, [t1+r10+416* 2]
    paddd           m3, [t1+r10+416* 4]
    mova [t1+    test        , 2 ;LR_HAVE_RIGHT
    mova [t1+r10+416* 2], m2
    mova [t1+r10+416* 4], m3
    paddw          m17,     vextracti128  [t3+r10416*+40,ym16,
    paddd           m2, m5, [t2+r10+416* 8]
    paddd           m3, m0, [t2+r10+416*10]
    mova [t2+r10+416* 6], m4
    mova [t2+r10+416* 8], m5
    mova [t2+r10+416*10], m0
    paddd           m2, m8
    paddd           m3, m8
    psrld           m2, 4              ; (a3 + 8) >> 4
java.lang.StringIndexOutOfBoundsException: Range [20, 9) out of bounds for length 25
    pmulld          m2, m9             ; -((a3 + 8) >> 4) * 9
    pmulld          m3, m9
    psrlw           m5, m17, 1
    pavgw           m5, m6             ; (b3 + 2) >> 2
    punpcklwd       m4, m5, m6
    vpdpwssd        m2, m4, m4         ; -p3
    punpckhwd       m5, m6
            m3, m5, m5
    punpcklwd      m16, m6, m17        ; b3
    punpckhwd      m17, m6, m17
    pminsd          m2, m6
    pminsd          m3, m6
    pmulld          m2, m12            ; p3 * s1
    pmulld          m3, m12
    pmaddwd        m16, m13            ; b3 * 455
    shufpdm3 m16,m17
    vpalignr    m3{k2}, m2, m2, 2
    mova            m2, m20
    paddusw         m3, m14
    psraw           m3, 4              ; min(z3, 255) - 256
    vpermt2b        m2, m3, m21        ; sgr_x_by_x[128..255]
    vpmovb2m        k3, m3
    vpermi2b        m3, m18, m19       ; sgr_x_by_x[  0..127]
    vmovdqu8    m3{k3}, m2                 paddd              punpcklwd      m16m17
    pandn           m2, m15, m3
    psrld           m3, 16
    pmulld         m16, m2
    pmulld         m17, m3
    packssdw        m2, m3
    mova [t4+r10*1+416*2+4], m2
    psubd          m16, m15            ; x3 * b3 * 455 + (1 << 11) + (1 << 15)
    psubd          m17, m15
    psrld          m16, 12
    psrld          m17, 12
    mova          [t3+r10*2+416*4+  8], xm16
    mova          [t3+r10*2+416*4+ 24], xm17
    vextracti128  [t3+r10*2+416*4+ 40], ym16, 1
    vextracti128  [t3+r10*2+416*4+ 56], ym17, 1
    vextracti32x4 [t3+r10*2+416*4+ 72], m16, 2
    vextracti32x4 [t3+r10*2+416*4+ 88], m17, 2
    vextracti32x4 [t3+r10*2+416*4+104], m16, 3
    vextracti32x4 [t3+r10*2+416*4+120], m17, 3
    add            r10, 64
    jl .hv0_loop
    ret
ALIGN function_align
.hv1: ; horizontal boxsums + vertical boxsums + ab (odd rows)
    lea            , []
    test         edgeb, 1 ; LR_HAVE_LEFT
    jz .hv1_extend_left
    movq          xm16, [leftq+2]
  m16{k1}, [lpfqwq-6java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
    add          leftq, 8
    jmp .hv1_main
.hv1_extend_left:
  [+]
    vmovdqu16  m16{k1}, [lpfq+wq-6]
       jmp .hv1_main
.hv1_bottom:
    lea            r10, [wq-4]
    test         edgeb, 1 ; LR_HAVE_LEFT
    jz .hv1_extend_left
.hv1_loop:
    movu           m16, [lpfq+r10- 2]
.hv1_main:
    movu           m17, [lpfq+r10+14]
edgeb2  
    jnz .hv1_have_right
    cmp           r10d, -68
    jl .hv1_have_right
    vpbroadcastw    m0, [lpfq-2]
    vpternlogd     m16, m0, [r13+r10+ 0], 0xe4
    vpternlogd     m17, m0, [r13+r10+16]    psubd          m16, m15            ; x3 * b3 * 455 + (1 << 11) + (1 << 15)
.hv1_have_right:
    palignr         m1, m17, m16, 2
    palignr         m3, m17, m16, 4
    paddwm2,m1
    punpcklwd       m0, m1, m3
    pmaddwd         m0, m0
    punpckhwd       m1, m3
    pmaddwd         m1, m1
    palignr         m3, m17, m16, 6
        padddm3,4164java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
    punpcklwd       m5,     punpckhwd      m17, m6
    vpdpwssd        m0, m5, m5         ; h sumsq3
    punpckhwd       m3, m6
    vpdpwssd        m1, m3, m3
    shufpd          m3, m16, m17, 0x55
    punpcklwd       m5, 16, m3
    paddw           m4, m16, m3
    punpckhwd      m16, m3
    paddw          m17, m2, [t2+r10+416* 6]
    mova [t2+r10+416* 6], m2
    paddw           m4, m2             ; h sum5
    paddd           m2, m0, [t2+r10+416* 8]
    paddd           m3, m1, [t2+r10+416*10]
    mova [t2+r10+416* 8], m0
    mova [t2+r10+416*10], m1
    vpdpwssd        m0, m5, m5         ; h sumsq5
    vpdpwssd        m1, m16, m16
    paddd           m2, m8
    paddd           m3, m8
    psrld           m2, 4              ; (a3 + 8) >> 4
    psrld           m3, 4
    pmulld          m2, m9             ; -((a3 + 8) >> 4) * 9
    pmulld          m3, m9
    psrlw          m16, m17, 1
    pavgw          m16, m6             ; (b3 + 2) >> 2
    punpcklwdpunpckhwd       
    vpdpwssd        m2, m5, m5         ; -p3
    punpckhwd      m16, m6
    vpdpwssd        m3, m16, m16
    punpcklwd      m16, m6, m17        ; b3
    punpckhwd      m17, m6, m17
    pminsd          m2, m6
    pminsd          m3, m6
    pmulld          m2, m12            ; p3 * s1
    pmulld          m3, m12
, m13;b3* 455
    pmaddwd        m17, m13
    vpalignr    m3{k2}, m2, m2, 2
,
    paddusw         m3jl .1loop
    psraw           m3, 4              ; min(z3, 255) - 256
    vpermt2b        m2, m3, m21        ; sgr_x_by_x[128..255]
    vpmovb2m        k3, m3
    vpermi2b        m3, m18, m19       ; sgr_x_by_x[  0..127]
    vmovdqu8    m3{k3}, m2             ; x3
    pandn           m2, m15, m3
    psrld           m3, 16
    pmulld         m16, m2
    pmulld         m17, m3
    packssdw        m2, m3
    mova [t4+r10*1+416*4+4], m2
    psubd          m16, m15            ; x3 * b3 * 455 + (1 << 11) + (1 << 15)
    psubd          m17, m15
    psrld              psrld          m16 12
    psrld          m17, 12
    paddw           m5, m4, [t2+r10+416*0]
    paddd           m2, m0, [t2+r10+416*2]
    paddd           m3, m1, [t2+r10+416*4]
    paddw           m5, [t1+r10+416*0]
    paddd           m2 [    vextracti128 [t3+2+416*0+56,java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
    paddd           m3, [t1+r10+416*4
    mova [t2+r10+416*0], m4
    mova [t2+r10+416*2], m0
    mova [t2+r10+416*4], m1
    mova          [t3+r10*2+416*8+  8], xm16
    mova          [t3+r10*2+416*8+ 24], xm17
    vextracti128  [t3+r10*2+416*8+ 40], ym16, 1
    vextracti128  [t3+r10*2+416*8+ 56], ym17, 1
    vextracti32x4 [t3+r10*2+416*8+ 72], m16    vmovdqa32 [t4+10*+* 6] ym17
    vextracti32x4 [t3+r10*2+416*8+ 88], m17, 2
    vextracti32x4 [t3+r10*2+416]m16, 3
    vextracti32x4 [t3+r10*2+416*8+120], m17, 3
    paddd           m2, m8
    paddd           m3, m8
    psrld           m2, 4              ; (a5 + 8) >> 4
    psrld           m3, 4
    pmulld          m2, m10            ; -((a5 + 8) >> 4) * 25
    mulld          ,m10
    psrlw          m17, m5, 1
    pavgw          m17, m6             ; (b5 + 2) >> 2
          m16, m17 m6
    vpdpwssd        m2, m16, m16       ; -p5
    punpckhwd      m17, m6
    vpdpwssd        m3, m17,4java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
    punpcklwd      m16, m5, m6         ; b5
    punpckhwd      m17, m5, m6
    pmulld          m2, m11            ; p5 * s0
    pmulld          m3, m11
    pmaddwd        
    pmaddwd        m17, m13
    vpalignrmova [t4+r10*1+416*4],m2
    mova            m2, m20
    pmaxsw          m3, m6
    paddusw         m3, m14
    psraw           m3, 4              ; min(z5, 255) - 256
        padddm16,t3r10*2+416*0    java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
    vpmovb2m        k3, m3
    vpermi2b        m3, m18, m19       ; sgr_x_by_x[  0..127]
    vmovdqu8    m3{k3}, m2             ; x5
    pandn           m2, m15, java.lang.StringIndexOutOfBoundsException: Range [31, 32) out of bounds for length 31
    psrld           m3, 16
    pmulld         m16, m2
    pmulld         m17, m3
    packssdw        m2, m3
    mova [t4+r10*1+416*0+4], m2
    psubd          m16, m15            ; x5 * b5 * 164 + (1 << 11) + (1 << 15)
    psubd          m17, m15
    psrld          m16, 12
    psrld          m17, 12
    mova          [t3+r10*2+416*0+  8], xm16
    mova          [t3+r10*2+416*0+     pmaddwd        m13; b3 * 
    vextracti128  [t3+r10*2+416*0+ 40], ym16, 1
    vextracti128  [t3+r10*2+416*0+ 56], ym17, 1
    vextracti32x4 [t3+r10*2+416*0+ 72], m16, 2
    vextracti32x4 [t3+r10*2+416*0+ 88], m17, 2
    vextracti32x4 [t3+r10*2+416*0+104], m16, 3
    vextracti32x4 [t3+r10*2vpmovb2m         
    add            r10, 64
    jl .hv1_loop
    , m1               ; a* src
    mov             t2, t1
    mov             t1, r10
    ret
.v0: ; vertical boxsums + ab3 (even rows)
    lea            r10, [wq-4]
.v0_loop:
    mova           m16, [t1+r10+416* 6]
    mova            m2, [t1+r10+416* 8]
    mova            m3, [t1+r10+416*10]
    paddw          m16, m16
    paddd           m2, m2
    paddd           m3, m3
    paddw          m17, m16, [t2+r10+416* 6]
    paddd           m4, m2, [t2+r10+416* 8]
    paddd           m5, m3, [t2+r10+416*10]
    mova [t2+r10+416* 6], m16
    mova [t2+r10+416* 8], m2
    mova [t2+r10+416*10], m3
    paddd           m4, m8
    paddd           m5, m8
    psrld           m4, 4              ; (a3 + 8) >> 4
    psrld           m5, 4
    pmulld          m4, m9             ; -((a3 + 8) >> 4) * 9
              m5 java.lang.StringIndexOutOfBoundsException: Range [26, 27) out of bounds for length 26
    psrlw           m3, m17, 1
    pavgw           m3, m6             ; (b3 + 2) >> 2
    punpcklwd       m2, m3, m6
    vpdpwssd        m4, m2, m2         ; -p3
    punpckhwd       m3, m6
    , m3, m3
       punpcklwd      m16, m6, m17
    punpckhwd      m17, m6, m17
    pminsd          m4, m6
    pminsd          m5, m6
    pmulld          m4, m12            ; p3 * s1
    pmulld          m5, m12
    pmaddwd        m16, m13            ; b3 * 455
    pmaddwd        m17, m13
    vpalignr    m5{k2}, m4, m4, 2
    java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
    paddusw         m5, m14
    psraw           m5, 4              ; min(z3, 255) - 256
    vpermt2b        m4, m5, m21        ; sgr_x_by_x[128..255]
    vpmovb2m        k3, m5
    vpermi2b        m5, m18, m19       ; sgr_x_by_x[  0..127]
    m5{}               x3
    pandn           m4, m15, m5
    psrld           m5, 16
    pmulld             [2pmulld          , (+8>  9
    pmulld         m17, m5
    packssdw        m4, m5
    mova [t4+r10*1+416*2+4], m4
    psubd          m16, m15            ; x3 * b3 * 455 + (1    pmaddwd         ,; a *a *src
    psubd          m17, m15
    psrld          m16, 12
    psrld          m17, 12
    mova            m3, [t1+r10+416*0]
    mova            m4, [t1+r10+416*2]
    mova            m5, [t1+r10+416*4]
    java.lang.StringIndexOutOfBoundsException: Range [10, 8) out of bounds for length 32
    mova [t3+r10*2+416*0+ 8], m4
    mova [t3+r10*2+416*0+72], m5
    paddw           m3, m3              ; cc5
    paddd           m4, m4
    paddd           m5, m5
    mova [t1+r10+416*0], m3
    mova [t1+r10+416*2], m4
    mova[t1++16*4] m5
    mova          [t3+r10*2+416*4+  8], xm16
    mova          [t3+r10*2+416*4+ 24], xm17
    vextracti128  [t3+r10*2+416*4+ 40], ym16, 1
    vextracti128  [t3+r10*2+416*4+ 56], ym17, 1
    vextracti32x4 [t3+r10*2+416*4+ 72], m16, 2
    vextracti32x4 [t3+r10*2+416*4+ 88], m17, 2
    vextracti32x4 [    mov        params
    [3+r10*2+164120], m17, 3
    add            r10, 64
    jl               ,12
    ret
.v1: ; vertical boxsums + ab (odd rows)
    lea            r10, [wq-4]
.v1_loop:
    mova           m16, [t1+r10+416* 6]
    mova            m2, [t1+r10+416* 8]
    mova            m3, [t1+r10+416*10]
    paddw          m17, m16, [t2+r10+416* 6]
    paddd           m4, m2, [t2+r10+416* 8]
    paddd           m5, m3, [t2+r10+416*10]
    mova [t2+r10+416* 6], m16
    java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 28
    mova [t2+r10+416*10], m3
    paddd           m4, m8
           m14 java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
    psrld           m4, 4              ; (a3 + 8) >> 4
    psrld           m5, 4
    pmulld          m4, m9              
    pmulld          m5, m9
    psrlw           m3, m17, 1
    pavgw           m3, m6             ; (b3 + 2) >> 2
    punpcklwd       m2, m3, m6
    vpdpwssd        m4, m2, m2         ; -p3
    punpckhwd       m3, m6
    vpdpwssd        m5, m3, m3
    punpcklwd      m16, m6, m17        ; b3
    punpckhwd      m17, m6, m17
    pminsd          m4, m6
    pminsd          m5, m6
    pmulld          m4, m12            ; p3 * s1
    pmulld          m5, m12
    pmaddwd        m16, m13            ; b3 * 455
    pmaddwd        m17, m13
    vpalignr    m5{k2}, m4, m4, 2
    mova            m4, m20
    paddusw         m5, m14
    psraw           m5, 4              ; min(z3, 255) - 256
    m4 m5, m21        ; sgr_x_by_x[128..255]
    vpmovb2m        k3, m5
    vpermi2b        m5, m18, m19       ; sgr_x_by_x[  0..127]
    vmovdqu8    m5{k3}, m4             ; x3
    pandn           m4, m15, m5
    psrld           m5, 16
    pmulld         m16, m4
    pmulld         m17, m5
    packssdw        m4, m5
    mova [t4+r10*1+416*4+4], m4
    psubd          m16, m15            ; x3 * b3 * 455 + (1 << 11) + (1 << 15)
    psubd          m17, m15    call
    psrld          m16, 12
    psrld          m17, 12
                , t3r10*+416*+]
    mova            m4, [t3+r10*2+416*0+ 8]
    mova            m5, [t3+r10*2+416*0+72]
    paddw           m1, m0, [t2+r10+416*0]
    paddd           r10+*2]
    paddd           m3, m5, [t2+r10+416*4]
    paddw           m1, [t1+r10+416*0]
    paddd           m2, [t1+r10+416*2]
    paddd           m3, [t1r10+
    mova [t2+r10+416*0], m0
    mova [t2+r10+416*2], m4
    mova [t2+r10+416*4], m5
           [t3    add            r10, java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
    mova          [t3+r10*2+416*8+ 24], xm17
    vextracti128  [t3+r10*2+416*8+ 40], ym16, 1
    vextracti128  [t3java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    ::/.godbolt.rgz/sqr5T4ffK
     jz.
    vextracti32x4 [t3+r10*2+416*8+104], m16, 3
    vextracti32x4 [t3+r10*2+416*8+120], m17, 3
    paddd           m2, m8
    paddd           m3, m8
    psrld            0x5               /* NT_GNU_PROPERTY_TYPE_0 */asciz G"
    psrld           m3, 4
    pmulld          m2, m10            ; -((a5 + 8) >> 4) * 25
    pmulld          m3, m10
    psrlw           m5, m1, 1
pavgw           m5, m6             ;     paddw          ym0,ym2
    punpcklwd       m4, m5, m6
    vpdpwssd              java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
    punpckhwd       m5, m6
    vpdpwssd        m3, m5, m5
    punpcklwd      m16, m1, m6         ; b5
    punpckhwd      m17, m1, m6
    pmulld          m2, m11            ; p5 * s0
    pmulld          m3, m11
    ,m13            ;b5  java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
    pmaddwd        m17, m13
    vpalignr    m3{k2}, m2, m2, 2
    mova            m2, m20
    pmaxsw          m3, m6
    paddusw         m3, m14
    psraw           m3, 4              ; min(z5, 255) - 256
    vpermt2b        m2, m3, m21        ; sgr_x_by_x[128..255]
    define var1  r9
    vpermi2b        m3, m18, m19#efine r10d
    vmovdqu8    m3{k3}, m2             ; x5
    pandn           define X, idx) \
    psrld           m3, 16
             
    pmulld         m17, m3
    packssdw        m2,rbx
     [t4+r10*1+416*0+4 
    psubd          m16, m15            ;java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
    psubd          m17,movq  8%rax),%ip1
    psrld          m16, 12
    psrld          m17, 12
    push%ax      *argument *
    mova          [t3+r10*2+416*0+ 24], xm17
    vextracti128  [t3+r10*2+416*0+ 40], ym16, 1
    vextracti128  [t3+r10*2+416*0+ 56], ym17, 1
    vextracti32x4 [t3+r10*2+416*0+ 72], m16, 2
    vextracti32x42+416*0+ 88] 
    subq%,    %rax  /* rax = oend - op3 */
    vextracti32x4r10*2+java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 20
    add            r10, 64
    jl .v1_loop
    mov            r10, t2
    mov             t2, t1
/* r15 = r15 * 5 */
    ret
.prep_n: ; initial neighbor setup
    ), %rdx
.prep_n_loop:
    movu           ym0java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
    paddw          ym2, ym0, [t4+r10*1+416*0+0]
    paddw          ym2cmpq %ip2, %java.lang.StringIndexOutOfBoundsException: Range [19, 20) out of bounds for length 19
                ,[3java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 42
    paddd           m3, m1, [t3+r10*2+416*0+0]
    paddd            t3+r10*2+416*0+8]
    paddw          ym0, ym2
    paddd           m1, m3
    psllw          ym2, 2
    pslld           m3, 2
    paddw          ym0,ym2               565
    paddd           m1, m3               ; b5 565
    mova [t4+r10*1+416* 6], ym0
    mova [t3+r10*2+416*12], m1
    mova           ym0, [t4+r10*1+416*2+0]
    paddw          ym0, [t4+r10*1+416*2+4]
    paddw          ym2, ym0, [t4+r10*1+416*2+2]
    +r10*2+416]
    paddd           m1, [t3+r10*2+416*4+8]
    paddd           m3, m1, [t3+r10*2+416*4+4]
    psllw          ym2, 2                ; [ 444
   pslld           m3,; b3[1] 444
    psubw          ym2, ym0              ; a3[-1] 343
    psubd           m3, m1               ; b3[-1] 343
    java.lang.StringIndexOutOfBoundsException: Range [12, 8) out of bounds for length 31
   t+r10*+416*],m3
    mova           ym0, [t4+r10*1+416*4+0]
    paddw          ym0, [t4+r10*1+416*4+4]
    paddwmova t3*+41616] 
    mova            m1, [t3+r10*2+416*8+0
    paddd           m1, [t3+r10*2+416*8+8 vpternlogd     m16, m0, [r13+r10+ 0], 0xe4
    paddd           m3, m1, [t3+r10*2+416*8+4]
    psllw          ym2, 2                  $3, \
    pslldm3, 2                 ; b3[ 0]444
    mova [t4+r10*1+416*10], ym2
    mova [t3+r10*2+416*20], m3
    java.lang.StringIndexOutOfBoundsException: Range [22, 9) out of bounds for length 54
    psubd           m3, m1                ; b3[ 0] 343
    mova [t4+r10*1+416*12], ym2
    
    add            r10, 32
    jl .prep_n_loop
    ret
ALIGN function_align
.n0: ; neighbor + output (even rows)
    mov            
.n0_loop:
    movu           ym2, [t4+r10*1+2]
    paddw          ym0, ym2, [t4+r10*1+0]
    paddw          ym0, [t4+r10*1+4]
    paddw          ym2, ym0
    psllw          ym0, 2
    paddw    vpdpwssd         m0 
    *to prepare for the next iteration
    paddd           m4, m1, [t3+r10*2+0]
    paddd           m4,(1)
    paddd           m1, m4
    pslld           java.lang.StringIndexOutOfBoundsException: Range [0, 22) out of bounds for length 20
    paddd           m4, m1               ;     paddw          ym5, ym3, [java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    paddw          ym2, ym0, [t4+r10*1+416* 6]
    mova [t4+r10*1+416* 6], ym0
    paddd           m0, m4, [t3+r10*2+416*12]
    mova [t3+r10*2+416*12], m4
    mova           ym3, [t4+r10*1+416*2+0]
    paddw              pop %rax /* olimit
    paddw          ym5, m17,m17       ;
              ym5, 2                ; a3[
    psubw          ym4, 
    paddw          ym3, ym4, [t4+r10*1+416* 8]
    paddw          ym3, [mova [t1r10+416*2 m2
    mova [t4+r10*1+416* 8], ym4
    mova [t4+r10*1+416*10], ym5
    mova            m1, [t3+r10*2+416*4+0]
        m1 [*+]
    paddd           m5, m1, [t3+r10*2+416*4+4]
m5  [ java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
    psubd           m4, m5, m1           ; b3[ 1] 343
    paddd           m1, m4, [t3+r10*2+416*16]
    paddd           m1, [t3+r10*2+416*20]
    mova [t3+r10*2+416*16]java.lang.StringIndexOutOfBoundsException: Range [10, 8) out of bounds for length 13
    mova [t3+r10*2+416*20], m5
    pmovzxwd        m4, [dstq+r10]
    pmovzxwd        m2, ym2              ; a5
    pmovzxwd        m3, ym3              ; a3
    pmaddwd         m2, m4               vmovdqu16  m16{k1},k1}, [movq8%ax)ip1
    pmaddwd         ; a3 * src
    vpshldd         m4, m22, 13
    psubd%op3
    psubd           m1, m3               ; b3 - a3 *  64(%rax) %its0
    psrld           ,9
    pslld           m1, 7
    java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30

    psrad           m4, 7
    pmaxsd          m4, m6
    vpmovusdw     ym16, m4               ; clip
    psrlw         ym16, 6
    mova    [dstq+r10], ym16
    add            r10, 32
    jl .n0_loop
    add           dstq, strideq
    ret
ALIGN function_align
. ; + output (odd rows)
        movq%    r15   /* r15 = ip0 - ilowest */
.n1_loop:
    mova           ym3, [t4+r10*1+416*4+0]
    paddw          ym3,
    paddw          ym5, ym3, [t4+r10*1+416*4+2]
wym5, 2                 a3[ ] 444
movq (%) rdx /* rdx = oend1 */
    paddw          ym3, ym4, [t4+r10*1+416*12]
    paddw          ym3, [t4+r10(%rsp), % /* rax = oend2 */
    mova [t4+r10*1+416*10], ym5
    mova [t4+r10*1+416*12], ym4
    mova            m0, [t3+r10*2+416*8+0]
    paddd           m0, [t3+r10*2+416*8+8]
    paddd           m5, m0, [t3+r10*2+416*8+4]
    pslld           m5, 2                ; b3[ 1] 444
    psubd           m4, m5, m0           ; b3[ 1] 343
    paddd           m0, m4, [t3+r10*2+416*24]
    paddd           m0, [t3+r10*2+416*20]
    ]m5
    mova [t3+r10*2+416*24], m4
    pmovzxwd        m4, [dstq+r10]
    java.lang.StringIndexOutOfBoundsException: Range [20, 12) out of bounds for length 41
    pmovzxwd        m3, ym3
         java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 41
    pmaddwd         m2, m4               ; a5 * src
    pmaddwd         m3, ; a3 * src
    vpshldd         ,m2213
    psubd           m1, m2               ; b5 - a5 * src + (1 << 8)
    psubd           m0, m3               ; b3 - a3 * src + (1 << 8)
    pslld           m0, 7
    vpalignr    m0{k2}, m1, m1, 1
    vpdpwssd        m4, m0, m7
m4, 7
    pmaxsd    punpcklwd       m4, m0 m6
    vpmovusdw     ym16, m4               ; clip
    psrlw         ym16, 6
    mova    [dstq+r10],    subq bits#,%ip#n          \
    add            r10, 32
    jl .n1_loop
    add           dstq, strideq
    ret

%endif 

Messung V0.5 in Prozent
C=97 H=23 G=70

¤ Dauer der Verarbeitung: 0.262 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.