Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 87 additions & 0 deletions .migration-bb-pr-31.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# Migrated from Bitbucket PR #31

**Title:** Add SIMD optimized code for the LoongArch platform.
**Author:** Hao Chen
**State:** MERGED
**Created:** 2024-12-17
**Original PR:** https://bitbucket.org/multicoreware/x265_git/pull-requests/31
**Original Diff:** https://api.bitbucket.org/2.0/repositories/multicoreware/x265_git/diff/multicoreware/x265_git:1b48507eb2a6%0D1b48507eb2a6?from_pullrequest_id=31&topic=true

## Description

* LoongArch64: Add loongarch support

Lsx and Lasx optimizations are automatically enabled by detecting the characteristics of the CPU.



Change-Id: I22de05163adb075856722d37f15ac8469ba5c6b0


* LoongArch64: Optimize functions in loopfilter module

Optimize functions in loopfilter module with lsx and lasx.


* LoongArch64: Add assembly check tool

1. Check if Registers are Saved and Restored
2. Check if 32-bit Integer Parameters are Properly Converted to 64-bit Integers

* LoongArch64: Optimize functions in ipfilter module

Optimize functions in ipfilter module with lsx and lasx.


* LoongArch64: Optimize functions in dct.S file - Patch 1

The optimized functions are as follows: dct32\_lsx/dct32\_lasx dct16\_lsx/dct16\_lasx idct16\_lsx/idct16\_lasx idct32\_lsx/idct32\_lasx dct8/4\_lsx idct8/4\_lsx dst4/idst4\_lsx scanPosLast\_lsx costCoeffNxN\_lsx


* LoongArch64: Optimize functions in dct.S file - Patch 2

The optimized functions are as follows: quant\_lsx/quant\_lasx dequant\_normal\_lsx/dequant\_normal\_lasx dequant\_scaling\_lsx/dequant\_scaling\_lasx nquant\_lsx/nquant\_lasx


* LoongArch64: Optimize functions in dct.S file - Patch 3

The optimized functions are as follows: count\_nonzero\_32\_lsx/count\_nonzero\_32\_lasx count\_nonzero\_16\_lsx/count\_nonzero\_16\_lasx count\_nonzero\_8\_lsx/count\_nonzero\_8\_lasx count\_nonzero\_4\_lsx/count\_nonzero\_4\_lasx costC1C2Flag\_lsx costCoeffRemain\_lsx findPosFirstLast\_lsx/findPosFirstLast\_lasx denoiseDct\_lsx/denoiseDct\_lasx


* LoongArch64: Optimize functions in mc-a.S file

Optimize functions in mc-a.S file with lsx and lasx.


* LoongArch64: Optimize functions in intrapred8.S file - Patch 1

The optimized functions are as follows: intra\_pred\_ang4\__lsx intra\_pred\_ang8lsx/intra\_pred\_ang8lasx intra\_pred\_ang16lsx/intra\_pred\_ang16lasx intra\_pred\_ang32_\_lsx intra\_pred\_dc4\_lsx intra\_pred\_dc8\_lsx intra\_pred\_dc16\_lsx intra\_pred\_dc32\_lsx


* LoongArch64: Optimize functions in intrapred8.S file - Patch 2

The optimized functions are as follows: intra\_filter\_4x4\_lsx/intra\_filter\_4x4\_lasx intra\_filter\_8x8\_lsx/intra\_filter\_8x8\_lasx intra\_filter\_16x16\_lsx/intra\_filter\_16x16\_lasx intra\_filter\_32x32\_lsx/intra\_filter\_32x32\_lasx intra\_pred\_planar\_4x4\_lsx intra\_pred\_planar\_8x8\_lsx intra\_pred\_planar\_16x16\_lsx intra\_pred\_planar\_32x32\_lsx


* LoongArch64: Optimize functions in pixel processing module

These functions optimized with lsx or lasx are contained in the pixel.S, sad.S and ssd.S files.


* LoongArch64: Optimize functions in mc-a2.S file

Optimize functions in mc-a2.S file with lsx and lasx.


* LoongArch64: Optimize functions in blockcopy8.S file - Patch 1

Optimize functions related to block copying, block filling and other opreations with lsx and lasx.


* LoongArch64: Optimize functions in blockcopy8.S file - Patch 2

The optimized functions are as follows: x265\_cpy2Dto1D\_shl_\_lsx/\_lasx x265\_cpy2Dto1D\_shr_\_lsx/\_lasx x265\_cpy1Dto2D\_shl_\_lsx/\_lasx x265\_cpy1Dto2D\_shr_\_lsx/\_lasx