Advertisement
Guest User

Untitled

a guest
Jun 30th, 2014
270
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. [global ff_hevc_put_hevc_epel_hv16_8_avx2]
  2. %line 1371+0 libavcodec/x86/hevc_mc.asm
  3. [align 16]
  4.  ff_hevc_put_hevc_epel_hv16_8_avx2:
  5. [cpu amdnop]
  6.  mov rax, qword [rsp + 0 + 8]
  7.  
  8.  sub rdx, rcx
  9.  
  10.  sub R9, 1
  11.  sub rax, 1
  12.  shl R9, 6
  13.  shl rax, 6
  14.  
  15.  vmovdqa ymm14, [hevc_epel_filters_avx2_8 + R9]
  16.  
  17.  vmovdqa ymm15, [hevc_epel_filters_avx2_8 + R9+32]
  18.  lea R10, [rcx*3]
  19.  
  20.  
  21.  vmovdqa ymm12, [hevc_epel_filters_avx2_10 + rax]
  22.  
  23.  vmovdqa ymm13, [hevc_epel_filters_avx2_10 + rax+32]
  24.  
  25.  vmovdqu ymm0, [rdx-1 ]
  26.  
  27.  vmovdqu ymm1, [rdx-1+ 1]
  28.  
  29.  vmovdqu ymm2, [rdx-1+2*1]
  30.  
  31.  vmovdqu ymm3, [rdx-1+3*1]
  32.  
  33.  vpunpckhbw ymm10, ymm0, ymm1
  34.  
  35.  vpunpcklbw ymm0, ymm1
  36.  vinserti128 ymm0, ymm0, xmm10, 1
  37.  
  38.  
  39.  vpunpckhbw ymm10, ymm2, ymm3
  40.  
  41.  vpunpcklbw ymm2, ymm3
  42.  vinserti128 ymm2, ymm2, xmm10, 1
  43.  
  44.  vpmaddubsw ymm0, ymm14
  45.  
  46.  vpmaddubsw ymm2, ymm15
  47.  
  48.  vpaddw ymm0, ymm2
  49.  
  50.  vpmaddubsw ymm1, ymm14
  51.  
  52.  vpmaddubsw ymm3, ymm15
  53.  
  54.  vpaddw ymm1, ymm3
  55.  lea rdx, [rdx + rcx]
  56.  
  57.  vmovdqu ymm4, [rdx-1 ]
  58.  
  59.  vmovdqu ymm1, [rdx-1+ 1]
  60.  
  61.  vmovdqu ymm2, [rdx-1+2*1]
  62.  
  63.  vmovdqu ymm3, [rdx-1+3*1]
  64.  
  65.  vpunpckhbw ymm10, ymm4, ymm1
  66.  
  67.  vpunpcklbw ymm4, ymm1
  68.  vinserti128 ymm4, ymm4, xmm10, 1
  69.  
  70.  
  71.  vpunpckhbw ymm10, ymm2, ymm3
  72.  
  73.  vpunpcklbw ymm2, ymm3
  74.  vinserti128 ymm2, ymm2, xmm10, 1
  75.  
  76.  vpmaddubsw ymm4, ymm14
  77.  
  78.  vpmaddubsw ymm2, ymm15
  79.  
  80.  vpaddw ymm4, ymm2
  81.  
  82.  vpmaddubsw ymm1, ymm14
  83.  
  84.  vpmaddubsw ymm3, ymm15
  85.  
  86.  vpaddw ymm1, ymm3
  87.  lea rdx, [rdx + rcx]
  88.  
  89.  vmovdqu ymm5, [rdx-1 ]
  90.  
  91.  vmovdqu ymm1, [rdx-1+ 1]
  92.  
  93.  vmovdqu ymm2, [rdx-1+2*1]
  94.  
  95.  vmovdqu ymm3, [rdx-1+3*1]
  96.  
  97.  vpunpckhbw ymm10, ymm5, ymm1
  98.  
  99.  vpunpcklbw ymm5, ymm1
  100.  vinserti128 ymm5, ymm5, xmm10, 1
  101.  
  102.  
  103.  vpunpckhbw ymm10, ymm2, ymm3
  104.  
  105.  vpunpcklbw ymm2, ymm3
  106.  vinserti128 ymm2, ymm2, xmm10, 1
  107.  
  108.  vpmaddubsw ymm5, ymm14
  109.  
  110.  vpmaddubsw ymm2, ymm15
  111.  
  112.  vpaddw ymm5, ymm2
  113.  
  114.  vpmaddubsw ymm1, ymm14
  115.  
  116.  vpmaddubsw ymm3, ymm15
  117.  
  118.  vpaddw ymm1, ymm3
  119.  lea rdx, [rdx + rcx]
  120. .loop
  121.  
  122.  vmovdqu ymm6, [rdx-1 ]
  123.  
  124.  vmovdqu ymm1, [rdx-1+ 1]
  125.  
  126.  vmovdqu ymm2, [rdx-1+2*1]
  127.  
  128.  vmovdqu ymm3, [rdx-1+3*1]
  129.  
  130.  vpunpckhbw ymm10, ymm6, ymm1
  131.  
  132.  vpunpcklbw ymm6, ymm1
  133.  vinserti128 ymm6, ymm6, xmm10, 1
  134.  
  135.  
  136.  vpunpckhbw ymm10, ymm2, ymm3
  137.  
  138.  vpunpcklbw ymm2, ymm3
  139.  vinserti128 ymm2, ymm2, xmm10, 1
  140.  
  141.  vpmaddubsw ymm6, ymm14
  142.  
  143.  vpmaddubsw ymm2, ymm15
  144.  
  145.  vpaddw ymm6, ymm2
  146.  
  147.  vpmaddubsw ymm1, ymm14
  148.  
  149.  vpmaddubsw ymm3, ymm15
  150.  
  151.  vpaddw ymm1, ymm3
  152.  
  153.  vpunpckhwd ymm10, ymm0, ymm4
  154.  
  155.  vpunpcklwd ymm7, ymm0, ymm4
  156.  vextracti128 xmm1, ymm7, 1
  157.  vinserti128 ymm1, ymm10, xmm1, 0
  158.  vinserti128 ymm7, ymm7, xmm10, 1
  159.  
  160.  
  161.  vpunpckhwd ymm10, ymm5, ymm6
  162.  
  163.  vpunpcklwd ymm2, ymm5, ymm6
  164.  vextracti128 xmm3, ymm2, 1
  165.  vinserti128 ymm3, ymm10, xmm3, 0
  166.  vinserti128 ymm2, ymm2, xmm10, 1
  167.  
  168.  vpmaddwd ymm7, ymm12
  169.  
  170.  vpmaddwd ymm2, ymm13
  171.  
  172.  vpaddd ymm7, ymm2
  173.  
  174.  vpmaddwd ymm1, ymm12
  175.  
  176.  vpmaddwd ymm3, ymm13
  177.  
  178.  vpaddd ymm1, ymm3
  179.  
  180.  vpsrad ymm7, 14-8
  181.  
  182.  vpsrad ymm1, 14-8
  183.  
  184.  vpackssdw ymm7, ymm1
  185.  vpermq ymm7, ymm7, 216
  186.  
  187.  vmovdqu [rdi], ymm7
  188.  
  189.  vmovdqa ymm0, ymm4
  190.  
  191.  vmovdqa ymm4, ymm5
  192.  
  193.  vmovdqa ymm5, ymm6
  194.  lea rdi, [rdi+2*rsi]
  195.  lea rdx, [rdx+ rcx]
  196.  dec R8d
  197.  jnz .loop
  198.  ..@1363.branch_instr:
  199.  vzeroupper
  200.  ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement