diff --git a/.migration-bb-pr-31.md b/.migration-bb-pr-31.md new file mode 100644 index 000000000..6c7c101c6 --- /dev/null +++ b/.migration-bb-pr-31.md @@ -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 + + + +‌