daily update on 20240226 by nitload youmu

This commit is contained in:
YoumuLiu
2024-02-27 00:43:29 +08:00
parent a2241a5a58
commit 06e39f7a31
543 changed files with 230273 additions and 21423 deletions
@@ -0,0 +1,318 @@
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.37.32824.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
DD imagerel $LN4+87
DD imagerel $unwind$transpose3to3
; COMDAT xdata
xdata SEGMENT
$unwind$transpose3to3 DD 031701H
DD 06817H
DD 02204H
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\mat3.c
; COMDAT transpose3to2
_TEXT SEGMENT
source$ = 8
target$ = 16
transpose3to2 PROC ; COMDAT
; 8 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(1, 0, 1, 0));
00000 0f 10 41 34 movups xmm0, XMMWORD PTR [rcx+52]
; 9 : __m128 t2 = _mm_shuffle_ps(ALIGN(source->m[0][2]), *defaultVecPtr, _MM_SHUFFLE(1, 0, 1, 0));
00004 48 8b 05 00 00
00 00 mov rax, QWORD PTR defaultVecPtr
0000b 0f 10 51 30 movups xmm2, XMMWORD PTR [rcx+48]
0000f 0f 10 49 38 movups xmm1, XMMWORD PTR [rcx+56]
00013 0f c6 d0 44 shufps xmm2, xmm0, 68 ; 00000044H
00017 0f c6 08 44 shufps xmm1, XMMWORD PTR [rax], 68 ; 00000044H
; 10 :
; 11 : target->colum[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
0001b 0f 28 c2 movaps xmm0, xmm2
0001e 0f c6 c1 88 shufps xmm0, xmm1, 136 ; 00000088H
; 12 : target->colum[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
00022 0f c6 d1 dd shufps xmm2, xmm1, 221 ; 000000ddH
00026 0f 11 02 movups XMMWORD PTR [rdx], xmm0
00029 0f 11 52 10 movups XMMWORD PTR [rdx+16], xmm2
; 13 : }
0002d c3 ret 0
transpose3to2 ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\mat3.c
; COMDAT transpose3to3
_TEXT SEGMENT
source$ = 32
target$ = 40
transpose3to3 PROC ; COMDAT
; 16 : {
$LN4:
00000 48 83 ec 18 sub rsp, 24
; 17 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(1, 0, 1, 0));
00004 0f 10 61 34 movups xmm4, XMMWORD PTR [rcx+52]
; 18 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(3, 2, 3, 2));
; 19 : __m128 t2 = _mm_shuffle_ps(ALIGN(source->m[0][2]), *defaultVecPtr, _MM_SHUFFLE(1, 0, 1, 0));
00008 48 8b 05 00 00
00 00 mov rax, QWORD PTR defaultVecPtr
0000f 0f 10 69 38 movups xmm5, XMMWORD PTR [rcx+56]
00013 0f 29 34 24 movaps XMMWORD PTR [rsp], xmm6
00017 0f 10 71 30 movups xmm6, XMMWORD PTR [rcx+48]
0001b 0f 10 10 movups xmm2, XMMWORD PTR [rax]
0001e 0f 28 cd movaps xmm1, xmm5
00021 0f 28 de movaps xmm3, xmm6
00024 0f c6 ca 44 shufps xmm1, xmm2, 68 ; 00000044H
00028 0f c6 dc 44 shufps xmm3, xmm4, 68 ; 00000044H
0002c 0f c6 f4 ee shufps xmm6, xmm4, 238 ; 000000eeH
; 20 : __m128 t3 = _mm_shuffle_ps(ALIGN(source->m[0][2]), *defaultVecPtr, _MM_SHUFFLE(3, 2, 3, 2));
; 21 :
; 22 : target->colum[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
00030 0f 28 c3 movaps xmm0, xmm3
00033 0f c6 ea ee shufps xmm5, xmm2, 238 ; 000000eeH
; 23 : target->colum[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
; 24 : target->colum[2] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(2, 0, 2, 0));
00037 0f c6 f5 88 shufps xmm6, xmm5, 136 ; 00000088H
0003b 0f c6 c1 88 shufps xmm0, xmm1, 136 ; 00000088H
0003f 0f c6 d9 dd shufps xmm3, xmm1, 221 ; 000000ddH
00043 0f 11 72 20 movups XMMWORD PTR [rdx+32], xmm6
; 25 : }
00047 0f 28 34 24 movaps xmm6, XMMWORD PTR [rsp]
0004b 0f 11 02 movups XMMWORD PTR [rdx], xmm0
0004e 0f 11 5a 10 movups XMMWORD PTR [rdx+16], xmm3
00052 48 83 c4 18 add rsp, 24
00056 c3 ret 0
transpose3to3 ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\mat3.c
; COMDAT transpose3to4
_TEXT SEGMENT
source$ = 8
target$ = 16
transpose3to4 PROC ; COMDAT
; 30 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(1, 0, 1, 0));
00000 0f 10 41 34 movups xmm0, XMMWORD PTR [rcx+52]
; 31 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(3, 2, 3, 2));
; 32 : __m128 t2 = _mm_shuffle_ps(ALIGN(source->m[0][2]), *defaultVecPtr, _MM_SHUFFLE(1, 0, 1, 0));
00004 48 8b 05 00 00
00 00 mov rax, QWORD PTR defaultVecPtr
0000b 0f 10 61 30 movups xmm4, XMMWORD PTR [rcx+48]
0000f 0f 10 51 38 movups xmm2, XMMWORD PTR [rcx+56]
00013 0f 28 dc movaps xmm3, xmm4
00016 0f c6 e0 ee shufps xmm4, xmm0, 238 ; 000000eeH
0001a 0f c6 d8 44 shufps xmm3, xmm0, 68 ; 00000044H
0001e 0f 28 ca movaps xmm1, xmm2
00021 0f c6 08 44 shufps xmm1, XMMWORD PTR [rax], 68 ; 00000044H
; 33 : __m128 t3 = _mm_shuffle_ps(ALIGN(source->m[0][2]), *defaultVecPtr, _MM_SHUFFLE(3, 2, 3, 2));
; 34 :
; 35 : target->colum[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
00025 0f 28 c3 movaps xmm0, xmm3
00028 0f c6 10 ee shufps xmm2, XMMWORD PTR [rax], 238 ; 000000eeH
0002c 0f c6 c1 88 shufps xmm0, xmm1, 136 ; 00000088H
00030 0f 11 02 movups XMMWORD PTR [rdx], xmm0
; 36 : target->colum[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
; 37 : target->colum[2] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(2, 0, 2, 0));
00033 0f 28 c4 movaps xmm0, xmm4
00036 0f c6 c2 88 shufps xmm0, xmm2, 136 ; 00000088H
0003a 0f c6 d9 dd shufps xmm3, xmm1, 221 ; 000000ddH
; 38 : target->colum[3] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(3, 1, 3, 1));
0003e 0f c6 e2 dd shufps xmm4, xmm2, 221 ; 000000ddH
00042 0f 11 42 20 movups XMMWORD PTR [rdx+32], xmm0
00046 0f 11 5a 10 movups XMMWORD PTR [rdx+16], xmm3
0004a 0f 11 62 30 movups XMMWORD PTR [rdx+48], xmm4
; 39 : }
0004e c3 ret 0
transpose3to4 ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\mat3.c
; COMDAT det_mat3_internal
_TEXT SEGMENT
c0$ = 8
c1$ = 16
c2$ = 24
det_mat3_internal PROC ; COMDAT
; 43 :
; 44 : //let adding row aligned
; 45 : __m128 addc1 = _mm_shuffle_ps(c1, c1, _MM_SHUFFLE(3, 0, 2, 1));
00000 0f 10 1a movups xmm3, XMMWORD PTR [rdx]
; 46 : __m128 addc2 = _mm_shuffle_ps(c2, c2, _MM_SHUFFLE(3, 1, 0, 2));
00003 41 0f 10 10 movups xmm2, XMMWORD PTR [r8]
00007 0f 28 e3 movaps xmm4, xmm3
0000a 0f c6 e3 c9 shufps xmm4, xmm3, 201 ; 000000c9H
0000e 0f 28 c2 movaps xmm0, xmm2
; 47 :
; 48 : //let sub row aligned
; 49 : __m128 subc1 = _mm_shuffle_ps(c1, c1, _MM_SHUFFLE(3, 1, 0, 2));
; 50 : __m128 subc2 = _mm_shuffle_ps(c2, c2, _MM_SHUFFLE(3, 0, 2, 1));
; 51 :
; 52 : //multple all add row
; 53 : __m128 cache = _mm_mul_ps(c0, addc1);
00011 0f 59 21 mulps xmm4, XMMWORD PTR [rcx]
00014 0f c6 c2 d2 shufps xmm0, xmm2, 210 ; 000000d2H
00018 0f c6 db d2 shufps xmm3, xmm3, 210 ; 000000d2H
; 54 : cache = _mm_mul_ps(cache, addc2);
; 55 :
; 56 : //multiple all sub row
; 57 : __m128 sub = _mm_mul_ps(c0, subc1);
0001c 0f 59 19 mulps xmm3, XMMWORD PTR [rcx]
0001f 0f 59 e0 mulps xmm4, xmm0
00022 0f c6 d2 c9 shufps xmm2, xmm2, 201 ; 000000c9H
; 58 : sub = _mm_mul_ps(sub, subc2);
00026 0f 59 da mulps xmm3, xmm2
; 59 :
; 60 : //main-corner sub sub-corner
; 61 : cache = _mm_sub_ps(cache, sub);
00029 0f 5c e3 subps xmm4, xmm3
; 62 :
; 63 : __m128 ret = _mm_hadd_ps(cache, cache); //element 1 add element 2
0002c 0f 28 c4 movaps xmm0, xmm4
0002f f2 0f 7c c4 haddps xmm0, xmm4
; 64 : ret = _mm_add_ps(ret, cache); //(e1 add e2) add element 3
00033 0f 58 c4 addps xmm0, xmm4
; 65 :
; 66 :
; 67 : return ret.m128_f32[2];
00036 0f c6 c0 aa shufps xmm0, xmm0, 170 ; 000000aaH
; 68 : }
0003a c3 ret 0
det_mat3_internal ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\mat3.c
; COMDAT det_mat3
_TEXT SEGMENT
mat$ = 8
det_mat3 PROC ; COMDAT
; 72 : 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]
; 45 : __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
; 46 : __m128 addc2 = _mm_shuffle_ps(c2, c2, _MM_SHUFFLE(3, 1, 0, 2));
0000f 0f 28 c2 movaps xmm0, xmm2
; 47 :
; 48 : //let sub row aligned
; 49 : __m128 subc1 = _mm_shuffle_ps(c1, c1, _MM_SHUFFLE(3, 1, 0, 2));
; 50 : __m128 subc2 = _mm_shuffle_ps(c2, c2, _MM_SHUFFLE(3, 0, 2, 1));
; 51 :
; 52 : //multple all add row
; 53 : __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
; 54 : cache = _mm_mul_ps(cache, addc2);
; 55 :
; 56 : //multiple all sub row
; 57 : __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
; 58 : sub = _mm_mul_ps(sub, subc2);
00027 0f 59 da mulps xmm3, xmm2
; 59 :
; 60 : //main-corner sub sub-corner
; 61 : cache = _mm_sub_ps(cache, sub);
0002a 0f 5c e3 subps xmm4, xmm3
; 62 :
; 63 : __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
; 64 : ret = _mm_add_ps(ret, cache); //(e1 add e2) add element 3
00034 0f 58 c4 addps xmm0, xmm4
; 72 : return det_mat3_internal(
00037 0f c6 c0 aa shufps xmm0, xmm0, 170 ; 000000aaH
; 73 : mat->colum[0],
; 74 : mat->colum[1],
; 75 : mat->colum[2]
; 76 : );
; 77 : }
0003b c3 ret 0
det_mat3 ENDP
_TEXT ENDS
END