Files
stgsharp/源代码/StgShqrpGraphic/x64/Release/mat3.cod
T
2023-08-30 22:49:11 +08:00

97 lines
2.6 KiB
Plaintext

; Listing generated by Microsoft (R) Optimizing Compiler Version 19.36.32537.0
include listing.inc
INCLUDELIB OLDNAMES
PUBLIC det_mat3
PUBLIC det_mat3_internal
PUBLIC transpose3to4
PUBLIC transpose3to3
PUBLIC transpose3to2
; COMDAT pdata
pdata SEGMENT
$pdata$transpose3to3 DD imagerel $LN4@transpose3
DD imagerel $LN4@transpose3+86
DD imagerel $unwind$transpose3to3
; COMDAT xdata
xdata SEGMENT
$unwind$transpose3to3 DQ 00000681700031701r ; 5.65448e-310
DD 02204H
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgShqrpGraphic\mat3.c
; COMDAT det_mat3
_TEXT SEGMENT
mat$ = 8
det_mat3 PROC ; COMDAT
; 70 : return det_mat3_internal(
00000 0f 10 59 10 movups xmm3, XMMWORD PTR [rcx+16]
00004 0f 10 51 20 movups xmm2, XMMWORD PTR [rcx+32]
; 43 : __m128 addc1 = _mm_shuffle_ps(c1, c1, _MM_SHUFFLE(3, 0, 2, 1));
00008 0f 28 e3 movaps xmm4, xmm3
0000b 0f c6 e3 c9 shufps xmm4, xmm3, 201 ; 000000c9H
; 44 : __m128 addc2 = _mm_shuffle_ps(c2, c2, _MM_SHUFFLE(3, 1, 0, 2));
0000f 0f 28 c2 movaps xmm0, xmm2
; 45 :
; 46 : //let sub row aligned
; 47 : __m128 subc1 = _mm_shuffle_ps(c1, c1, _MM_SHUFFLE(3, 1, 0, 2));
; 48 : __m128 subc2 = _mm_shuffle_ps(c2, c2, _MM_SHUFFLE(3, 0, 2, 1));
; 49 :
; 50 : //multple all add row
; 51 : __m128 cache = _mm_mul_ps(c0,addc1);
00012 0f 59 21 mulps xmm4, XMMWORD PTR [rcx]
00015 0f c6 c2 d2 shufps xmm0, xmm2, 210 ; 000000d2H
00019 0f c6 db d2 shufps xmm3, xmm3, 210 ; 000000d2H
; 52 : cache = _mm_mul_ps(cache,addc2);
; 53 :
; 54 : //multiple all sub row
; 55 : __m128 sub = _mm_mul_ps(c0, subc1);
0001d 0f 59 19 mulps xmm3, XMMWORD PTR [rcx]
00020 0f 59 e0 mulps xmm4, xmm0
00023 0f c6 d2 c9 shufps xmm2, xmm2, 201 ; 000000c9H
; 56 : sub = _mm_mul_ps(sub, subc2);
00027 0f 59 da mulps xmm3, xmm2
; 57 :
; 58 : //main-corner sub sub-corner
; 59 : cache = _mm_sub_ps(cache,sub);
0002a 0f 5c e3 subps xmm4, xmm3
; 60 :
; 61 : __m128 ret = _mm_hadd_ps(cache,cache); //element 1 add element 2
0002d 0f 28 c4 movaps xmm0, xmm4
00030 f2 0f 7c c4 haddps xmm0, xmm4
; 62 : ret = _mm_add_ps(ret, cache); //(e1 add e2) add element 3
00034 0f 58 c4 addps xmm0, xmm4
; 70 : return det_mat3_internal(
00037 0f c6 c0 aa shufps xmm0, xmm0, 170 ; 000000aaH
; 71 : mat->colum[0],
; 72 : mat->colum[1],
; 73 : mat->colum[2]
; 74 : );
; 75 : }
0003b c3 ret 0
det_mat3 ENDP
_TEXT ENDS
END