mirror of
https://github.com/opencv/opencv.git
synced 2026-07-31 00:03:03 +04:00
bdf348c13a
Added MLAS third party module and integrated into GeMM path #28934 ### Pull Request Readiness Checklist See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request - [x] I agree to contribute to the project under Apache 2 License. - [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV - [x] The PR is proposed to the proper branch - [x] There is a reference to the original bug report and related work - [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable Patch to opencv_extra has the same branch name. - [x] The feature is well documented and sample code can be built with the project CMake
51 lines
1.2 KiB
C
51 lines
1.2 KiB
C
/*++
|
|
|
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
|
|
Licensed under the MIT License.
|
|
|
|
Module Name:
|
|
|
|
SgemmKernelCommon.h
|
|
|
|
Abstract:
|
|
|
|
This module contains common kernel macros and structures for the single
|
|
precision matrix/matrix multiply operation (SGEMM).
|
|
|
|
--*/
|
|
|
|
//
|
|
// Define the single precision parameters.
|
|
//
|
|
|
|
.equ .LFgemmElementShift, 2
|
|
.equ .LFgemmElementSize, 1 << .LFgemmElementShift
|
|
|
|
#include "FgemmKernelCommon.h"
|
|
|
|
//
|
|
// Define the typed instructions for single precision.
|
|
//
|
|
|
|
FGEMM_TYPED_INSTRUCTION(addpf, addps)
|
|
FGEMM_TYPED_INSTRUCTION(movsf, movss)
|
|
FGEMM_TYPED_INSTRUCTION(movupf, movups)
|
|
|
|
FGEMM_TYPED_INSTRUCTION(vaddpf, vaddps)
|
|
FGEMM_TYPED_INSTRUCTION(vbroadcastsf, vbroadcastss)
|
|
FGEMM_TYPED_INSTRUCTION(vfmadd213pf, vfmadd213ps)
|
|
FGEMM_TYPED_INSTRUCTION(vfmadd231pf, vfmadd231ps)
|
|
FGEMM_TYPED_INSTRUCTION(vmaskmovpf, vmaskmovps)
|
|
FGEMM_TYPED_INSTRUCTION(vmovapf, vmovaps)
|
|
FGEMM_TYPED_INSTRUCTION(vmovsf, vmovss)
|
|
FGEMM_TYPED_INSTRUCTION(vmovupf, vmovups)
|
|
FGEMM_TYPED_INSTRUCTION(vmulpf, vmulps)
|
|
FGEMM_TYPED_INSTRUCTION(vxorpf, vxorps)
|
|
|
|
.macro vfmadd231pf_bcst DestReg, SrcReg, Address
|
|
|
|
vfmadd231ps \DestReg\(), \SrcReg\(), \Address\(){1to16}
|
|
|
|
.endm
|