Files
stgsharp/StgSharp.C/x64/Debug/vector_dot.cod
T

1712 lines
56 KiB
Plaintext

; Listing generated by Microsoft (R) Optimizing Compiler Version 19.41.34120.0
include listing.inc
INCLUDELIB MSVCRTD
INCLUDELIB OLDNAMES
_DATA SEGMENT
COMM infolog:BYTE:0200H
_DATA ENDS
msvcjmc SEGMENT
__7583A0D2_mmintrin@h DB 01H
__DDA0A690_concurrencysal@h DB 01H
__9ECC08BE_sal@h DB 01H
__E05D733A_vadefs@h DB 01H
__6A355E0E_vcruntime@h DB 01H
__1B0272D9_corecrt@h DB 01H
__45DED006_corecrt_malloc@h DB 01H
__FA77ED4C_malloc@h DB 01H
__EAE0325A_xmmintrin@h DB 01H
__0ED14FEE_winpackagefamily@h DB 01H
__F92EF742_winapifamily@h DB 01H
__22E515EB_sdkddkver@h DB 01H
__A09A3A7D_excpt@h DB 01H
__AC8FA393_stdarg@h DB 01H
__29F49F40_specstrings_undef@h DB 01H
__D0F42932_specstrings_strict@h DB 01H
__F00405FD_sdv_driverspecs@h DB 01H
__173E09CA_driverspecs@h DB 01H
__9A452361_specstrings@h DB 01H
__74484FB3_corecrt_wctype@h DB 01H
__1EC467ED_ctype@h DB 01H
__98517906_kernelspecs@h DB 01H
__D3497022_basetsd@h DB 01H
__61CC25A1_errno@h DB 01H
__890838BD_vcruntime_string@h DB 01H
__E4C945B4_corecrt_memcpy_s@h DB 01H
__8EAFF484_corecrt_memory@h DB 01H
__6490AEC5_corecrt_wstring@h DB 01H
__E8295E1E_string@h DB 01H
__7FCB5136_guiddef@h DB 01H
__FF8A9E11_pshpack4@h DB 01H
__D5438902_poppack@h DB 01H
__FB07E2A3_pshpack2@h DB 01H
__F6906775_pshpack8@h DB 01H
__F9415CFA_pshpack1@h DB 01H
__E58C6F1C_apiset@h DB 01H
__A5C52262_ktmtypes@h DB 01H
__FBBA8F9D_winnt@h DB 01H
__A32D3D2C_minwindef@h DB 01H
__7D798299_windef@h DB 01H
__9AE108E9_apisetcconv@h DB 01H
__9CE53D2C_minwinbase@h DB 01H
__5D0AA210_apiquery2@h DB 01H
__4DD4E726_processenv@h DB 01H
__3575CC96_fileapi@h DB 01H
__8EA220E6_fileapifromapp@h DB 01H
__BF9B31FE_debugapi@h DB 01H
__C3AFE134_utilapiset@h DB 01H
__76F69E51_handleapi@h DB 01H
__7E63D784_errhandlingapi@h DB 01H
__FFA7003C_fibersapi@h DB 01H
__8971CECF_namedpipeapi@h DB 01H
__46C9D8A6_profileapi@h DB 01H
__98D4F0A3_heapapi@h DB 01H
__50EF2A88_ioapiset@h DB 01H
__92EA1464_synchapi@h DB 01H
__A53D8AED_interlockedapi@h DB 01H
__B506CAAF_processthreadsapi@h DB 01H
__FF735694_sysinfoapi@h DB 01H
__29589789_memoryapi@h DB 01H
__E9C7A663_enclaveapi@h DB 01H
__D035F9F7_threadpoollegacyapiset@h DB 01H
__C899130C_threadpoolapiset@h DB 01H
__E0441EE7_jobapi@h DB 01H
__CEF86838_jobapi2@h DB 01H
__35AC6B9A_wow64apiset@h DB 01H
__C8AE41A5_libloaderapi@h DB 01H
__CC9E232D_securitybaseapi@h DB 01H
__C9D0C9B8_namespaceapi@h DB 01H
__30FF9CAD_systemtopologyapi@h DB 01H
__4D358795_processtopologyapi@h DB 01H
__40446D10_securityappcontainer@h DB 01H
__3A952EDF_realtimeapiset@h DB 01H
__F4865F4B_winerror@h DB 01H
__53C1BD93_timezoneapi@h DB 01H
__1FFBEDBF_winbase@h DB 01H
__43D3FA34_wingdi@h DB 01H
__D24A7391_tvout@h DB 01H
__7713A6C8_winuser@h DB 01H
__0B345F71_datetimeapi@h DB 01H
__9AC6960C_winnls@h DB 01H
__973A40A8_stringapiset@h DB 01H
__CC46FEE2_wincontypes@h DB 01H
__97D70BE1_consoleapi@h DB 01H
__27EC5E18_consoleapi2@h DB 01H
__262E342F_consoleapi3@h DB 01H
__641DCD70_wincon@h DB 01H
__5A96C7A7_verrsrc@h DB 01H
__B69C6FF2_winver@h DB 01H
__7AEB8C37_reason@h DB 01H
__59F1A8A9_winreg@h DB 01H
__EE0E2B7F_wnnc@h DB 01H
__DCDB7054_winnetwk@h DB 01H
__81DDEDE3_stralign@h DB 01H
__2134D1B4_winsvc@h DB 01H
__11C07376_mcx@h DB 01H
__577CE3E7_ime_cmodes@h DB 01H
__1E72C31E_imm@h DB 01H
__E15BF856_windows@h DB 01H
__8FC206A7_ssc_internal@h DB 01H
__44420885_corecrt_stdio_config@h DB 01H
__AB601D8D_corecrt_wstdio@h DB 01H
__C1EC35D3_stdio@h DB 01H
__13F5961F_stddef@h DB 01H
__FD6DBD68_corecrt_search@h DB 01H
__E2E33A61_corecrt_wstdlib@h DB 01H
__26263363_limits@h DB 01H
__6E5ACABA_stdlib@h DB 01H
__9049550C_stb_image@h DB 01H
__98501D5C_stdint@h DB 01H
__264E89B8_khrplatform@h DB 01H
__799FCA13_gl@h DB 01H
__A57296D0_wgl@h DB 01H
__417F438F_glfw3@h DB 01H
__8F82BB96_emmintrin@h DB 01H
__5023D31F_pmmintrin@h DB 01H
__E0FAA09D_tmmintrin@h DB 01H
__C9C1B51E_smmintrin@h DB 01H
__ACA33CD2_nmmintrin@h DB 01H
__7918C69C_wmmintrin@h DB 01H
__B28C8B9B_zmmintrin@h DB 01H
__85982951_immintrin@h DB 01H
__19139D6C_assert@h DB 01H
__0C16F932_StgSharpC@h DB 01H
__B2F9F159_intrin0@inl@h DB 01H
__0833F55F_setjmp@h DB 01H
__3F5BC814_ammintrin@h DB 01H
__2E054928_intrin@h DB 01H
__5A8332CE_isa_availability@h DB 01H
__EB6C2FE1_ssc_intrinsic@h DB 01H
__43BC74EB_vector_dot@c DB 01H
msvcjmc ENDS
CONST SEGMENT
avxdot_indices DD 00H
DD 04H
DD 01H
DD 05H
DD 02H
DD 03H
DD 06H
DD 07H
CONST ENDS
PUBLIC dot_41_sse
PUBLIC dot_31_sse
PUBLIC dot_41_avx
PUBLIC dot_31_avx
PUBLIC dot_32_sse
PUBLIC dot_32_avx
PUBLIC dot_42_sse
PUBLIC dot_42_avx
PUBLIC dot_43_sse
PUBLIC dot_43_avx
PUBLIC __JustMyCode_Default
EXTRN _RTC_InitBase:PROC
EXTRN _RTC_Shutdown:PROC
EXTRN __CheckForDebuggerJustMyCode:PROC
; COMDAT pdata
pdata SEGMENT
$pdata$dot_41_sse DD imagerel $LN3
DD imagerel $LN3+281
DD imagerel $unwind$dot_41_sse
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$dot_31_sse DD imagerel $LN3
DD imagerel $LN3+219
DD imagerel $unwind$dot_31_sse
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$dot_41_avx DD imagerel $LN3
DD imagerel $LN3+215
DD imagerel $unwind$dot_41_avx
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$dot_31_avx DD imagerel $LN3
DD imagerel $LN3+223
DD imagerel $unwind$dot_31_avx
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$dot_32_sse DD imagerel $LN3
DD imagerel $LN3+512
DD imagerel $unwind$dot_32_sse
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$dot_32_avx DD imagerel $LN3
DD imagerel $LN3+343
DD imagerel $unwind$dot_32_avx
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$dot_42_sse DD imagerel $LN3
DD imagerel $LN3+678
DD imagerel $unwind$dot_42_sse
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$dot_42_avx DD imagerel $LN3
DD imagerel $LN3+394
DD imagerel $unwind$dot_42_avx
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$dot_43_sse DD imagerel $LN3
DD imagerel $LN3+161
DD imagerel $unwind$dot_43_sse
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$dot_43_avx DD imagerel $LN3
DD imagerel $LN3+537
DD imagerel $unwind$dot_43_avx
pdata ENDS
; COMDAT rtc$TMZ
rtc$TMZ SEGMENT
_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown
rtc$TMZ ENDS
; COMDAT rtc$IMZ
rtc$IMZ SEGMENT
_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase
rtc$IMZ ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$dot_43_avx DD 02d062801H
DD 011a231fH
DD 070130042H
DD 0d0115012H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$dot_43_sse DD 025051d01H
DD 0118231dH
DD 07011001dH
DD 05010H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$dot_42_avx DD 02d062801H
DD 011a231fH
DD 070130032H
DD 0d0115012H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$dot_42_sse DD 025051d01H
DD 0118231dH
DD 07011001dH
DD 05010H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$dot_32_avx DD 02d062801H
DD 011a231fH
DD 070130032H
DD 0d0115012H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$dot_32_sse DD 025051d01H
DD 0118231dH
DD 07011001dH
DD 05010H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$dot_31_avx DD 02d062801H
DD 011a231fH
DD 070130032H
DD 0d0115012H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$dot_41_avx DD 02d062801H
DD 011a231fH
DD 070130032H
DD 0d0115012H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$dot_31_sse DD 025051d01H
DD 0118231dH
DD 07011001dH
DD 05010H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$dot_41_sse DD 025051d01H
DD 0118231dH
DD 07011001dH
DD 05010H
xdata ENDS
; Function compile flags: /Odt
; COMDAT __JustMyCode_Default
_TEXT SEGMENT
__JustMyCode_Default PROC ; COMDAT
00000 c2 00 00 ret 0
__JustMyCode_Default ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\ÄÚºËÔ´´úÂë\StgSharp.C\vector_dot.c
; COMDAT dot_43_avx
_TEXT SEGMENT
ans_ptr$ = 8
right_ptr$ = 40
temp$ = 96
third$ = 160
ans_third$ = 224
transpose$ = 528
vector$ = 536
ans$ = 544
dot_43_avx PROC ; COMDAT
; 125 : {
$LN3:
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000f 41 55 push r13
00011 55 push rbp
00012 57 push rdi
00013 48 81 ec 10 02
00 00 sub rsp, 528 ; 00000210H
0001a 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32]
0001f 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64]
00024 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H
00028 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__43BC74EB_vector_dot@c
0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
00034 90 npad 1
; 126 : __3_columnset *ans_ptr = (__3_columnset *)ans, *right_ptr = (__3_columnset *)vector;
00035 49 8b 85 20 02
00 00 mov rax, QWORD PTR ans$[r13]
0003c 48 89 45 08 mov QWORD PTR ans_ptr$[rbp], rax
00040 49 8b 85 18 02
00 00 mov rax, QWORD PTR vector$[r13]
00047 48 89 45 28 mov QWORD PTR right_ptr$[rbp], rax
; 127 : __m256 temp = ALIGN256(transpose->half[0]);
0004b b8 20 00 00 00 mov eax, 32 ; 00000020H
00050 48 6b c0 00 imul rax, rax, 0
00054 49 8b 8d 10 02
00 00 mov rcx, QWORD PTR transpose$[r13]
0005b 48 03 c8 add rcx, rax
0005e 48 8b c1 mov rax, rcx
00061 c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax]
00065 c5 fc 11 45 60 vmovups YMMWORD PTR temp$[rbp], ymm0
; 128 : __m256 third = _mm256_set_m128(right_ptr->column[2], right_ptr->column[2]);
0006a b8 10 00 00 00 mov eax, 16
0006f 48 6b c0 02 imul rax, rax, 2
00073 b9 10 00 00 00 mov ecx, 16
00078 48 6b c9 02 imul rcx, rcx, 2
0007c 48 8b 55 28 mov rdx, QWORD PTR right_ptr$[rbp]
00080 c5 f8 10 04 0a vmovups xmm0, XMMWORD PTR [rdx+rcx]
00085 48 8b 4d 28 mov rcx, QWORD PTR right_ptr$[rbp]
00089 c4 e3 7d 18 04
01 01 vinsertf128 ymm0, ymm0, XMMWORD PTR [rcx+rax], 1
00090 c5 fc 11 85 a0
00 00 00 vmovups YMMWORD PTR third$[rbp], ymm0
; 129 :
; 130 : ans_ptr->part = _mm256_dp_ps(temp, right_ptr->part, 0B11110001);
00098 48 8b 45 28 mov rax, QWORD PTR right_ptr$[rbp]
0009c c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
000a1 c4 e3 7d 40 00
f1 vdpps ymm0, ymm0, YMMWORD PTR [rax], 241 ; 000000f1H
000a7 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
000ab c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0
; 131 : __m256 ans_third = _mm256_dp_ps(temp, third, 0B11110001);
000af c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
000b4 c4 e3 7d 40 85
a0 00 00 00 f1 vdpps ymm0, ymm0, YMMWORD PTR third$[rbp], 241 ; 000000f1H
000be c5 fc 11 85 e0
00 00 00 vmovups YMMWORD PTR ans_third$[rbp], ymm0
; 132 : temp = _mm256_permute2f128_ps(temp, temp, 0B00000001);
000c6 c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
000cb c4 e3 7d 06 45
60 01 vperm2f128 ymm0, ymm0, YMMWORD PTR temp$[rbp], 1
000d2 c5 fc 11 45 60 vmovups YMMWORD PTR temp$[rbp], ymm0
; 133 : ans_ptr->part = _mm256_blend_ps(
000d7 48 8b 45 28 mov rax, QWORD PTR right_ptr$[rbp]
000db c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
000e0 c4 e3 7d 40 00
f2 vdpps ymm0, ymm0, YMMWORD PTR [rax], 242 ; 000000f2H
000e6 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
000ea c5 fc 10 08 vmovups ymm1, YMMWORD PTR [rax]
000ee c4 e3 75 0c c0
22 vblendps ymm0, ymm1, ymm0, 34 ; 00000022H
000f4 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
000f8 c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0
; 134 : ans_ptr->part, _mm256_dp_ps(temp, right_ptr->part, 0B11110010), 0B00100010);
; 135 :
; 136 : temp = ALIGN256(transpose->half[1]);
000fc b8 20 00 00 00 mov eax, 32 ; 00000020H
00101 48 6b c0 01 imul rax, rax, 1
00105 49 8b 8d 10 02
00 00 mov rcx, QWORD PTR transpose$[r13]
0010c 48 03 c8 add rcx, rax
0010f 48 8b c1 mov rax, rcx
00112 c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax]
00116 c5 fc 11 45 60 vmovups YMMWORD PTR temp$[rbp], ymm0
; 137 : ans_ptr->part = _mm256_blend_ps(
0011b 48 8b 45 28 mov rax, QWORD PTR right_ptr$[rbp]
0011f c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
00124 c4 e3 7d 40 00
f4 vdpps ymm0, ymm0, YMMWORD PTR [rax], 244 ; 000000f4H
0012a 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
0012e c5 fc 10 08 vmovups ymm1, YMMWORD PTR [rax]
00132 c4 e3 75 0c c0
44 vblendps ymm0, ymm1, ymm0, 68 ; 00000044H
00138 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
0013c c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0
; 138 : ans_ptr->part, _mm256_dp_ps(temp, right_ptr->part, 0B11110100), 0B01000100);
; 139 : ans_third = _mm256_blend_ps(ans_third, _mm256_dp_ps(temp, third, 0B11110010), 0B00100010);
00140 c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
00145 c4 e3 7d 40 85
a0 00 00 00 f2 vdpps ymm0, ymm0, YMMWORD PTR third$[rbp], 242 ; 000000f2H
0014f c5 fc 10 8d e0
00 00 00 vmovups ymm1, YMMWORD PTR ans_third$[rbp]
00157 c4 e3 75 0c c0
22 vblendps ymm0, ymm1, ymm0, 34 ; 00000022H
0015d c5 fc 11 85 e0
00 00 00 vmovups YMMWORD PTR ans_third$[rbp], ymm0
; 140 : temp = _mm256_permute2f128_ps(temp, temp, 0B00000001);
00165 c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
0016a c4 e3 7d 06 45
60 01 vperm2f128 ymm0, ymm0, YMMWORD PTR temp$[rbp], 1
00171 c5 fc 11 45 60 vmovups YMMWORD PTR temp$[rbp], ymm0
; 141 : ans_ptr->part = _mm256_blend_ps(
00176 48 8b 45 28 mov rax, QWORD PTR right_ptr$[rbp]
0017a c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
0017f c4 e3 7d 40 00
f8 vdpps ymm0, ymm0, YMMWORD PTR [rax], 248 ; 000000f8H
00185 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
00189 c5 fc 10 08 vmovups ymm1, YMMWORD PTR [rax]
0018d c4 e3 75 0c c0
88 vblendps ymm0, ymm1, ymm0, 136 ; 00000088H
00193 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
00197 c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0
; 142 : ans_ptr->part, _mm256_dp_ps(temp, right_ptr->part, 0B11111000), 0B10001000);
; 143 :
; 144 : ans[1] = _mm_shuffle_ps(ALIGN(ans[1]), ALIGN(ans[1]), _MM_SHUFFLE(2, 3, 0, 1));
0019b b8 10 00 00 00 mov eax, 16
001a0 48 6b c0 01 imul rax, rax, 1
001a4 49 8b 8d 20 02
00 00 mov rcx, QWORD PTR ans$[r13]
001ab 48 03 c8 add rcx, rax
001ae 48 8b c1 mov rax, rcx
001b1 0f 10 00 movups xmm0, XMMWORD PTR [rax]
001b4 b8 10 00 00 00 mov eax, 16
001b9 48 6b c0 01 imul rax, rax, 1
001bd 49 8b 8d 20 02
00 00 mov rcx, QWORD PTR ans$[r13]
001c4 48 03 c8 add rcx, rax
001c7 48 8b c1 mov rax, rcx
001ca 0f 10 08 movups xmm1, XMMWORD PTR [rax]
001cd 0f c6 c8 b1 shufps xmm1, xmm0, 177 ; 000000b1H
001d1 0f 28 c1 movaps xmm0, xmm1
001d4 b8 10 00 00 00 mov eax, 16
001d9 48 6b c0 01 imul rax, rax, 1
001dd 49 8b 8d 20 02
00 00 mov rcx, QWORD PTR ans$[r13]
001e4 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 145 : ans[2] = _mm256_castps256_ps128(
001e8 c5 fe 6f 05 00
00 00 00 vmovdqu ymm0, YMMWORD PTR avxdot_indices
001f0 c4 e2 7d 16 85
e0 00 00 00 vpermps ymm0, ymm0, YMMWORD PTR ans_third$[rbp]
001f9 b8 10 00 00 00 mov eax, 16
001fe 48 6b c0 02 imul rax, rax, 2
00202 49 8b 8d 20 02
00 00 mov rcx, QWORD PTR ans$[r13]
00209 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 146 : _mm256_permutevar8x32_ps(ans_third, _mm256_loadu_epi32(avxdot_indices)));
; 147 : }
0020d 49 8d a5 f0 01
00 00 lea rsp, QWORD PTR [r13+496]
00214 5f pop rdi
00215 5d pop rbp
00216 41 5d pop r13
00218 c3 ret 0
dot_43_avx ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\ÄÚºËÔ´´úÂë\StgSharp.C\vector_dot.c
; COMDAT dot_43_sse
_TEXT SEGMENT
transpose$ = 224
vector$ = 232
ans$ = 240
dot_43_sse PROC ; COMDAT
; 118 : {
$LN3:
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000f 55 push rbp
00010 57 push rdi
00011 48 81 ec e8 00
00 00 sub rsp, 232 ; 000000e8H
00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
0001d 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__43BC74EB_vector_dot@c
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
00029 90 npad 1
; 119 : dot_41_sse(transpose, vector, ans);
0002a 4c 8b 85 f0 00
00 00 mov r8, QWORD PTR ans$[rbp]
00031 48 8b 95 e8 00
00 00 mov rdx, QWORD PTR vector$[rbp]
00038 48 8b 8d e0 00
00 00 mov rcx, QWORD PTR transpose$[rbp]
0003f e8 00 00 00 00 call dot_41_sse
00044 90 npad 1
; 120 : dot_41_sse(transpose, vector + 1, ans + 1);
00045 48 8b 85 f0 00
00 00 mov rax, QWORD PTR ans$[rbp]
0004c 48 83 c0 10 add rax, 16
00050 48 8b 8d e8 00
00 00 mov rcx, QWORD PTR vector$[rbp]
00057 48 83 c1 10 add rcx, 16
0005b 4c 8b c0 mov r8, rax
0005e 48 8b d1 mov rdx, rcx
00061 48 8b 8d e0 00
00 00 mov rcx, QWORD PTR transpose$[rbp]
00068 e8 00 00 00 00 call dot_41_sse
0006d 90 npad 1
; 121 : dot_41_sse(transpose, vector + 2, ans + 2);
0006e 48 8b 85 f0 00
00 00 mov rax, QWORD PTR ans$[rbp]
00075 48 83 c0 20 add rax, 32 ; 00000020H
00079 48 8b 8d e8 00
00 00 mov rcx, QWORD PTR vector$[rbp]
00080 48 83 c1 20 add rcx, 32 ; 00000020H
00084 4c 8b c0 mov r8, rax
00087 48 8b d1 mov rdx, rcx
0008a 48 8b 8d e0 00
00 00 mov rcx, QWORD PTR transpose$[rbp]
00091 e8 00 00 00 00 call dot_41_sse
00096 90 npad 1
; 122 : }
00097 48 8d a5 c8 00
00 00 lea rsp, QWORD PTR [rbp+200]
0009e 5f pop rdi
0009f 5d pop rbp
000a0 c3 ret 0
dot_43_sse ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\ÄÚºËÔ´´úÂë\StgSharp.C\vector_dot.c
; COMDAT dot_42_avx
_TEXT SEGMENT
ans_ptr$ = 8
right_ptr$ = 40
temp$ = 96
transpose$ = 400
vector$ = 408
ans$ = 416
dot_42_avx PROC ; COMDAT
; 81 : {
$LN3:
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000f 41 55 push r13
00011 55 push rbp
00012 57 push rdi
00013 48 81 ec 90 01
00 00 sub rsp, 400 ; 00000190H
0001a 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32]
0001f 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64]
00024 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H
00028 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__43BC74EB_vector_dot@c
0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
00034 90 npad 1
; 82 : __2_columnset *ans_ptr = (__2_columnset *)ans, *right_ptr = (__2_columnset *)vector;
00035 49 8b 85 a0 01
00 00 mov rax, QWORD PTR ans$[r13]
0003c 48 89 45 08 mov QWORD PTR ans_ptr$[rbp], rax
00040 49 8b 85 98 01
00 00 mov rax, QWORD PTR vector$[r13]
00047 48 89 45 28 mov QWORD PTR right_ptr$[rbp], rax
; 83 : __m256 temp = ALIGN256(transpose->half[0]);
0004b b8 20 00 00 00 mov eax, 32 ; 00000020H
00050 48 6b c0 00 imul rax, rax, 0
00054 49 8b 8d 90 01
00 00 mov rcx, QWORD PTR transpose$[r13]
0005b 48 03 c8 add rcx, rax
0005e 48 8b c1 mov rax, rcx
00061 c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax]
00065 c5 fc 11 45 60 vmovups YMMWORD PTR temp$[rbp], ymm0
; 84 :
; 85 : ans_ptr->stream = _mm256_dp_ps(temp, right_ptr->stream, 0B11110001);
0006a 48 8b 45 28 mov rax, QWORD PTR right_ptr$[rbp]
0006e c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
00073 c4 e3 7d 40 00
f1 vdpps ymm0, ymm0, YMMWORD PTR [rax], 241 ; 000000f1H
00079 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
0007d c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0
; 86 : temp = _mm256_permute2f128_ps(temp, temp, 0B00000001);
00081 c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
00086 c4 e3 7d 06 45
60 01 vperm2f128 ymm0, ymm0, YMMWORD PTR temp$[rbp], 1
0008d c5 fc 11 45 60 vmovups YMMWORD PTR temp$[rbp], ymm0
; 87 : ans_ptr->stream = _mm256_blend_ps(
00092 48 8b 45 28 mov rax, QWORD PTR right_ptr$[rbp]
00096 c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
0009b c4 e3 7d 40 00
f2 vdpps ymm0, ymm0, YMMWORD PTR [rax], 242 ; 000000f2H
000a1 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
000a5 c5 fc 10 08 vmovups ymm1, YMMWORD PTR [rax]
000a9 c4 e3 75 0c c0
22 vblendps ymm0, ymm1, ymm0, 34 ; 00000022H
000af 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
000b3 c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0
; 88 : ans_ptr->stream, _mm256_dp_ps(temp, right_ptr->stream, 0B11110010), 0B00100010);
; 89 :
; 90 : temp = ALIGN256(transpose->half[1]);
000b7 b8 20 00 00 00 mov eax, 32 ; 00000020H
000bc 48 6b c0 01 imul rax, rax, 1
000c0 49 8b 8d 90 01
00 00 mov rcx, QWORD PTR transpose$[r13]
000c7 48 03 c8 add rcx, rax
000ca 48 8b c1 mov rax, rcx
000cd c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax]
000d1 c5 fc 11 45 60 vmovups YMMWORD PTR temp$[rbp], ymm0
; 91 : ans_ptr->stream = _mm256_blend_ps(
000d6 48 8b 45 28 mov rax, QWORD PTR right_ptr$[rbp]
000da c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
000df c4 e3 7d 40 00
f4 vdpps ymm0, ymm0, YMMWORD PTR [rax], 244 ; 000000f4H
000e5 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
000e9 c5 fc 10 08 vmovups ymm1, YMMWORD PTR [rax]
000ed c4 e3 75 0c c0
44 vblendps ymm0, ymm1, ymm0, 68 ; 00000044H
000f3 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
000f7 c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0
; 92 : ans_ptr->stream, _mm256_dp_ps(temp, right_ptr->stream, 0B11110100), 0B01000100);
; 93 : temp = _mm256_permute2f128_ps(temp, temp, 0B00000001);
000fb c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
00100 c4 e3 7d 06 45
60 01 vperm2f128 ymm0, ymm0, YMMWORD PTR temp$[rbp], 1
00107 c5 fc 11 45 60 vmovups YMMWORD PTR temp$[rbp], ymm0
; 94 : ans_ptr->stream = _mm256_blend_ps(
0010c 48 8b 45 28 mov rax, QWORD PTR right_ptr$[rbp]
00110 c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
00115 c4 e3 7d 40 00
f8 vdpps ymm0, ymm0, YMMWORD PTR [rax], 248 ; 000000f8H
0011b 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
0011f c5 fc 10 08 vmovups ymm1, YMMWORD PTR [rax]
00123 c4 e3 75 0c c0
88 vblendps ymm0, ymm1, ymm0, 136 ; 00000088H
00129 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
0012d c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0
; 95 : ans_ptr->stream, _mm256_dp_ps(temp, right_ptr->stream, 0B11111000), 0B10001000);
; 96 :
; 97 : ans[1] = _mm_shuffle_ps(ALIGN(ans[1]), ALIGN(ans[1]), _MM_SHUFFLE(2, 3, 0, 1));
00131 b8 10 00 00 00 mov eax, 16
00136 48 6b c0 01 imul rax, rax, 1
0013a 49 8b 8d a0 01
00 00 mov rcx, QWORD PTR ans$[r13]
00141 48 03 c8 add rcx, rax
00144 48 8b c1 mov rax, rcx
00147 0f 10 00 movups xmm0, XMMWORD PTR [rax]
0014a b8 10 00 00 00 mov eax, 16
0014f 48 6b c0 01 imul rax, rax, 1
00153 49 8b 8d a0 01
00 00 mov rcx, QWORD PTR ans$[r13]
0015a 48 03 c8 add rcx, rax
0015d 48 8b c1 mov rax, rcx
00160 0f 10 08 movups xmm1, XMMWORD PTR [rax]
00163 0f c6 c8 b1 shufps xmm1, xmm0, 177 ; 000000b1H
00167 0f 28 c1 movaps xmm0, xmm1
0016a b8 10 00 00 00 mov eax, 16
0016f 48 6b c0 01 imul rax, rax, 1
00173 49 8b 8d a0 01
00 00 mov rcx, QWORD PTR ans$[r13]
0017a 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 98 : }
0017e 49 8d a5 70 01
00 00 lea rsp, QWORD PTR [r13+368]
00185 5f pop rdi
00186 5d pop rbp
00187 41 5d pop r13
00189 c3 ret 0
dot_42_avx ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\ÄÚºËÔ´´úÂë\StgSharp.C\vector_dot.c
; COMDAT dot_42_sse
_TEXT SEGMENT
transpose$ = 224
vector$ = 232
ans$ = 240
dot_42_sse PROC ; COMDAT
; 47 : {
$LN3:
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000f 55 push rbp
00010 57 push rdi
00011 48 81 ec e8 00
00 00 sub rsp, 232 ; 000000e8H
00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
0001d 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__43BC74EB_vector_dot@c
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
00029 90 npad 1
; 48 : ans[0] = _mm_dp_ps(transpose->column[0], vector[0], 0B11110001);
0002a b8 10 00 00 00 mov eax, 16
0002f 48 6b c0 00 imul rax, rax, 0
00033 b9 10 00 00 00 mov ecx, 16
00038 48 6b c9 00 imul rcx, rcx, 0
0003c 48 8b 95 e0 00
00 00 mov rdx, QWORD PTR transpose$[rbp]
00043 4c 8b 85 e8 00
00 00 mov r8, QWORD PTR vector$[rbp]
0004a 0f 10 04 0a movups xmm0, XMMWORD PTR [rdx+rcx]
0004e 66 41 0f 3a 40
04 00 f1 dpps xmm0, XMMWORD PTR [r8+rax], 241 ; 000000f1H
00056 b8 10 00 00 00 mov eax, 16
0005b 48 6b c0 00 imul rax, rax, 0
0005f 48 8b 8d f0 00
00 00 mov rcx, QWORD PTR ans$[rbp]
00066 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 49 : ans[0] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[1], vector[0], 0B11110001),
0006a b8 10 00 00 00 mov eax, 16
0006f 48 6b c0 00 imul rax, rax, 0
00073 b9 10 00 00 00 mov ecx, 16
00078 48 6b c9 01 imul rcx, rcx, 1
0007c 48 8b 95 e0 00
00 00 mov rdx, QWORD PTR transpose$[rbp]
00083 4c 8b 85 e8 00
00 00 mov r8, QWORD PTR vector$[rbp]
0008a 0f 10 04 0a movups xmm0, XMMWORD PTR [rdx+rcx]
0008e 66 41 0f 3a 40
04 00 f1 dpps xmm0, XMMWORD PTR [r8+rax], 241 ; 000000f1H
00096 48 8b 85 f0 00
00 00 mov rax, QWORD PTR ans$[rbp]
0009d 0f 10 08 movups xmm1, XMMWORD PTR [rax]
000a0 66 0f 3a 21 c8
10 insertps xmm1, xmm0, 16
000a6 0f 28 c1 movaps xmm0, xmm1
000a9 b8 10 00 00 00 mov eax, 16
000ae 48 6b c0 00 imul rax, rax, 0
000b2 48 8b 8d f0 00
00 00 mov rcx, QWORD PTR ans$[rbp]
000b9 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 50 : SSE_INSERT_SIMPLE(1, 2));
; 51 : ans[0] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[2], vector[0], 0B11110001),
000bd b8 10 00 00 00 mov eax, 16
000c2 48 6b c0 00 imul rax, rax, 0
000c6 b9 10 00 00 00 mov ecx, 16
000cb 48 6b c9 02 imul rcx, rcx, 2
000cf 48 8b 95 e0 00
00 00 mov rdx, QWORD PTR transpose$[rbp]
000d6 4c 8b 85 e8 00
00 00 mov r8, QWORD PTR vector$[rbp]
000dd 0f 10 04 0a movups xmm0, XMMWORD PTR [rdx+rcx]
000e1 66 41 0f 3a 40
04 00 f1 dpps xmm0, XMMWORD PTR [r8+rax], 241 ; 000000f1H
000e9 48 8b 85 f0 00
00 00 mov rax, QWORD PTR ans$[rbp]
000f0 0f 10 08 movups xmm1, XMMWORD PTR [rax]
000f3 66 0f 3a 21 c8
20 insertps xmm1, xmm0, 32 ; 00000020H
000f9 0f 28 c1 movaps xmm0, xmm1
000fc b8 10 00 00 00 mov eax, 16
00101 48 6b c0 00 imul rax, rax, 0
00105 48 8b 8d f0 00
00 00 mov rcx, QWORD PTR ans$[rbp]
0010c 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 52 : SSE_INSERT_SIMPLE(1, 3));
; 53 : ans[0] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[3], vector[0], 0B11110001),
00110 b8 10 00 00 00 mov eax, 16
00115 48 6b c0 00 imul rax, rax, 0
00119 b9 10 00 00 00 mov ecx, 16
0011e 48 6b c9 03 imul rcx, rcx, 3
00122 48 8b 95 e0 00
00 00 mov rdx, QWORD PTR transpose$[rbp]
00129 4c 8b 85 e8 00
00 00 mov r8, QWORD PTR vector$[rbp]
00130 0f 10 04 0a movups xmm0, XMMWORD PTR [rdx+rcx]
00134 66 41 0f 3a 40
04 00 f1 dpps xmm0, XMMWORD PTR [r8+rax], 241 ; 000000f1H
0013c 48 8b 85 f0 00
00 00 mov rax, QWORD PTR ans$[rbp]
00143 0f 10 08 movups xmm1, XMMWORD PTR [rax]
00146 66 0f 3a 21 c8
30 insertps xmm1, xmm0, 48 ; 00000030H
0014c 0f 28 c1 movaps xmm0, xmm1
0014f b8 10 00 00 00 mov eax, 16
00154 48 6b c0 00 imul rax, rax, 0
00158 48 8b 8d f0 00
00 00 mov rcx, QWORD PTR ans$[rbp]
0015f 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 54 : SSE_INSERT_SIMPLE(1, 4));
; 55 :
; 56 : ans[1] = _mm_dp_ps(transpose->column[0], vector[1], 0B11110001);
00163 b8 10 00 00 00 mov eax, 16
00168 48 6b c0 01 imul rax, rax, 1
0016c b9 10 00 00 00 mov ecx, 16
00171 48 6b c9 00 imul rcx, rcx, 0
00175 48 8b 95 e0 00
00 00 mov rdx, QWORD PTR transpose$[rbp]
0017c 4c 8b 85 e8 00
00 00 mov r8, QWORD PTR vector$[rbp]
00183 0f 10 04 0a movups xmm0, XMMWORD PTR [rdx+rcx]
00187 66 41 0f 3a 40
04 00 f1 dpps xmm0, XMMWORD PTR [r8+rax], 241 ; 000000f1H
0018f b8 10 00 00 00 mov eax, 16
00194 48 6b c0 01 imul rax, rax, 1
00198 48 8b 8d f0 00
00 00 mov rcx, QWORD PTR ans$[rbp]
0019f 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 57 : ans[1] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[1], vector[1], 0B11110001),
001a3 b8 10 00 00 00 mov eax, 16
001a8 48 6b c0 01 imul rax, rax, 1
001ac b9 10 00 00 00 mov ecx, 16
001b1 48 6b c9 01 imul rcx, rcx, 1
001b5 48 8b 95 e0 00
00 00 mov rdx, QWORD PTR transpose$[rbp]
001bc 4c 8b 85 e8 00
00 00 mov r8, QWORD PTR vector$[rbp]
001c3 0f 10 04 0a movups xmm0, XMMWORD PTR [rdx+rcx]
001c7 66 41 0f 3a 40
04 00 f1 dpps xmm0, XMMWORD PTR [r8+rax], 241 ; 000000f1H
001cf 48 8b 85 f0 00
00 00 mov rax, QWORD PTR ans$[rbp]
001d6 0f 10 08 movups xmm1, XMMWORD PTR [rax]
001d9 66 0f 3a 21 c8
10 insertps xmm1, xmm0, 16
001df 0f 28 c1 movaps xmm0, xmm1
001e2 b8 10 00 00 00 mov eax, 16
001e7 48 6b c0 01 imul rax, rax, 1
001eb 48 8b 8d f0 00
00 00 mov rcx, QWORD PTR ans$[rbp]
001f2 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 58 : SSE_INSERT_SIMPLE(1, 2));
; 59 : ans[1] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[2], vector[1], 0B11110001),
001f6 b8 10 00 00 00 mov eax, 16
001fb 48 6b c0 01 imul rax, rax, 1
001ff b9 10 00 00 00 mov ecx, 16
00204 48 6b c9 02 imul rcx, rcx, 2
00208 48 8b 95 e0 00
00 00 mov rdx, QWORD PTR transpose$[rbp]
0020f 4c 8b 85 e8 00
00 00 mov r8, QWORD PTR vector$[rbp]
00216 0f 10 04 0a movups xmm0, XMMWORD PTR [rdx+rcx]
0021a 66 41 0f 3a 40
04 00 f1 dpps xmm0, XMMWORD PTR [r8+rax], 241 ; 000000f1H
00222 48 8b 85 f0 00
00 00 mov rax, QWORD PTR ans$[rbp]
00229 0f 10 08 movups xmm1, XMMWORD PTR [rax]
0022c 66 0f 3a 21 c8
20 insertps xmm1, xmm0, 32 ; 00000020H
00232 0f 28 c1 movaps xmm0, xmm1
00235 b8 10 00 00 00 mov eax, 16
0023a 48 6b c0 01 imul rax, rax, 1
0023e 48 8b 8d f0 00
00 00 mov rcx, QWORD PTR ans$[rbp]
00245 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 60 : SSE_INSERT_SIMPLE(1, 3));
; 61 : ans[1] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[3], vector[1], 0B11110001),
00249 b8 10 00 00 00 mov eax, 16
0024e 48 6b c0 01 imul rax, rax, 1
00252 b9 10 00 00 00 mov ecx, 16
00257 48 6b c9 03 imul rcx, rcx, 3
0025b 48 8b 95 e0 00
00 00 mov rdx, QWORD PTR transpose$[rbp]
00262 4c 8b 85 e8 00
00 00 mov r8, QWORD PTR vector$[rbp]
00269 0f 10 04 0a movups xmm0, XMMWORD PTR [rdx+rcx]
0026d 66 41 0f 3a 40
04 00 f1 dpps xmm0, XMMWORD PTR [r8+rax], 241 ; 000000f1H
00275 48 8b 85 f0 00
00 00 mov rax, QWORD PTR ans$[rbp]
0027c 0f 10 08 movups xmm1, XMMWORD PTR [rax]
0027f 66 0f 3a 21 c8
30 insertps xmm1, xmm0, 48 ; 00000030H
00285 0f 28 c1 movaps xmm0, xmm1
00288 b8 10 00 00 00 mov eax, 16
0028d 48 6b c0 01 imul rax, rax, 1
00291 48 8b 8d f0 00
00 00 mov rcx, QWORD PTR ans$[rbp]
00298 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 62 : SSE_INSERT_SIMPLE(1, 4));
; 63 : }
0029c 48 8d a5 c8 00
00 00 lea rsp, QWORD PTR [rbp+200]
002a3 5f pop rdi
002a4 5d pop rbp
002a5 c3 ret 0
dot_42_sse ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\ÄÚºËÔ´´úÂë\StgSharp.C\vector_dot.c
; COMDAT dot_32_avx
_TEXT SEGMENT
ans_ptr$ = 8
right_ptr$ = 40
temp$ = 96
transpose$ = 400
vector$ = 408
ans$ = 416
dot_32_avx PROC ; COMDAT
; 101 : {
$LN3:
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000f 41 55 push r13
00011 55 push rbp
00012 57 push rdi
00013 48 81 ec 90 01
00 00 sub rsp, 400 ; 00000190H
0001a 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32]
0001f 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64]
00024 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H
00028 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__43BC74EB_vector_dot@c
0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
00034 90 npad 1
; 102 : __2_columnset *ans_ptr = (__2_columnset *)ans, *right_ptr = (__2_columnset *)vector;
00035 49 8b 85 a0 01
00 00 mov rax, QWORD PTR ans$[r13]
0003c 48 89 45 08 mov QWORD PTR ans_ptr$[rbp], rax
00040 49 8b 85 98 01
00 00 mov rax, QWORD PTR vector$[r13]
00047 48 89 45 28 mov QWORD PTR right_ptr$[rbp], rax
; 103 : __m256 temp = transpose->part;
0004b 49 8b 85 90 01
00 00 mov rax, QWORD PTR transpose$[r13]
00052 c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax]
00056 c5 fc 11 45 60 vmovups YMMWORD PTR temp$[rbp], ymm0
; 104 :
; 105 : ans_ptr->stream = _mm256_dp_ps(temp, right_ptr->stream, 0B11110001);
0005b 48 8b 45 28 mov rax, QWORD PTR right_ptr$[rbp]
0005f c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
00064 c4 e3 7d 40 00
f1 vdpps ymm0, ymm0, YMMWORD PTR [rax], 241 ; 000000f1H
0006a 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
0006e c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0
; 106 : temp = _mm256_permute2f128_ps(temp, temp, 0B00000001);
00072 c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
00077 c4 e3 7d 06 45
60 01 vperm2f128 ymm0, ymm0, YMMWORD PTR temp$[rbp], 1
0007e c5 fc 11 45 60 vmovups YMMWORD PTR temp$[rbp], ymm0
; 107 : ans_ptr->stream = _mm256_blend_ps(
00083 48 8b 45 28 mov rax, QWORD PTR right_ptr$[rbp]
00087 c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
0008c c4 e3 7d 40 00
f2 vdpps ymm0, ymm0, YMMWORD PTR [rax], 242 ; 000000f2H
00092 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
00096 c5 fc 10 08 vmovups ymm1, YMMWORD PTR [rax]
0009a c4 e3 75 0c c0
22 vblendps ymm0, ymm1, ymm0, 34 ; 00000022H
000a0 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
000a4 c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0
; 108 : ans_ptr->stream, _mm256_dp_ps(temp, right_ptr->stream, 0B11110010), 0B00100010);
; 109 :
; 110 : temp = _mm256_set_m128(transpose->column[2], transpose->column[2]);
000a8 b8 10 00 00 00 mov eax, 16
000ad 48 6b c0 02 imul rax, rax, 2
000b1 b9 10 00 00 00 mov ecx, 16
000b6 48 6b c9 02 imul rcx, rcx, 2
000ba 49 8b 95 90 01
00 00 mov rdx, QWORD PTR transpose$[r13]
000c1 c5 f8 10 04 0a vmovups xmm0, XMMWORD PTR [rdx+rcx]
000c6 49 8b 8d 90 01
00 00 mov rcx, QWORD PTR transpose$[r13]
000cd c4 e3 7d 18 04
01 01 vinsertf128 ymm0, ymm0, XMMWORD PTR [rcx+rax], 1
000d4 c5 fc 11 45 60 vmovups YMMWORD PTR temp$[rbp], ymm0
; 111 : ans_ptr->stream = _mm256_blend_ps(
000d9 48 8b 45 28 mov rax, QWORD PTR right_ptr$[rbp]
000dd c5 fc 10 45 60 vmovups ymm0, YMMWORD PTR temp$[rbp]
000e2 c4 e3 7d 40 00
f4 vdpps ymm0, ymm0, YMMWORD PTR [rax], 244 ; 000000f4H
000e8 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
000ec c5 fc 10 08 vmovups ymm1, YMMWORD PTR [rax]
000f0 c4 e3 75 0c c0
44 vblendps ymm0, ymm1, ymm0, 68 ; 00000044H
000f6 48 8b 45 08 mov rax, QWORD PTR ans_ptr$[rbp]
000fa c5 fc 11 00 vmovups YMMWORD PTR [rax], ymm0
; 112 : ans_ptr->stream, _mm256_dp_ps(temp, right_ptr->stream, 0B11110100), 0B01000100);
; 113 :
; 114 : ans[1] = _mm_shuffle_ps(ALIGN(ans[1]), ALIGN(ans[1]), _MM_SHUFFLE(2, 2, 0, 1));
000fe b8 10 00 00 00 mov eax, 16
00103 48 6b c0 01 imul rax, rax, 1
00107 49 8b 8d a0 01
00 00 mov rcx, QWORD PTR ans$[r13]
0010e 48 03 c8 add rcx, rax
00111 48 8b c1 mov rax, rcx
00114 0f 10 00 movups xmm0, XMMWORD PTR [rax]
00117 b8 10 00 00 00 mov eax, 16
0011c 48 6b c0 01 imul rax, rax, 1
00120 49 8b 8d a0 01
00 00 mov rcx, QWORD PTR ans$[r13]
00127 48 03 c8 add rcx, rax
0012a 48 8b c1 mov rax, rcx
0012d 0f 10 08 movups xmm1, XMMWORD PTR [rax]
00130 0f c6 c8 a1 shufps xmm1, xmm0, 161 ; 000000a1H
00134 0f 28 c1 movaps xmm0, xmm1
00137 b8 10 00 00 00 mov eax, 16
0013c 48 6b c0 01 imul rax, rax, 1
00140 49 8b 8d a0 01
00 00 mov rcx, QWORD PTR ans$[r13]
00147 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 115 : }
0014b 49 8d a5 70 01
00 00 lea rsp, QWORD PTR [r13+368]
00152 5f pop rdi
00153 5d pop rbp
00154 41 5d pop r13
00156 c3 ret 0
dot_32_avx ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\ÄÚºËÔ´´úÂë\StgSharp.C\vector_dot.c
; COMDAT dot_32_sse
_TEXT SEGMENT
transpose$ = 224
vector$ = 232
ans$ = 240
dot_32_sse PROC ; COMDAT
; 66 : {
$LN3:
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000f 55 push rbp
00010 57 push rdi
00011 48 81 ec e8 00
00 00 sub rsp, 232 ; 000000e8H
00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
0001d 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__43BC74EB_vector_dot@c
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
00029 90 npad 1
; 67 : ans[0] = _mm_dp_ps(transpose->column[0], vector[0], 0B11110001);
0002a b8 10 00 00 00 mov eax, 16
0002f 48 6b c0 00 imul rax, rax, 0
00033 b9 10 00 00 00 mov ecx, 16
00038 48 6b c9 00 imul rcx, rcx, 0
0003c 48 8b 95 e0 00
00 00 mov rdx, QWORD PTR transpose$[rbp]
00043 4c 8b 85 e8 00
00 00 mov r8, QWORD PTR vector$[rbp]
0004a 0f 10 04 0a movups xmm0, XMMWORD PTR [rdx+rcx]
0004e 66 41 0f 3a 40
04 00 f1 dpps xmm0, XMMWORD PTR [r8+rax], 241 ; 000000f1H
00056 b8 10 00 00 00 mov eax, 16
0005b 48 6b c0 00 imul rax, rax, 0
0005f 48 8b 8d f0 00
00 00 mov rcx, QWORD PTR ans$[rbp]
00066 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 68 : ans[0] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[1], vector[0], 0B11110001),
0006a b8 10 00 00 00 mov eax, 16
0006f 48 6b c0 00 imul rax, rax, 0
00073 b9 10 00 00 00 mov ecx, 16
00078 48 6b c9 01 imul rcx, rcx, 1
0007c 48 8b 95 e0 00
00 00 mov rdx, QWORD PTR transpose$[rbp]
00083 4c 8b 85 e8 00
00 00 mov r8, QWORD PTR vector$[rbp]
0008a 0f 10 04 0a movups xmm0, XMMWORD PTR [rdx+rcx]
0008e 66 41 0f 3a 40
04 00 f1 dpps xmm0, XMMWORD PTR [r8+rax], 241 ; 000000f1H
00096 48 8b 85 f0 00
00 00 mov rax, QWORD PTR ans$[rbp]
0009d 0f 10 08 movups xmm1, XMMWORD PTR [rax]
000a0 66 0f 3a 21 c8
10 insertps xmm1, xmm0, 16
000a6 0f 28 c1 movaps xmm0, xmm1
000a9 b8 10 00 00 00 mov eax, 16
000ae 48 6b c0 00 imul rax, rax, 0
000b2 48 8b 8d f0 00
00 00 mov rcx, QWORD PTR ans$[rbp]
000b9 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 69 : SSE_INSERT_SIMPLE(1, 2));
; 70 : ans[0] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[2], vector[0], 0B11110001),
000bd b8 10 00 00 00 mov eax, 16
000c2 48 6b c0 00 imul rax, rax, 0
000c6 b9 10 00 00 00 mov ecx, 16
000cb 48 6b c9 02 imul rcx, rcx, 2
000cf 48 8b 95 e0 00
00 00 mov rdx, QWORD PTR transpose$[rbp]
000d6 4c 8b 85 e8 00
00 00 mov r8, QWORD PTR vector$[rbp]
000dd 0f 10 04 0a movups xmm0, XMMWORD PTR [rdx+rcx]
000e1 66 41 0f 3a 40
04 00 f1 dpps xmm0, XMMWORD PTR [r8+rax], 241 ; 000000f1H
000e9 48 8b 85 f0 00
00 00 mov rax, QWORD PTR ans$[rbp]
000f0 0f 10 08 movups xmm1, XMMWORD PTR [rax]
000f3 66 0f 3a 21 c8
20 insertps xmm1, xmm0, 32 ; 00000020H
000f9 0f 28 c1 movaps xmm0, xmm1
000fc b8 10 00 00 00 mov eax, 16
00101 48 6b c0 00 imul rax, rax, 0
00105 48 8b 8d f0 00
00 00 mov rcx, QWORD PTR ans$[rbp]
0010c 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 71 : SSE_INSERT_SIMPLE(1, 3));
; 72 :
; 73 : ans[1] = _mm_dp_ps(transpose->column[0], vector[1], 0B11110001);
00110 b8 10 00 00 00 mov eax, 16
00115 48 6b c0 01 imul rax, rax, 1
00119 b9 10 00 00 00 mov ecx, 16
0011e 48 6b c9 00 imul rcx, rcx, 0
00122 48 8b 95 e0 00
00 00 mov rdx, QWORD PTR transpose$[rbp]
00129 4c 8b 85 e8 00
00 00 mov r8, QWORD PTR vector$[rbp]
00130 0f 10 04 0a movups xmm0, XMMWORD PTR [rdx+rcx]
00134 66 41 0f 3a 40
04 00 f1 dpps xmm0, XMMWORD PTR [r8+rax], 241 ; 000000f1H
0013c b8 10 00 00 00 mov eax, 16
00141 48 6b c0 01 imul rax, rax, 1
00145 48 8b 8d f0 00
00 00 mov rcx, QWORD PTR ans$[rbp]
0014c 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 74 : ans[1] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[1], vector[1], 0B11110001),
00150 b8 10 00 00 00 mov eax, 16
00155 48 6b c0 01 imul rax, rax, 1
00159 b9 10 00 00 00 mov ecx, 16
0015e 48 6b c9 01 imul rcx, rcx, 1
00162 48 8b 95 e0 00
00 00 mov rdx, QWORD PTR transpose$[rbp]
00169 4c 8b 85 e8 00
00 00 mov r8, QWORD PTR vector$[rbp]
00170 0f 10 04 0a movups xmm0, XMMWORD PTR [rdx+rcx]
00174 66 41 0f 3a 40
04 00 f1 dpps xmm0, XMMWORD PTR [r8+rax], 241 ; 000000f1H
0017c 48 8b 85 f0 00
00 00 mov rax, QWORD PTR ans$[rbp]
00183 0f 10 08 movups xmm1, XMMWORD PTR [rax]
00186 66 0f 3a 21 c8
10 insertps xmm1, xmm0, 16
0018c 0f 28 c1 movaps xmm0, xmm1
0018f b8 10 00 00 00 mov eax, 16
00194 48 6b c0 01 imul rax, rax, 1
00198 48 8b 8d f0 00
00 00 mov rcx, QWORD PTR ans$[rbp]
0019f 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 75 : SSE_INSERT_SIMPLE(1, 2));
; 76 : ans[1] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[2], vector[1], 0B11110001),
001a3 b8 10 00 00 00 mov eax, 16
001a8 48 6b c0 01 imul rax, rax, 1
001ac b9 10 00 00 00 mov ecx, 16
001b1 48 6b c9 02 imul rcx, rcx, 2
001b5 48 8b 95 e0 00
00 00 mov rdx, QWORD PTR transpose$[rbp]
001bc 4c 8b 85 e8 00
00 00 mov r8, QWORD PTR vector$[rbp]
001c3 0f 10 04 0a movups xmm0, XMMWORD PTR [rdx+rcx]
001c7 66 41 0f 3a 40
04 00 f1 dpps xmm0, XMMWORD PTR [r8+rax], 241 ; 000000f1H
001cf 48 8b 85 f0 00
00 00 mov rax, QWORD PTR ans$[rbp]
001d6 0f 10 08 movups xmm1, XMMWORD PTR [rax]
001d9 66 0f 3a 21 c8
20 insertps xmm1, xmm0, 32 ; 00000020H
001df 0f 28 c1 movaps xmm0, xmm1
001e2 b8 10 00 00 00 mov eax, 16
001e7 48 6b c0 01 imul rax, rax, 1
001eb 48 8b 8d f0 00
00 00 mov rcx, QWORD PTR ans$[rbp]
001f2 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 77 : SSE_INSERT_SIMPLE(1, 3));
; 78 : }
001f6 48 8d a5 c8 00
00 00 lea rsp, QWORD PTR [rbp+200]
001fd 5f pop rdi
001fe 5d pop rbp
001ff c3 ret 0
dot_32_sse ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\ÄÚºËÔ´´úÂë\StgSharp.C\vector_dot.c
; COMDAT dot_31_avx
_TEXT SEGMENT
_double$ = 32
tmp$ = 96
transpose$ = 400
vector$ = 408
ans$ = 416
dot_31_avx PROC ; COMDAT
; 37 : {
$LN3:
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000f 41 55 push r13
00011 55 push rbp
00012 57 push rdi
00013 48 81 ec 90 01
00 00 sub rsp, 400 ; 00000190H
0001a 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32]
0001f 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64]
00024 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H
00028 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__43BC74EB_vector_dot@c
0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
00034 90 npad 1
; 38 : __m256 _double = _mm256_set_m128(vector[0], vector[0]);
00035 b8 10 00 00 00 mov eax, 16
0003a 48 6b c0 00 imul rax, rax, 0
0003e b9 10 00 00 00 mov ecx, 16
00043 48 6b c9 00 imul rcx, rcx, 0
00047 49 8b 95 98 01
00 00 mov rdx, QWORD PTR vector$[r13]
0004e c5 f8 10 04 0a vmovups xmm0, XMMWORD PTR [rdx+rcx]
00053 49 8b 8d 98 01
00 00 mov rcx, QWORD PTR vector$[r13]
0005a c4 e3 7d 18 04
01 01 vinsertf128 ymm0, ymm0, XMMWORD PTR [rcx+rax], 1
00061 c5 fc 11 45 20 vmovups YMMWORD PTR _double$[rbp], ymm0
; 39 : __m256 tmp = _mm256_dp_ps(transpose->part, _double, 0B11110001);
00066 49 8b 85 90 01
00 00 mov rax, QWORD PTR transpose$[r13]
0006d c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax]
00071 c4 e3 7d 40 45
20 f1 vdpps ymm0, ymm0, YMMWORD PTR _double$[rbp], 241 ; 000000f1H
00078 c5 fc 11 45 60 vmovups YMMWORD PTR tmp$[rbp], ymm0
; 40 : *ans = _mm256_castps256_ps128(
0007d c5 fe 6f 05 00
00 00 00 vmovdqu ymm0, YMMWORD PTR avxdot_indices
00085 c4 e2 7d 16 45
60 vpermps ymm0, ymm0, YMMWORD PTR tmp$[rbp]
0008b 49 8b 85 a0 01
00 00 mov rax, QWORD PTR ans$[r13]
00092 0f 11 00 movups XMMWORD PTR [rax], xmm0
; 41 : _mm256_permutevar8x32_ps(tmp, _mm256_loadu_epi32(avxdot_indices)));
; 42 : *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[2], *vector, 0B11110001),
00095 b8 10 00 00 00 mov eax, 16
0009a 48 6b c0 02 imul rax, rax, 2
0009e 49 8b 8d 90 01
00 00 mov rcx, QWORD PTR transpose$[r13]
000a5 49 8b 95 98 01
00 00 mov rdx, QWORD PTR vector$[r13]
000ac 0f 10 04 01 movups xmm0, XMMWORD PTR [rcx+rax]
000b0 66 0f 3a 40 02
f1 dpps xmm0, XMMWORD PTR [rdx], 241 ; 000000f1H
000b6 49 8b 85 a0 01
00 00 mov rax, QWORD PTR ans$[r13]
000bd 0f 10 08 movups xmm1, XMMWORD PTR [rax]
000c0 66 0f 3a 21 c8
20 insertps xmm1, xmm0, 32 ; 00000020H
000c6 0f 28 c1 movaps xmm0, xmm1
000c9 49 8b 85 a0 01
00 00 mov rax, QWORD PTR ans$[r13]
000d0 0f 11 00 movups XMMWORD PTR [rax], xmm0
; 43 : SSE_INSERT_SIMPLE(1, 3));
; 44 : }
000d3 49 8d a5 70 01
00 00 lea rsp, QWORD PTR [r13+368]
000da 5f pop rdi
000db 5d pop rbp
000dc 41 5d pop r13
000de c3 ret 0
dot_31_avx ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\ÄÚºËÔ´´úÂë\StgSharp.C\vector_dot.c
; COMDAT dot_41_avx
_TEXT SEGMENT
_double$ = 32
tmp$ = 96
transpose$ = 400
vector$ = 408
ans$ = 416
dot_41_avx PROC ; COMDAT
; 18 : {
$LN3:
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000f 41 55 push r13
00011 55 push rbp
00012 57 push rdi
00013 48 81 ec 90 01
00 00 sub rsp, 400 ; 00000190H
0001a 4c 8d 6c 24 20 lea r13, QWORD PTR [rsp+32]
0001f 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64]
00024 48 83 e5 e0 and rbp, -32 ; ffffffffffffffe0H
00028 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__43BC74EB_vector_dot@c
0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
00034 90 npad 1
; 19 : __m256 _double = _mm256_set_m128(vector[0], vector[0]);
00035 b8 10 00 00 00 mov eax, 16
0003a 48 6b c0 00 imul rax, rax, 0
0003e b9 10 00 00 00 mov ecx, 16
00043 48 6b c9 00 imul rcx, rcx, 0
00047 49 8b 95 98 01
00 00 mov rdx, QWORD PTR vector$[r13]
0004e c5 f8 10 04 0a vmovups xmm0, XMMWORD PTR [rdx+rcx]
00053 49 8b 8d 98 01
00 00 mov rcx, QWORD PTR vector$[r13]
0005a c4 e3 7d 18 04
01 01 vinsertf128 ymm0, ymm0, XMMWORD PTR [rcx+rax], 1
00061 c5 fc 11 45 20 vmovups YMMWORD PTR _double$[rbp], ymm0
; 20 : __m256 tmp = _mm256_dp_ps(transpose->half[0], _double, 0B11110001);
00066 b8 20 00 00 00 mov eax, 32 ; 00000020H
0006b 48 6b c0 00 imul rax, rax, 0
0006f 49 8b 8d 90 01
00 00 mov rcx, QWORD PTR transpose$[r13]
00076 c5 fc 10 04 01 vmovups ymm0, YMMWORD PTR [rcx+rax]
0007b c4 e3 7d 40 45
20 f1 vdpps ymm0, ymm0, YMMWORD PTR _double$[rbp], 241 ; 000000f1H
00082 c5 fc 11 45 60 vmovups YMMWORD PTR tmp$[rbp], ymm0
; 21 : tmp = _mm256_blend_ps(tmp, _mm256_dp_ps(transpose->half[0], _double, 0B11110010),
00087 b8 20 00 00 00 mov eax, 32 ; 00000020H
0008c 48 6b c0 00 imul rax, rax, 0
00090 49 8b 8d 90 01
00 00 mov rcx, QWORD PTR transpose$[r13]
00097 c5 fc 10 04 01 vmovups ymm0, YMMWORD PTR [rcx+rax]
0009c c4 e3 7d 40 45
20 f2 vdpps ymm0, ymm0, YMMWORD PTR _double$[rbp], 242 ; 000000f2H
000a3 c5 fc 10 4d 60 vmovups ymm1, YMMWORD PTR tmp$[rbp]
000a8 c4 e3 75 0c c0
22 vblendps ymm0, ymm1, ymm0, 34 ; 00000022H
000ae c5 fc 11 45 60 vmovups YMMWORD PTR tmp$[rbp], ymm0
; 22 : 0B00100010);
; 23 : *ans = _mm256_castps256_ps128(
000b3 c5 fe 6f 05 00
00 00 00 vmovdqu ymm0, YMMWORD PTR avxdot_indices
000bb c4 e2 7d 16 45
60 vpermps ymm0, ymm0, YMMWORD PTR tmp$[rbp]
000c1 49 8b 85 a0 01
00 00 mov rax, QWORD PTR ans$[r13]
000c8 0f 11 00 movups XMMWORD PTR [rax], xmm0
; 24 : _mm256_permutevar8x32_ps(tmp, _mm256_loadu_epi32(avxdot_indices)));
; 25 : }
000cb 49 8d a5 70 01
00 00 lea rsp, QWORD PTR [r13+368]
000d2 5f pop rdi
000d3 5d pop rbp
000d4 41 5d pop r13
000d6 c3 ret 0
dot_41_avx ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\ÄÚºËÔ´´úÂë\StgSharp.C\vector_dot.c
; COMDAT dot_31_sse
_TEXT SEGMENT
transpose$ = 224
vector$ = 232
ans$ = 240
dot_31_sse PROC ; COMDAT
; 28 : {
$LN3:
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000f 55 push rbp
00010 57 push rdi
00011 48 81 ec e8 00
00 00 sub rsp, 232 ; 000000e8H
00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
0001d 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__43BC74EB_vector_dot@c
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
00029 90 npad 1
; 29 : *ans = _mm_dp_ps(transpose->column[0], *vector, 0B11110001);
0002a b8 10 00 00 00 mov eax, 16
0002f 48 6b c0 00 imul rax, rax, 0
00033 48 8b 8d e0 00
00 00 mov rcx, QWORD PTR transpose$[rbp]
0003a 48 8b 95 e8 00
00 00 mov rdx, QWORD PTR vector$[rbp]
00041 0f 10 04 01 movups xmm0, XMMWORD PTR [rcx+rax]
00045 66 0f 3a 40 02
f1 dpps xmm0, XMMWORD PTR [rdx], 241 ; 000000f1H
0004b 48 8b 85 f0 00
00 00 mov rax, QWORD PTR ans$[rbp]
00052 0f 11 00 movups XMMWORD PTR [rax], xmm0
; 30 : *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[1], *vector, 0B11110001),
00055 b8 10 00 00 00 mov eax, 16
0005a 48 6b c0 01 imul rax, rax, 1
0005e 48 8b 8d e0 00
00 00 mov rcx, QWORD PTR transpose$[rbp]
00065 48 8b 95 e8 00
00 00 mov rdx, QWORD PTR vector$[rbp]
0006c 0f 10 04 01 movups xmm0, XMMWORD PTR [rcx+rax]
00070 66 0f 3a 40 02
f1 dpps xmm0, XMMWORD PTR [rdx], 241 ; 000000f1H
00076 48 8b 85 f0 00
00 00 mov rax, QWORD PTR ans$[rbp]
0007d 0f 10 08 movups xmm1, XMMWORD PTR [rax]
00080 66 0f 3a 21 c8
10 insertps xmm1, xmm0, 16
00086 0f 28 c1 movaps xmm0, xmm1
00089 48 8b 85 f0 00
00 00 mov rax, QWORD PTR ans$[rbp]
00090 0f 11 00 movups XMMWORD PTR [rax], xmm0
; 31 : SSE_INSERT_SIMPLE(1, 2));
; 32 : *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[2], *vector, 0B11110001),
00093 b8 10 00 00 00 mov eax, 16
00098 48 6b c0 02 imul rax, rax, 2
0009c 48 8b 8d e0 00
00 00 mov rcx, QWORD PTR transpose$[rbp]
000a3 48 8b 95 e8 00
00 00 mov rdx, QWORD PTR vector$[rbp]
000aa 0f 10 04 01 movups xmm0, XMMWORD PTR [rcx+rax]
000ae 66 0f 3a 40 02
f1 dpps xmm0, XMMWORD PTR [rdx], 241 ; 000000f1H
000b4 48 8b 85 f0 00
00 00 mov rax, QWORD PTR ans$[rbp]
000bb 0f 10 08 movups xmm1, XMMWORD PTR [rax]
000be 66 0f 3a 21 c8
20 insertps xmm1, xmm0, 32 ; 00000020H
000c4 0f 28 c1 movaps xmm0, xmm1
000c7 48 8b 85 f0 00
00 00 mov rax, QWORD PTR ans$[rbp]
000ce 0f 11 00 movups XMMWORD PTR [rax], xmm0
; 33 : SSE_INSERT_SIMPLE(1, 3));
; 34 : }
000d1 48 8d a5 c8 00
00 00 lea rsp, QWORD PTR [rbp+200]
000d8 5f pop rdi
000d9 5d pop rbp
000da c3 ret 0
dot_31_sse ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\ÄÚºËÔ´´úÂë\StgSharp.C\vector_dot.c
; COMDAT dot_41_sse
_TEXT SEGMENT
transpose$ = 224
vector$ = 232
ans$ = 240
dot_41_sse PROC ; COMDAT
; 7 : {
$LN3:
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000f 55 push rbp
00010 57 push rdi
00011 48 81 ec e8 00
00 00 sub rsp, 232 ; 000000e8H
00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
0001d 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__43BC74EB_vector_dot@c
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
00029 90 npad 1
; 8 : *ans = _mm_dp_ps(transpose->column[0], *vector, 0B11110001);
0002a b8 10 00 00 00 mov eax, 16
0002f 48 6b c0 00 imul rax, rax, 0
00033 48 8b 8d e0 00
00 00 mov rcx, QWORD PTR transpose$[rbp]
0003a 48 8b 95 e8 00
00 00 mov rdx, QWORD PTR vector$[rbp]
00041 0f 10 04 01 movups xmm0, XMMWORD PTR [rcx+rax]
00045 66 0f 3a 40 02
f1 dpps xmm0, XMMWORD PTR [rdx], 241 ; 000000f1H
0004b 48 8b 85 f0 00
00 00 mov rax, QWORD PTR ans$[rbp]
00052 0f 11 00 movups XMMWORD PTR [rax], xmm0
; 9 : *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[1], *vector, 0B11110001),
00055 b8 10 00 00 00 mov eax, 16
0005a 48 6b c0 01 imul rax, rax, 1
0005e 48 8b 8d e0 00
00 00 mov rcx, QWORD PTR transpose$[rbp]
00065 48 8b 95 e8 00
00 00 mov rdx, QWORD PTR vector$[rbp]
0006c 0f 10 04 01 movups xmm0, XMMWORD PTR [rcx+rax]
00070 66 0f 3a 40 02
f1 dpps xmm0, XMMWORD PTR [rdx], 241 ; 000000f1H
00076 48 8b 85 f0 00
00 00 mov rax, QWORD PTR ans$[rbp]
0007d 0f 10 08 movups xmm1, XMMWORD PTR [rax]
00080 66 0f 3a 21 c8
00 insertps xmm1, xmm0, 0
00086 0f 28 c1 movaps xmm0, xmm1
00089 48 8b 85 f0 00
00 00 mov rax, QWORD PTR ans$[rbp]
00090 0f 11 00 movups XMMWORD PTR [rax], xmm0
; 10 : SSE_INSERT_SIMPLE(1, 1));
; 11 : *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[2], *vector, 0B11110001),
00093 b8 10 00 00 00 mov eax, 16
00098 48 6b c0 02 imul rax, rax, 2
0009c 48 8b 8d e0 00
00 00 mov rcx, QWORD PTR transpose$[rbp]
000a3 48 8b 95 e8 00
00 00 mov rdx, QWORD PTR vector$[rbp]
000aa 0f 10 04 01 movups xmm0, XMMWORD PTR [rcx+rax]
000ae 66 0f 3a 40 02
f1 dpps xmm0, XMMWORD PTR [rdx], 241 ; 000000f1H
000b4 48 8b 85 f0 00
00 00 mov rax, QWORD PTR ans$[rbp]
000bb 0f 10 08 movups xmm1, XMMWORD PTR [rax]
000be 66 0f 3a 21 c8
20 insertps xmm1, xmm0, 32 ; 00000020H
000c4 0f 28 c1 movaps xmm0, xmm1
000c7 48 8b 85 f0 00
00 00 mov rax, QWORD PTR ans$[rbp]
000ce 0f 11 00 movups XMMWORD PTR [rax], xmm0
; 12 : SSE_INSERT_SIMPLE(1, 3));
; 13 : *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[3], *vector, 0B11110001),
000d1 b8 10 00 00 00 mov eax, 16
000d6 48 6b c0 03 imul rax, rax, 3
000da 48 8b 8d e0 00
00 00 mov rcx, QWORD PTR transpose$[rbp]
000e1 48 8b 95 e8 00
00 00 mov rdx, QWORD PTR vector$[rbp]
000e8 0f 10 04 01 movups xmm0, XMMWORD PTR [rcx+rax]
000ec 66 0f 3a 40 02
f1 dpps xmm0, XMMWORD PTR [rdx], 241 ; 000000f1H
000f2 48 8b 85 f0 00
00 00 mov rax, QWORD PTR ans$[rbp]
000f9 0f 10 08 movups xmm1, XMMWORD PTR [rax]
000fc 66 0f 3a 21 c8
30 insertps xmm1, xmm0, 48 ; 00000030H
00102 0f 28 c1 movaps xmm0, xmm1
00105 48 8b 85 f0 00
00 00 mov rax, QWORD PTR ans$[rbp]
0010c 0f 11 00 movups XMMWORD PTR [rax], xmm0
; 14 : SSE_INSERT_SIMPLE(1, 4));
; 15 : }
0010f 48 8d a5 c8 00
00 00 lea rsp, QWORD PTR [rbp+200]
00116 5f pop rdi
00117 5d pop rbp
00118 c3 ret 0
dot_41_sse ENDP
_TEXT ENDS
END