Advertisement
shssoichiro

8x8 kernel before

Oct 26th, 2022
1,370
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .section .text.rav1e::asm::x86::dist::hbd::satd_kernel_8x8_hbd_avx2,"ax",@progbits
  2.     .p2align    4, 0x90
  3.     .type   rav1e::asm::x86::dist::hbd::satd_kernel_8x8_hbd_avx2,@function
  4. rav1e::asm::x86::dist::hbd::satd_kernel_8x8_hbd_avx2:
  5.  
  6.     .cfi_startproc
  7.     push rbp
  8.     .cfi_def_cfa_offset 16
  9.     .cfi_offset rbp, -16
  10.     mov rbp, rsp
  11.     .cfi_def_cfa_register rbp
  12.  
  13.     push r15
  14.     push r14
  15.     push r12
  16.     push rbx
  17.     and rsp, -64
  18.     sub rsp, 832
  19.     .cfi_offset rbx, -48
  20.     .cfi_offset r12, -40
  21.     .cfi_offset r14, -32
  22.     .cfi_offset r15, -24
  23.  
  24.     add rdx, 14
  25.  
  26.     add rcx, rcx
  27.  
  28.     add rdi, 14
  29.  
  30.     add rsi, rsi
  31.  
  32.     xor eax, eax
  33.  
  34.     .p2align    4, 0x90
  35. .LBB666_1:
  36.     movzx ebx, word ptr [rdi - 14]
  37.  
  38.     mov dword ptr [rsp + rax + 256], ebx
  39.  
  40.     movzx ebx, word ptr [rdx - 14]
  41.  
  42.     mov dword ptr [rsp + rax + 512], ebx
  43.  
  44.     movzx ebx, word ptr [rdi - 12]
  45.  
  46.     mov dword ptr [rsp + rax + 260], ebx
  47.  
  48.     movzx ebx, word ptr [rdx - 12]
  49.  
  50.     mov dword ptr [rsp + rax + 516], ebx
  51.  
  52.     movzx ebx, word ptr [rdi - 10]
  53.  
  54.     mov dword ptr [rsp + rax + 264], ebx
  55.  
  56.     movzx ebx, word ptr [rdx - 10]
  57.  
  58.     mov dword ptr [rsp + rax + 520], ebx
  59.  
  60.     movzx ebx, word ptr [rdi - 8]
  61.  
  62.     mov dword ptr [rsp + rax + 268], ebx
  63.  
  64.     movzx ebx, word ptr [rdx - 8]
  65.  
  66.     mov dword ptr [rsp + rax + 524], ebx
  67.  
  68.     movzx ebx, word ptr [rdi - 6]
  69.  
  70.     mov dword ptr [rsp + rax + 272], ebx
  71.  
  72.     movzx ebx, word ptr [rdx - 6]
  73.  
  74.     mov dword ptr [rsp + rax + 528], ebx
  75.  
  76.     movzx ebx, word ptr [rdi - 4]
  77.  
  78.     mov dword ptr [rsp + rax + 276], ebx
  79.  
  80.     movzx ebx, word ptr [rdx - 4]
  81.  
  82.     mov dword ptr [rsp + rax + 532], ebx
  83.  
  84.     movzx ebx, word ptr [rdi - 2]
  85.  
  86.     mov dword ptr [rsp + rax + 280], ebx
  87.  
  88.     movzx ebx, word ptr [rdx - 2]
  89.  
  90.     mov dword ptr [rsp + rax + 536], ebx
  91.  
  92.     movzx ebx, word ptr [rdi]
  93.  
  94.     add rdi, rsi
  95.  
  96.     mov dword ptr [rsp + rax + 284], ebx
  97.  
  98.     movzx ebx, word ptr [rdx]
  99.  
  100.     add rdx, rcx
  101.  
  102.     mov dword ptr [rsp + rax + 540], ebx
  103.  
  104.     add rax, 32
  105.  
  106.     cmp rax, 256
  107.  
  108.     jne .LBB666_1
  109.  
  110.     vmovdqa ymm0, ymmword ptr [rsp + 256]
  111.  
  112.     vpsubd ymm0, ymm0, ymmword ptr [rsp + 512]
  113.  
  114.     vmovdqa ymm1, ymmword ptr [rsp + 288]
  115.  
  116.     vmovdqa ymm2, ymmword ptr [rsp + 320]
  117.  
  118.     vmovdqa ymm3, ymmword ptr [rsp + 352]
  119.  
  120.     vpsubd ymm1, ymm1, ymmword ptr [rsp + 544]
  121.     vpsubd ymm2, ymm2, ymmword ptr [rsp + 576]
  122.     vpsubd ymm3, ymm3, ymmword ptr [rsp + 608]
  123.  
  124.     vmovdqa ymm4, ymmword ptr [rsp + 384]
  125.  
  126.     vpsubd ymm4, ymm4, ymmword ptr [rsp + 640]
  127.  
  128.     vmovdqa ymm5, ymmword ptr [rsp + 416]
  129.  
  130.     vpsubd ymm5, ymm5, ymmword ptr [rsp + 672]
  131.  
  132.     vmovdqa ymm6, ymmword ptr [rsp + 448]
  133.  
  134.     vmovdqa ymm7, ymmword ptr [rsp + 480]
  135.  
  136.     vpsubd ymm6, ymm6, ymmword ptr [rsp + 704]
  137.     vpsubd ymm7, ymm7, ymmword ptr [rsp + 736]
  138.  
  139.     mov rcx, -7
  140.  
  141.     vmovd r12d, xmm0
  142.     vmovd r9d, xmm1
  143.     vmovd r8d, xmm2
  144.     vmovd r10d, xmm3
  145.     vmovd r15d, xmm4
  146.     vmovd r11d, xmm5
  147.     vmovd r14d, xmm6
  148.     vmovd ebx, xmm7
  149.  
  150.     vmovdqa ymmword ptr [rsp], ymm0
  151.  
  152.     vmovdqa ymmword ptr [rsp + 32], ymm1
  153.  
  154.     vmovdqa ymmword ptr [rsp + 64], ymm2
  155.  
  156.     vmovdqa ymmword ptr [rsp + 96], ymm3
  157.  
  158.     vmovdqa ymmword ptr [rsp + 128], ymm4
  159.  
  160.     vmovdqa ymmword ptr [rsp + 160], ymm5
  161.  
  162.     vmovdqa ymmword ptr [rsp + 192], ymm6
  163.  
  164.     vmovdqa ymmword ptr [rsp + 224], ymm7
  165.  
  166.     .p2align    4, 0x90
  167. .LBB666_3:
  168.     lea esi, [r9 + r12]
  169.  
  170.     sub r12d, r9d
  171.  
  172.     lea edx, [r10 + r8]
  173.  
  174.     sub r8d, r10d
  175.  
  176.     lea edi, [r11 + r15]
  177.  
  178.     lea r9d, [rbx + r14]
  179.  
  180.     sub r15d, r11d
  181.  
  182.     sub r14d, ebx
  183.  
  184.     lea r10d, [rdx + rsi]
  185.  
  186.     sub esi, edx
  187.  
  188.     lea edx, [r8 + r12]
  189.  
  190.     lea eax, [r9 + rdi]
  191.  
  192.     sub r12d, r8d
  193.  
  194.     lea ebx, [r14 + r15]
  195.  
  196.     sub edi, r9d
  197.  
  198.     sub r15d, r14d
  199.  
  200.     lea r8d, [rax + r10]
  201.  
  202.     sub r10d, eax
  203.  
  204.     lea eax, [rbx + rdx]
  205.  
  206.     sub edx, ebx
  207.  
  208.     lea ebx, [rdi + rsi]
  209.  
  210.     sub esi, edi
  211.  
  212.     lea edi, [r15 + r12]
  213.  
  214.     sub r12d, r15d
  215.  
  216.     mov dword ptr [rsp + 4*rcx + 28], r8d
  217.  
  218.     mov dword ptr [rsp + 4*rcx + 60], eax
  219.  
  220.     mov dword ptr [rsp + 4*rcx + 92], ebx
  221.  
  222.     mov dword ptr [rsp + 4*rcx + 124], edi
  223.  
  224.     mov dword ptr [rsp + 4*rcx + 156], r10d
  225.  
  226.     mov dword ptr [rsp + 4*rcx + 188], edx
  227.  
  228.     mov dword ptr [rsp + 4*rcx + 220], esi
  229.  
  230.     mov dword ptr [rsp + 4*rcx + 252], r12d
  231.  
  232.     test rcx, rcx
  233.  
  234.     je .LBB666_4
  235.  
  236.     mov r12d, dword ptr [rsp + 4*rcx + 32]
  237.     mov r9d, dword ptr [rsp + 4*rcx + 64]
  238.  
  239.     mov r8d, dword ptr [rsp + 4*rcx + 96]
  240.     mov r10d, dword ptr [rsp + 4*rcx + 128]
  241.  
  242.     mov r15d, dword ptr [rsp + 4*rcx + 160]
  243.     mov r11d, dword ptr [rsp + 4*rcx + 192]
  244.  
  245.     mov r14d, dword ptr [rsp + 4*rcx + 224]
  246.     mov ebx, dword ptr [rsp + 4*rcx + 256]
  247.  
  248.     inc rcx
  249.  
  250.     jmp .LBB666_3
  251.  
  252. .LBB666_4:
  253.     xor eax, eax
  254.  
  255.     .p2align    4, 0x90
  256. .LBB666_5:
  257.     mov ecx, dword ptr [rsp + rax]
  258.  
  259.     mov esi, dword ptr [rsp + rax + 4]
  260.  
  261.     mov ebx, dword ptr [rsp + rax + 8]
  262.  
  263.     mov edx, dword ptr [rsp + rax + 20]
  264.  
  265.     mov edi, dword ptr [rsp + rax + 28]
  266.  
  267.     lea r10d, [rsi + rcx]
  268.  
  269.     sub ecx, esi
  270.  
  271.     mov esi, dword ptr [rsp + rax + 12]
  272.  
  273.     lea r9d, [rsi + rbx]
  274.  
  275.     sub ebx, esi
  276.  
  277.     mov esi, dword ptr [rsp + rax + 16]
  278.  
  279.     lea r8d, [r9 + r10]
  280.  
  281.     sub r10d, r9d
  282.  
  283.     lea r9d, [rbx + rcx]
  284.  
  285.     sub ecx, ebx
  286.  
  287.     lea r11d, [rdx + rsi]
  288.  
  289.     sub esi, edx
  290.  
  291.     mov edx, dword ptr [rsp + rax + 24]
  292.  
  293.     lea r14d, [rdi + rdx]
  294.  
  295.     sub edx, edi
  296.  
  297.     lea edi, [r14 + r11]
  298.  
  299.     sub r11d, r14d
  300.  
  301.     lea ebx, [rdx + rsi]
  302.  
  303.     sub esi, edx
  304.  
  305.     lea r14d, [rdi + r8]
  306.  
  307.     sub r8d, edi
  308.  
  309.     lea edi, [rbx + r9]
  310.  
  311.     sub r9d, ebx
  312.  
  313.     lea ebx, [r11 + r10]
  314.  
  315.     lea edx, [rsi + rcx]
  316.  
  317.     sub r10d, r11d
  318.  
  319.     sub ecx, esi
  320.  
  321.     mov dword ptr [rsp + rax], r14d
  322.  
  323.     mov dword ptr [rsp + rax + 4], edi
  324.  
  325.     mov dword ptr [rsp + rax + 8], ebx
  326.  
  327.     mov dword ptr [rsp + rax + 12], edx
  328.  
  329.     mov dword ptr [rsp + rax + 16], r8d
  330.  
  331.     mov dword ptr [rsp + rax + 20], r9d
  332.  
  333.     mov dword ptr [rsp + rax + 24], r10d
  334.  
  335.     mov dword ptr [rsp + rax + 28], ecx
  336.  
  337.     add rax, 32
  338.  
  339.     cmp rax, 256
  340.  
  341.     jne .LBB666_5
  342.  
  343.     vpabsd ymm0, ymmword ptr [rsp]
  344.  
  345.     vpabsd ymm1, ymmword ptr [rsp + 32]
  346.  
  347.     vpabsd ymm2, ymmword ptr [rsp + 96]
  348.  
  349.     vpaddd ymm0, ymm1, ymm0
  350.  
  351.     vpabsd ymm1, ymmword ptr [rsp + 64]
  352.  
  353.     vpaddd ymm1, ymm1, ymm2
  354.  
  355.     vpabsd ymm2, ymmword ptr [rsp + 160]
  356.  
  357.     vpaddd ymm0, ymm0, ymm1
  358.  
  359.     vpabsd ymm1, ymmword ptr [rsp + 128]
  360.  
  361.     vpaddd ymm1, ymm1, ymm2
  362.  
  363.     vpabsd ymm2, ymmword ptr [rsp + 192]
  364.  
  365.     vpaddd ymm1, ymm1, ymm2
  366.  
  367.     vpabsd ymm2, ymmword ptr [rsp + 224]
  368.  
  369.     vpaddd ymm0, ymm0, ymm1
  370.  
  371.     vpaddd ymm0, ymm0, ymm2
  372.  
  373.     vmovd eax, xmm0
  374.  
  375.     vpextrd ecx, xmm0, 1
  376.  
  377.     add rcx, rax
  378.  
  379.     vpextrd eax, xmm0, 2
  380.  
  381.     add rax, rcx
  382.  
  383.     vpextrd ecx, xmm0, 3
  384.  
  385.     vextracti128 xmm0, ymm0, 1
  386.  
  387.     add rcx, rax
  388.  
  389.     vmovd eax, xmm0
  390.     vpextrd edx, xmm0, 2
  391.  
  392.     add rax, rcx
  393.  
  394.     vpextrd ecx, xmm0, 1
  395.  
  396.     add rcx, rax
  397.  
  398.     vpextrd eax, xmm0, 3
  399.  
  400.     add rdx, rcx
  401.  
  402.     add rax, rdx
  403.  
  404.     lea rsp, [rbp - 32]
  405.  
  406.     pop rbx
  407.     pop r12
  408.     pop r14
  409.     pop r15
  410.     pop rbp
  411.     .cfi_def_cfa rsp, 8
  412.     vzeroupper
  413.  
  414.     ret
  415.  
  416. .Lfunc_end666:
  417.     .size   rav1e::asm::x86::dist::hbd::satd_kernel_8x8_hbd_avx2, .Lfunc_end666-rav1e::asm::x86::dist::hbd::satd_kernel_8x8_hbd_avx2
  418.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement