Advertisement
999ms

without unroll-loops

Nov 5th, 2019
1,621
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.         lea     eax, [r10+2]
  2.         lea     r15d, [r10+1]
  3.         mov     DWORD PTR [rsp-4], eax
  4.         lea     eax, [r10+5]
  5.         lea     r8d, [r10+3]
  6.         mov     DWORD PTR [rsp-28], eax
  7.         lea     eax, [r10+6]
  8.         lea     r11d, [r10+4]
  9.         movsx   r10, r10d
  10.         mov     DWORD PTR [rsp-44], eax
  11.         movsx   rax, r15d
  12.         mov     DWORD PTR [rsp-8], r8d
  13.         movsx   r8, r8d
  14.         mov     QWORD PTR [rsp-16], rax
  15.         movsx   rax, DWORD PTR [rsp-4]
  16.         mov     QWORD PTR [rsp-40], r8
  17.         movsx   r8, r11d
  18.         mov     QWORD PTR [rsp-24], rax
  19.         movsx   rax, DWORD PTR [rsp-44]
  20.         mov     QWORD PTR [rsp-56], r8
  21.         movsx   r8, DWORD PTR [rsp-28]
  22.         mov     DWORD PTR [rsp-32], r11d
  23.         mov     QWORD PTR [rsp-64], r8
  24.         mov     QWORD PTR [rsp-72], rax
  25. .L7:
  26.         cmp     edi, esi
  27.         jge     .L8
  28.         mov     r8d, DWORD PTR b[0+rdx*4]
  29.         cmp     r12d, 6
  30.         jbe     .L9
  31.         vmovd   xmm3, r8d
  32.         mov     rax, r13
  33.         vpxor   xmm1, xmm1, xmm1
  34.         vpbroadcastd    ymm3, xmm3
  35. .L5:
  36.         vmovdqu xmm4, XMMWORD PTR [rax]
  37.         vinserti128     ymm0, ymm4, XMMWORD PTR [rax+16], 0x1
  38.         add     rax, 32
  39.         vpminsd ymm2, ymm3, ymm0
  40.         vpcmpeqd        ymm0, ymm0, ymm2
  41.         vpsubd  ymm1, ymm1, ymm0
  42.         cmp     rax, r9
  43.         jne     .L5
  44.         vmovdqa xmm0, xmm1
  45.         vextracti128    xmm1, ymm1, 0x1
  46.         vpaddd  xmm1, xmm0, xmm1
  47.         vpsrldq xmm0, xmm1, 8
  48.         vpaddd  xmm1, xmm1, xmm0
  49.         vpsrldq xmm0, xmm1, 4
  50.         vpaddd  xmm1, xmm1, xmm0
  51.         vmovd   eax, xmm1
  52.         cmp     ebx, r14d
  53.         je      .L3
  54. .L4:
  55.         xor     r11d, r11d
  56.         cmp     DWORD PTR a[0+r10*4], r8d
  57.         setle   r11b
  58.         add     eax, r11d
  59.         cmp     esi, r15d
  60.         jle     .L3
  61.         mov     r11, QWORD PTR [rsp-16]
  62.         cmp     r8d, DWORD PTR a[0+r11*4]
  63.         setge   r11b
  64.         movzx   r11d, r11b
  65.         add     eax, r11d
  66.         cmp     esi, DWORD PTR [rsp-4]
  67.         jle     .L3
  68.         mov     r11, QWORD PTR [rsp-24]
  69.         cmp     r8d, DWORD PTR a[0+r11*4]
  70.         setge   r11b
  71.         movzx   r11d, r11b
  72.         add     eax, r11d
  73.         cmp     esi, DWORD PTR [rsp-8]
  74.         jle     .L3
  75.         mov     r11, QWORD PTR [rsp-40]
  76.         cmp     r8d, DWORD PTR a[0+r11*4]
  77.         setge   r11b
  78.         movzx   r11d, r11b
  79.         add     eax, r11d
  80.         cmp     esi, DWORD PTR [rsp-32]
  81.         jle     .L3
  82.         mov     r11, QWORD PTR [rsp-56]
  83.         cmp     r8d, DWORD PTR a[0+r11*4]
  84.         setge   r11b
  85.         movzx   r11d, r11b
  86.         add     eax, r11d
  87.         cmp     esi, DWORD PTR [rsp-28]
  88.         jle     .L3
  89.         mov     r11, QWORD PTR [rsp-64]
  90.         cmp     r8d, DWORD PTR a[0+r11*4]
  91.         setge   r11b
  92.         movzx   r11d, r11b
  93.         add     eax, r11d
  94.         cmp     esi, DWORD PTR [rsp-44]
  95.         jle     .L3
  96.         mov     r11, QWORD PTR [rsp-72]
  97.         cmp     r8d, DWORD PTR a[0+r11*4]
  98.         setge   r8b
  99.         movzx   r8d, r8b
  100.         add     eax, r8d
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement