platform/upstream/openblas.git
3 years agosbgemm: cooperlake: unroll core loop by 2
Wangyang Guo [Tue, 17 Aug 2021 15:21:19 +0000 (23:21 +0800)]
sbgemm: cooperlake: unroll core loop by 2

3 years agosbgemm: cooperlake: reorder ptr increase for performance
Wangyang Guo [Tue, 17 Aug 2021 14:08:24 +0000 (22:08 +0800)]
sbgemm: cooperlake: reorder ptr increase for performance

3 years agosbgemm: cooperlake: fix bug in m64n12
Wangyang Guo [Tue, 17 Aug 2021 13:13:29 +0000 (21:13 +0800)]
sbgemm: cooperlake: fix bug in m64n12

3 years agosbgemm: cooperlake: tuning for block params
Wangyang Guo [Tue, 17 Aug 2021 11:35:40 +0000 (19:35 +0800)]
sbgemm: cooperlake: tuning for block params

3 years agosbgemm: cooperlake: kernel works for NN
Wangyang Guo [Mon, 16 Aug 2021 11:39:24 +0000 (19:39 +0800)]
sbgemm: cooperlake: kernel works for NN

3 years agosbgemm: cooperlake: change kernel size to 16x4
Wangyang Guo [Thu, 12 Aug 2021 01:46:49 +0000 (01:46 +0000)]
sbgemm: cooperlake: change kernel size to 16x4

3 years agosbgemm: cooperlake: implement sbgemm_tcopy_32
Wangyang Guo [Tue, 10 Aug 2021 06:14:45 +0000 (06:14 +0000)]
sbgemm: cooperlake: implement sbgemm_tcopy_32

3 years agosbgemm: cooperlake: add dummy source files
Wangyang Guo [Tue, 10 Aug 2021 03:23:45 +0000 (03:23 +0000)]
sbgemm: cooperlake: add dummy source files

3 years agoMerge pull request #3355 from martin-frbg/smallgemmcr
Martin Kroeker [Wed, 1 Sep 2021 22:27:23 +0000 (00:27 +0200)]
Merge pull request #3355 from martin-frbg/smallgemmcr

Add workaround for Windows10 macro name clash in small gemm kernel build rules

3 years agoAdd workaround for Windows10 macro name clash
Martin Kroeker [Wed, 1 Sep 2021 19:36:50 +0000 (21:36 +0200)]
Add workaround for Windows10 macro name clash

3 years agoMerge pull request #3352 from martin-frbg/3321-2n
Martin Kroeker [Wed, 1 Sep 2021 11:52:40 +0000 (13:52 +0200)]
Merge pull request #3352 from martin-frbg/3321-2n

Allocate an auxiliary struct when running out of preconfigured threads

3 years agoMerge pull request #3354 from nsait-linaro/fix_gmemm_align_win_arm
Martin Kroeker [Tue, 31 Aug 2021 19:47:21 +0000 (21:47 +0200)]
Merge pull request #3354 from nsait-linaro/fix_gmemm_align_win_arm

[win/arm64]: Explicit casting for GEMM_DEFAULT_ALIGN to create 64-bit value

3 years agoMake explicit conversion condition on _WIN64 flag
Niyas Sait [Tue, 31 Aug 2021 13:36:44 +0000 (14:36 +0100)]
Make explicit conversion condition on _WIN64 flag

3 years ago[win/arm64]: Explicit casting for GMEMM_DEFAULT_ALIGN to create 64-bit value
Niyas Sait [Tue, 24 Aug 2021 05:09:29 +0000 (06:09 +0100)]
[win/arm64]: Explicit casting for GMEMM_DEFAULT_ALIGN to create 64-bit value

Win64 uses LLP64 datamodel and unsigned long is only 32-bit. For 64-bit
architecture we need 64-bit mask to correctly generate address

3 years agoMerge pull request #3353 from guowangy/bf16-small-matrix-cooperlake
Martin Kroeker [Mon, 30 Aug 2021 18:39:51 +0000 (20:39 +0200)]
Merge pull request #3353 from guowangy/bf16-small-matrix-cooperlake

Enable existing SBGEMM kernel for Cooperlake by small-matrix path

3 years agoFix typo
Martin Kroeker [Mon, 30 Aug 2021 12:38:28 +0000 (14:38 +0200)]
Fix typo

3 years agoClean up debug messages
Martin Kroeker [Mon, 30 Aug 2021 12:21:25 +0000 (14:21 +0200)]
Clean up debug messages

3 years agosbgemm: remove unnecessary b0 files
Wangyang Guo [Mon, 30 Aug 2021 09:48:11 +0000 (17:48 +0800)]
sbgemm: remove unnecessary b0 files

3 years agosbgemm: cooperlake: make sure hot buffer aligned to 64
Wangyang Guo [Fri, 13 Aug 2021 10:43:41 +0000 (18:43 +0800)]
sbgemm: cooperlake: make sure hot buffer aligned to 64

3 years agosbgemm: add missing cblas_sbgemm definition
Wangyang Guo [Thu, 12 Aug 2021 16:51:24 +0000 (00:51 +0800)]
sbgemm: add missing cblas_sbgemm definition

3 years agosbgemm: cooperlake: enable SBGEMM by small matrix path
Wangyang Guo [Thu, 12 Aug 2021 06:10:51 +0000 (06:10 +0000)]
sbgemm: cooperlake: enable SBGEMM by small matrix path

3 years agoSmall Matrix: support BFLOAT16 data type
Wangyang Guo [Thu, 12 Aug 2021 03:14:18 +0000 (03:14 +0000)]
Small Matrix: support BFLOAT16 data type

3 years agoMerge pull request #3335 from guowangy/small-matrix-latest
Martin Kroeker [Sun, 29 Aug 2021 20:33:33 +0000 (22:33 +0200)]
Merge pull request #3335 from guowangy/small-matrix-latest

Add GEMM optimization for small matrix and single/double kernel for skylakex

3 years agoFix unmap logic
Martin Kroeker [Sun, 29 Aug 2021 17:50:24 +0000 (19:50 +0200)]
Fix unmap logic

3 years agoAdd likely() hints for gcc
Martin Kroeker [Sun, 29 Aug 2021 11:54:51 +0000 (13:54 +0200)]
Add likely() hints for gcc

3 years agoFix typo
Martin Kroeker [Sat, 28 Aug 2021 15:14:59 +0000 (17:14 +0200)]
Fix typo

3 years agoAdd auxiliary tracking space for thread buffer frees too
Martin Kroeker [Sat, 28 Aug 2021 15:03:53 +0000 (17:03 +0200)]
Add auxiliary tracking space for thread buffer frees too

3 years agoAllocate an auxiliary struct when running out of preconfigured threads
Martin Kroeker [Sat, 28 Aug 2021 12:18:36 +0000 (14:18 +0200)]
Allocate an auxiliary struct when running out of preconfigured threads

3 years agoMerge pull request #3348 from guowangy/skylakex-sgemv_t-fix
Martin Kroeker [Wed, 25 Aug 2021 20:43:45 +0000 (22:43 +0200)]
Merge pull request #3348 from guowangy/skylakex-sgemv_t-fix

skylakex sgemv_t kernel fix

3 years agoMerge pull request #3345 from nsait-linaro/windows_on_arm64
Martin Kroeker [Wed, 25 Aug 2021 13:49:55 +0000 (15:49 +0200)]
Merge pull request #3345 from nsait-linaro/windows_on_arm64

Add support for windows/arm64 targets with clang

3 years agosgemv: skylakex: fix build warning
Wangyang Guo [Wed, 25 Aug 2021 07:13:00 +0000 (07:13 +0000)]
sgemv: skylakex: fix build warning

3 years agosgemv: skylakex: bug fix for sgemv_t kernel in corner case
Wangyang Guo [Wed, 25 Aug 2021 07:07:27 +0000 (07:07 +0000)]
sgemv: skylakex: bug fix for sgemv_t kernel in corner case

3 years agoFix ctest.h to build using clang on windows
Niyas Sait [Mon, 16 Aug 2021 10:25:07 +0000 (11:25 +0100)]
Fix ctest.h to build using clang on windows

3 years agoadd support for building on windows/arm64 target
Niyas Sait [Mon, 16 Aug 2021 10:22:51 +0000 (11:22 +0100)]
add support for building on windows/arm64 target

3 years agoAdd more OSX build jobs to Azure CI (#3338)
Martin Kroeker [Sat, 14 Aug 2021 22:17:23 +0000 (00:17 +0200)]
Add more OSX build jobs to Azure CI (#3338)

* Add OSX build job with Homebrew OpenMP in a CMAKE build
* Check install step on OSX/gcc to make sure all include files are generated and installed as intended
* Add mixed clang/gfortran build with cmake on OSX
* move IOS ARMV7/ARMV8 crossbuilds from travis to azure

3 years agoSmall Matrix: skylakex: remove unnecessary b0 source files
Wangyang Guo [Fri, 13 Aug 2021 03:28:44 +0000 (03:28 +0000)]
Small Matrix: skylakex: remove unnecessary b0 source files

3 years agoSmall Matrix: reduce generic kernel source files
Wangyang Guo [Fri, 13 Aug 2021 03:17:38 +0000 (03:17 +0000)]
Small Matrix: reduce generic kernel source files

3 years agoMerge pull request #3344 from gxw-loongson/develop
Martin Kroeker [Thu, 12 Aug 2021 13:16:46 +0000 (15:16 +0200)]
Merge pull request #3344 from gxw-loongson/develop

Delete the macro instruction "li" and use "li.d" instead

3 years agoDelete the macro instruction "li" and use "li.d" instead
gxw [Tue, 10 Aug 2021 08:42:57 +0000 (16:42 +0800)]
Delete the macro instruction "li" and use "li.d" instead

Change-Id: Icff7981e2eb7df29ba5af1f8eb5be8443c67450f

3 years agoMerge pull request #3343 from cianciosa/develop
Martin Kroeker [Wed, 11 Aug 2021 23:28:18 +0000 (01:28 +0200)]
Merge pull request #3343 from cianciosa/develop

Fix undefined behavior checking the size of ARGC

3 years agoFix a small syntax error. A ( was accidently deleted.
cianciosa [Wed, 11 Aug 2021 16:08:34 +0000 (12:08 -0400)]
Fix a small syntax error. A ( was accidently deleted.

3 years agoCheck the total number of arguments passed insead of if the ARGV# is defined. This...
cianciosa [Wed, 11 Aug 2021 16:00:07 +0000 (12:00 -0400)]
Check the total number of arguments passed insead of if the ARGV# is defined. This fixes a problem when compling openblas as a subproject of another code.

3 years agoMerge pull request #3341 from RajalakshmiSR/dasump10
Martin Kroeker [Wed, 11 Aug 2021 07:39:10 +0000 (09:39 +0200)]
Merge pull request #3341 from RajalakshmiSR/dasump10

POWER10: Improving dasum performance

3 years agoPOWER10: Improving dasum performance
Rajalakshmi Srinivasaraghavan [Wed, 11 Aug 2021 03:06:04 +0000 (22:06 -0500)]
POWER10: Improving dasum performance

Unrolling a loop in dasum micro code to help in improving
POWER10 performance.

3 years agoMerge pull request #3336 from martin-frbg/traviscom
Zhang Xianyi [Thu, 5 Aug 2021 11:13:19 +0000 (19:13 +0800)]
Merge pull request #3336 from martin-frbg/traviscom

Disable all x86 jobs on Travis

3 years agoDisable all x86 jobs
Martin Kroeker [Thu, 5 Aug 2021 09:08:18 +0000 (11:08 +0200)]
Disable all x86 jobs

3 years agoMerge pull request #3332 from martin-frbg/travisbadge
Martin Kroeker [Thu, 5 Aug 2021 07:36:59 +0000 (09:36 +0200)]
Merge pull request #3332 from martin-frbg/travisbadge

Update Travis badge in README

3 years agoMerge pull request #3334 from Guobing-Chen/BF16_gemm_full_kernel
Martin Kroeker [Thu, 5 Aug 2021 06:01:13 +0000 (08:01 +0200)]
Merge pull request #3334 from Guobing-Chen/BF16_gemm_full_kernel

Add all SBGEMM kernels for IA AVX512-BF16 based platforms

3 years agoSmall Matrix: skip compile in unimplemented data type
Wangyang Guo [Thu, 5 Aug 2021 05:46:13 +0000 (05:46 +0000)]
Small Matrix: skip compile in unimplemented data type

3 years agoSmall Matrix: skylakex: fix build error in old compiler
Wangyang Guo [Thu, 5 Aug 2021 04:43:47 +0000 (04:43 +0000)]
Small Matrix: skylakex: fix build error in old compiler

3 years agoAdd all SBGEMM kernels for IA AVX512-BF16 based platforms
Chen, Guobing [Thu, 5 Aug 2021 03:11:14 +0000 (11:11 +0800)]
Add all SBGEMM kernels for IA AVX512-BF16 based platforms

Added all SBGEMM kernels including NN/NT/TN/TT for both ColMajor and
RowMajor, based on AVX512-BF16 ISA set on IA.

Signed-off-by: Chen, Guobing <guobing.chen@intel.com>
3 years agoSmall Matrix: enable by default for x86_64 arch
Wangyang Guo [Thu, 5 Aug 2021 02:57:58 +0000 (02:57 +0000)]
Small Matrix: enable by default for x86_64 arch

If no customized GEMM_SMALL_M_PERMIT kernel defined, it will just by pass to normal path.

3 years agoSmall Matrix: better handle with GEMM3M marco
Wangyang Guo [Thu, 5 Aug 2021 02:45:53 +0000 (02:45 +0000)]
Small Matrix: better handle with GEMM3M marco

3 years agoSmall Matrix: support cmake build
Wangyang Guo [Wed, 4 Aug 2021 08:50:15 +0000 (08:50 +0000)]
Small Matrix: support cmake build

3 years agoSmall Matrix: support DYNAMIC_ARCH build
Wangyang Guo [Wed, 4 Aug 2021 03:12:41 +0000 (03:12 +0000)]
Small Matrix: support DYNAMIC_ARCH build

3 years agoUpdate Travis badge in README
Martin Kroeker [Tue, 3 Aug 2021 08:45:45 +0000 (10:45 +0200)]
Update Travis badge in README

3 years agoSmall Matrix: disable low performance default kernel
Wangyang Guo [Tue, 15 Jun 2021 16:09:51 +0000 (16:09 +0000)]
Small Matrix: disable low performance default kernel

3 years agoMerge pull request #3330 from xianyi/issue3321
Martin Kroeker [Mon, 2 Aug 2021 20:36:05 +0000 (22:36 +0200)]
Merge pull request #3330 from xianyi/issue3321

Improve the "tried to allocate too many buffers" error message

3 years agoActually add the message to the TLS section
Martin Kroeker [Mon, 2 Aug 2021 12:50:14 +0000 (14:50 +0200)]
Actually add the message to the TLS section

3 years agoRebase source and edit TLS version of the message as well
Martin Kroeker [Mon, 2 Aug 2021 12:19:16 +0000 (14:19 +0200)]
Rebase source and edit TLS version of the message as well

3 years agoSmall Matrix: skylakex: add DGEMM_SMALL_M_PERMIT and tune for TN kernel
Wangyang Guo [Wed, 2 Jun 2021 14:55:54 +0000 (14:55 +0000)]
Small Matrix: skylakex: add DGEMM_SMALL_M_PERMIT and tune for TN kernel

3 years agoSmall Matrix: skylakex: dgemm nn: fix typo in idx load
Wangyang Guo [Wed, 2 Jun 2021 13:57:39 +0000 (13:57 +0000)]
Small Matrix: skylakex: dgemm nn: fix typo in idx load

3 years agoSmall Matrix: skylakex: add dgemm tn kernel
Wangyang Guo [Wed, 2 Jun 2021 13:56:40 +0000 (13:56 +0000)]
Small Matrix: skylakex: add dgemm tn kernel

3 years agoSmall Matrix: skylakex: add dgemm tt kernel
Wangyang Guo [Wed, 2 Jun 2021 11:45:44 +0000 (11:45 +0000)]
Small Matrix: skylakex: add dgemm tt kernel

3 years agoSmall Matrix: skylakex: add dgemm nt kernel
Wangyang Guo [Tue, 1 Jun 2021 14:23:56 +0000 (14:23 +0000)]
Small Matrix: skylakex: add dgemm nt kernel

3 years agoSmall Matrix: skylakex: add dgemm nn kernel
Wangyang Guo [Tue, 1 Jun 2021 11:31:50 +0000 (11:31 +0000)]
Small Matrix: skylakex: add dgemm nn kernel

3 years agoSmall Matrix: skylakex: add sgemm tt kernel
Wangyang Guo [Mon, 31 May 2021 14:53:03 +0000 (14:53 +0000)]
Small Matrix: skylakex: add sgemm tt kernel

3 years agoSmall Matrix: skylakex: add SGEMM_SMALL_M_PERMIT and tune for TN kernel
Wangyang Guo [Thu, 27 May 2021 11:26:49 +0000 (11:26 +0000)]
Small Matrix: skylakex: add SGEMM_SMALL_M_PERMIT and tune for TN kernel

3 years agoSmall Matrix: add GEMM_SMALL_MATRIX_PERMIT to tune small matrics case
Wangyang Guo [Thu, 27 May 2021 11:03:56 +0000 (11:03 +0000)]
Small Matrix: add GEMM_SMALL_MATRIX_PERMIT to tune small matrics case

3 years agoSmall Matrix: skylakex: add sgemm tn kernel
Wangyang Guo [Wed, 26 May 2021 16:30:57 +0000 (16:30 +0000)]
Small Matrix: skylakex: add sgemm tn kernel

3 years agoSmall Matrix: skylakex: sgemm nt: optimize for M < 12
Wangyang Guo [Fri, 21 May 2021 13:31:31 +0000 (13:31 +0000)]
Small Matrix: skylakex: sgemm nt: optimize for M < 12

3 years agoSmall Matrix: skylakex: add sgemm nt kernel
Wangyang Guo [Thu, 20 May 2021 11:47:10 +0000 (11:47 +0000)]
Small Matrix: skylakex: add sgemm nt kernel

3 years agoSmall Matrix: skylakex: sgemm nn: fix n6 conflicts with n4
Wangyang Guo [Thu, 20 May 2021 11:24:31 +0000 (11:24 +0000)]
Small Matrix: skylakex: sgemm nn: fix n6 conflicts with n4

3 years agoSmall Matrix: skylakex: sgemm nn: fix error when beta not zero
Wangyang Guo [Wed, 19 May 2021 10:50:03 +0000 (10:50 +0000)]
Small Matrix: skylakex: sgemm nn: fix error when beta not zero

3 years agoSmall Matrix: skylakex: sgemm nn: add n6 to improve performance
Wangyang Guo [Thu, 13 May 2021 10:16:54 +0000 (10:16 +0000)]
Small Matrix: skylakex: sgemm nn: add n6 to improve performance

3 years agoSmall Matrix: skylakex: sgemm nn: reduce store 4 N at a time
Wangyang Guo [Thu, 13 May 2021 09:41:51 +0000 (09:41 +0000)]
Small Matrix: skylakex: sgemm nn: reduce store 4 N at a time

3 years agoSmall Matrix: skylakex: sgemm nn: reduce store 4 M at a time
Wangyang Guo [Wed, 12 May 2021 17:08:18 +0000 (17:08 +0000)]
Small Matrix: skylakex: sgemm nn: reduce store 4 M at a time

3 years agoSmall Matrix: skylakex: sgemm nn: clean up unused code
Wangyang Guo [Tue, 11 May 2021 10:33:07 +0000 (10:33 +0000)]
Small Matrix: skylakex: sgemm nn: clean up unused code

3 years agoSmall Matrix: skylakex: sgemm_nn: optimize for M <= 8
Wangyang Guo [Tue, 11 May 2021 10:24:10 +0000 (10:24 +0000)]
Small Matrix: skylakex: sgemm_nn: optimize for M <= 8

3 years agoOptimize M < 16 using AVX512 mask
Wangyang Guo [Sat, 8 May 2021 15:59:14 +0000 (15:59 +0000)]
Optimize M < 16 using AVX512 mask

3 years agosmall matrix: SkylakeX: add SGEMM NN kernel
Wangyang Guo [Sat, 8 May 2021 10:45:10 +0000 (10:45 +0000)]
small matrix: SkylakeX: add SGEMM NN kernel

3 years agoRefs #2587 fix small matrix c/zgemm bug.
Xianyi Zhang [Fri, 28 Aug 2020 14:36:36 +0000 (22:36 +0800)]
Refs #2587 fix small matrix c/zgemm bug.

3 years agoRefs #2587 Add small matrix optimization reference kernel for c/zgemm.
Xianyi Zhang [Fri, 28 Aug 2020 13:00:54 +0000 (21:00 +0800)]
Refs #2587 Add small matrix optimization reference kernel for c/zgemm.

3 years agoChange a1b0 gemm to b0 gemm.
Xianyi Zhang [Thu, 27 Aug 2020 23:55:27 +0000 (07:55 +0800)]
Change a1b0 gemm to b0 gemm.

3 years agoRefs #2587 Fix typos.
Xianyi Zhang [Tue, 28 Apr 2020 16:19:19 +0000 (00:19 +0800)]
Refs #2587 Fix typos.

3 years agoFix gemm interface bug for small matrix.
Xianyi Zhang [Tue, 28 Apr 2020 15:15:20 +0000 (23:15 +0800)]
Fix gemm interface bug for small matrix.

3 years agoAdd alpha=1.0 beta=0.0 for small gemm.
Xianyi Zhang [Tue, 28 Apr 2020 14:35:36 +0000 (22:35 +0800)]
Add alpha=1.0 beta=0.0 for small gemm.

3 years agoAdd small marix optimization kernel interface.
Xianyi Zhang [Tue, 28 Apr 2020 11:01:36 +0000 (19:01 +0800)]
Add small marix optimization kernel interface.

make SMALL_MATRIX_OPT=1

3 years agoMerge pull request #3331 from gxw-loongson/develop
Martin Kroeker [Mon, 2 Aug 2021 05:21:46 +0000 (07:21 +0200)]
Merge pull request #3331 from gxw-loongson/develop

Fixed typos about LOONGARCH64

3 years agoAdd cmake support for LOONGARCH64
gxw [Mon, 2 Aug 2021 02:00:41 +0000 (10:00 +0800)]
Add cmake support for LOONGARCH64

3 years agoImprove the "tried to allocate too many buffers" error message
Martin Kroeker [Sat, 31 Jul 2021 15:23:40 +0000 (17:23 +0200)]
Improve the "tried to allocate too many buffers" error message

3 years agoMerge pull request #3329 from martin-frbg/issue3272
Martin Kroeker [Fri, 30 Jul 2021 18:39:38 +0000 (20:39 +0200)]
Merge pull request #3329 from martin-frbg/issue3272

Work around gcc11+ miscompiling C/ZBLAS3 tests at -O3

3 years agoDisable gfortran tree vectorizer to avoid gcc11+ miscompilation at O3
Martin Kroeker [Fri, 30 Jul 2021 12:46:19 +0000 (14:46 +0200)]
Disable gfortran tree vectorizer to avoid gcc11+ miscompilation at O3

3 years agoDisable gfortran tree vectorizer to avoid gcc11+ miscompilation at O3
Martin Kroeker [Fri, 30 Jul 2021 12:44:54 +0000 (14:44 +0200)]
Disable gfortran tree vectorizer to avoid gcc11+ miscompilation at O3

3 years agoDisable gfortran tree vectorizer to avoid gcc11+ miscompilation at O3
Martin Kroeker [Fri, 30 Jul 2021 12:21:08 +0000 (14:21 +0200)]
Disable gfortran tree vectorizer to avoid gcc11+ miscompilation at O3

3 years agoDisable gfortran tree vectorizer to avoid gcc11+ miscompilation at O3
Martin Kroeker [Fri, 30 Jul 2021 12:20:12 +0000 (14:20 +0200)]
Disable gfortran tree vectorizer to avoid gcc11+ miscompilation at O3

3 years agoFixed typos about LOONGARCH64
gxw [Fri, 30 Jul 2021 10:11:12 +0000 (18:11 +0800)]
Fixed typos about LOONGARCH64

3 years agoMerge pull request #3327 from h-vetinari/lapack597_redux
Martin Kroeker [Wed, 28 Jul 2021 21:04:02 +0000 (23:04 +0200)]
Merge pull request #3327 from h-vetinari/lapack597_redux

Complete the carry of lapack PR 597

3 years agoMerge pull request #3326 from wattoc/develop
Martin Kroeker [Wed, 28 Jul 2021 21:03:37 +0000 (23:03 +0200)]
Merge pull request #3326 from wattoc/develop

Include Haiku in processor count checks

3 years agoMerge pull request #3325 from gxw-loongson/develop
Martin Kroeker [Wed, 28 Jul 2021 21:03:15 +0000 (23:03 +0200)]
Merge pull request #3325 from gxw-loongson/develop

Add support for LOONGARCH64