Skip to content

Instantly share code, notes, and snippets.

@max0x7ba
Created August 7, 2025 04:53
Show Gist options
  • Save max0x7ba/48a46e45169582889ea24fe20b552fc2 to your computer and use it in GitHub Desktop.
Save max0x7ba/48a46e45169582889ea24fe20b552fc2 to your computer and use it in GitHub Desktop.
es::Strategy2Sim::replay_b assembly
0000000000000780 <es::Strategy2Sim::replay_b(es::AlphaTerms const&, double*, unsigned long, double) const>:
780: f3 0f 1e fa endbr64
784: c4 e2 7d 23 5e 10 vpmovsxwd ymm3,XMMWORD PTR [rsi+0x10]
78a: c5 fb 10 7f 10 vmovsd xmm7,QWORD PTR [rdi+0x10]
78f: c5 f9 10 27 vmovupd xmm4,XMMWORD PTR [rdi]
793: c5 f1 57 c9 vxorpd xmm1,xmm1,xmm1
797: 48 8d 79 ff lea rdi,[rcx-0x1]
79b: c5 fa 7e 16 vmovq xmm2,QWORD PTR [rsi]
79f: 48 8b 46 08 mov rax,QWORD PTR [rsi+0x8]
7a3: 31 c9 xor ecx,ecx
7a5: c5 fb 11 0a vmovsd QWORD PTR [rdx],xmm1
7a9: c5 c1 14 c0 vunpcklpd xmm0,xmm7,xmm0
7ad: c5 f9 28 3d 00 00 00 vmovapd xmm7,XMMWORD PTR [rip+0x0] # 7b5 <es::Strategy2Sim::replay_b(es::AlphaTerms const&, double*, unsigned long, double) const+0x35>
7b4: 00
7b5: c4 e3 5d 18 e0 01 vinsertf128 ymm4,ymm4,xmm0,0x1
7bb: e9 84 01 00 00 jmp 944 <es::Strategy2Sim::replay_b(es::AlphaTerms const&, double*, unsigned long, double) const+0x1c4>
7c0: c5 7b 10 00 vmovsd xmm8,QWORD PTR [rax]
7c4: c5 fd 72 f6 1f vpslld ymm0,ymm6,0x1f
7c9: c5 b5 72 f5 1f vpslld ymm9,ymm5,0x1f
7ce: c5 fd 72 e0 1f vpsrad ymm0,ymm0,0x1f
7d3: c4 c1 35 72 e1 1f vpsrad ymm9,ymm9,0x1f
7d9: c5 fd db c3 vpand ymm0,ymm0,ymm3
7dd: c5 35 db cb vpand ymm9,ymm9,ymm3
7e1: 48 ff c1 inc rcx
7e4: c4 c1 7d fa c1 vpsubd ymm0,ymm0,ymm9
7e9: c5 cd 72 d6 01 vpsrld ymm6,ymm6,0x1
7ee: c5 d5 72 d5 01 vpsrld ymm5,ymm5,0x1
7f3: c4 c3 7d 39 c1 01 vextracti128 xmm9,ymm0,0x1
7f9: c4 c1 79 fe c1 vpaddd xmm0,xmm0,xmm9
7fe: c4 e2 79 02 c0 vphaddd xmm0,xmm0,xmm0
803: c4 e2 79 02 c0 vphaddd xmm0,xmm0,xmm0
808: c5 fa e6 c0 vcvtdq2pd xmm0,xmm0
80c: c4 c3 7d 19 e1 01 vextractf128 xmm9,ymm4,0x1
812: c4 c1 79 14 c0 vunpcklpd xmm0,xmm0,xmm8
817: c4 62 e9 98 c8 vfmadd132pd xmm9,xmm2,xmm0
81c: c5 41 15 df vunpckhpd xmm11,xmm7,xmm7
820: c4 41 73 58 db vaddsd xmm11,xmm1,xmm11
825: c5 23 5d df vminsd xmm11,xmm11,xmm7
829: c5 23 5c e9 vsubsd xmm13,xmm11,xmm1
82d: c5 c3 5c c1 vsubsd xmm0,xmm7,xmm1
831: c4 41 31 7d c9 vhsubpd xmm9,xmm9,xmm9
836: c4 41 7b 12 ed vmovddup xmm13,xmm13
83b: c4 41 43 5c e3 vsubsd xmm12,xmm7,xmm11
840: c4 41 73 59 d1 vmulsd xmm10,xmm1,xmm9
845: c4 41 f9 7e e2 vmovq r10,xmm12
84a: c4 e2 a9 99 c2 vfmadd132sd xmm0,xmm10,xmm2
84f: c4 41 59 59 d5 vmulpd xmm10,xmm4,xmm13
854: c5 f1 14 c0 vunpcklpd xmm0,xmm1,xmm0
858: 48 83 c2 08 add rdx,0x8
85c: 48 83 c0 08 add rax,0x8
860: c4 41 79 28 fa vmovapd xmm15,xmm10
865: c4 41 29 15 d2 vunpckhpd xmm10,xmm10,xmm10
86a: c4 41 09 57 f6 vxorpd xmm14,xmm14,xmm14
86f: c4 43 01 4b f6 d0 vblendvpd xmm14,xmm15,xmm14,xmm13
875: c4 41 19 57 e4 vxorpd xmm12,xmm12,xmm12
87a: c4 43 19 4b e2 d0 vblendvpd xmm12,xmm12,xmm10,xmm13
880: c4 43 29 4b d7 d0 vblendvpd xmm10,xmm10,xmm15,xmm13
886: c4 41 23 5c ee vsubsd xmm13,xmm11,xmm14
88b: c4 41 f9 6e f2 vmovq xmm14,r10
890: c4 41 0b 5c e4 vsubsd xmm12,xmm14,xmm12
895: c4 41 13 59 e9 vmulsd xmm13,xmm13,xmm9
89a: c4 62 91 99 e2 vfmadd132sd xmm12,xmm13,xmm2
89f: c4 41 2b 58 d4 vaddsd xmm10,xmm10,xmm12
8a4: c4 41 21 14 da vunpcklpd xmm11,xmm11,xmm10
8a9: c4 41 79 c2 d3 01 vcmpltpd xmm10,xmm0,xmm11
8af: c4 41 29 15 d2 vunpckhpd xmm10,xmm10,xmm10
8b4: c4 c3 79 4b c3 a0 vblendvpd xmm0,xmm0,xmm11,xmm10
8ba: c5 41 15 d7 vunpckhpd xmm10,xmm7,xmm7
8be: c4 41 73 5c d2 vsubsd xmm10,xmm1,xmm10
8c3: c4 41 21 57 db vxorpd xmm11,xmm11,xmm11
8c8: c4 43 29 4b d3 a0 vblendvpd xmm10,xmm10,xmm11,xmm10
8ce: c5 ab 5c c9 vsubsd xmm1,xmm10,xmm1
8d2: c5 7b 12 d9 vmovddup xmm11,xmm1
8d6: c4 41 59 59 c3 vmulpd xmm8,xmm4,xmm11
8db: c4 c1 43 5c ca vsubsd xmm1,xmm7,xmm10
8e0: c4 41 79 28 e8 vmovapd xmm13,xmm8
8e5: c4 41 39 15 c0 vunpckhpd xmm8,xmm8,xmm8
8ea: c4 41 19 57 e4 vxorpd xmm12,xmm12,xmm12
8ef: c4 43 11 4b e4 b0 vblendvpd xmm12,xmm13,xmm12,xmm11
8f5: c4 41 2b 5c e4 vsubsd xmm12,xmm10,xmm12
8fa: c4 41 09 57 f6 vxorpd xmm14,xmm14,xmm14
8ff: c4 43 09 4b f0 b0 vblendvpd xmm14,xmm14,xmm8,xmm11
905: c4 43 39 4b c5 b0 vblendvpd xmm8,xmm8,xmm13,xmm11
90b: c4 41 1b 59 c9 vmulsd xmm9,xmm12,xmm9
910: c4 c1 73 5c ce vsubsd xmm1,xmm1,xmm14
915: c4 e2 b1 99 ca vfmadd132sd xmm1,xmm9,xmm2
91a: c5 3b 58 c1 vaddsd xmm8,xmm8,xmm1
91e: c4 41 29 14 d0 vunpcklpd xmm10,xmm10,xmm8
923: c4 c1 79 c2 ca 01 vcmpltpd xmm1,xmm0,xmm10
929: c5 f1 15 c9 vunpckhpd xmm1,xmm1,xmm1
92d: c4 c3 79 4b c2 10 vblendvpd xmm0,xmm0,xmm10,xmm1
933: c5 f9 28 c8 vmovapd xmm1,xmm0
937: c5 fb 11 02 vmovsd QWORD PTR [rdx],xmm0
93b: 48 39 f9 cmp rcx,rdi
93e: 0f 83 ac 00 00 00 jae 9f0 <es::Strategy2Sim::replay_b(es::AlphaTerms const&, double*, unsigned long, double) const+0x270>
944: f6 c1 1f test cl,0x1f
947: 0f 85 73 fe ff ff jne 7c0 <es::Strategy2Sim::replay_b(es::AlphaTerms const&, double*, unsigned long, double) const+0x40>
94d: 4c 8b 4e 28 mov r9,QWORD PTR [rsi+0x28]
951: 49 89 c8 mov r8,rcx
954: 49 c1 e8 05 shr r8,0x5
958: c4 81 79 6e 34 81 vmovd xmm6,DWORD PTR [r9+r8*4]
95e: 4c 8b 4e 38 mov r9,QWORD PTR [rsi+0x38]
962: c4 83 49 22 34 81 01 vpinsrd xmm6,xmm6,DWORD PTR [r9+r8*4],0x1
969: 4c 8b 4e 48 mov r9,QWORD PTR [rsi+0x48]
96d: c4 83 49 22 34 81 02 vpinsrd xmm6,xmm6,DWORD PTR [r9+r8*4],0x2
974: 4c 8b 4e 58 mov r9,QWORD PTR [rsi+0x58]
978: c4 83 49 22 34 81 03 vpinsrd xmm6,xmm6,DWORD PTR [r9+r8*4],0x3
97f: 4c 8b 4e 68 mov r9,QWORD PTR [rsi+0x68]
983: c4 81 79 6e 04 81 vmovd xmm0,DWORD PTR [r9+r8*4]
989: 4c 8b 4e 78 mov r9,QWORD PTR [rsi+0x78]
98d: c4 83 79 22 04 81 01 vpinsrd xmm0,xmm0,DWORD PTR [r9+r8*4],0x1
994: 4c 8b 4e 20 mov r9,QWORD PTR [rsi+0x20]
998: c4 81 79 6e 2c 81 vmovd xmm5,DWORD PTR [r9+r8*4]
99e: 4c 8b 4e 30 mov r9,QWORD PTR [rsi+0x30]
9a2: c4 83 51 22 2c 81 01 vpinsrd xmm5,xmm5,DWORD PTR [r9+r8*4],0x1
9a9: 4c 8b 4e 40 mov r9,QWORD PTR [rsi+0x40]
9ad: c4 e3 4d 38 f0 01 vinserti128 ymm6,ymm6,xmm0,0x1
9b3: c4 83 51 22 2c 81 02 vpinsrd xmm5,xmm5,DWORD PTR [r9+r8*4],0x2
9ba: 4c 8b 4e 50 mov r9,QWORD PTR [rsi+0x50]
9be: c4 83 51 22 2c 81 03 vpinsrd xmm5,xmm5,DWORD PTR [r9+r8*4],0x3
9c5: 4c 8b 4e 60 mov r9,QWORD PTR [rsi+0x60]
9c9: c4 81 79 6e 04 81 vmovd xmm0,DWORD PTR [r9+r8*4]
9cf: 4c 8b 4e 70 mov r9,QWORD PTR [rsi+0x70]
9d3: c4 83 79 22 04 81 01 vpinsrd xmm0,xmm0,DWORD PTR [r9+r8*4],0x1
9da: c4 e3 55 38 e8 01 vinserti128 ymm5,ymm5,xmm0,0x1
9e0: e9 db fd ff ff jmp 7c0 <es::Strategy2Sim::replay_b(es::AlphaTerms const&, double*, unsigned long, double) const+0x40>
9e5: 66 66 2e 0f 1f 84 00 data16 cs nop WORD PTR [rax+rax*1+0x0]
9ec: 00 00 00 00
9f0: c5 f8 77 vzeroupper
9f3: c3 ret
Compiled with g++-14.2.0
g++-14 -o /home/max/src/quant-research/.build/release/gcc-14/es/replay.o -c -I{3rd-party,include,.build/release/gcc-14} -DNDEBUG -std=c++20 -pthread -g -m{arch=native,asm=intel} -f{PIC,no-plt,no-math-errno,finite-math-only,align-functions=64,lax-vector-conversions,message-length=0} -W{all,extra,error} -Wno-{unused-parameter,comment,interference-size} -save-temps=obj -fverbose-asm -O2 -fgcse-after-reload -mtune=native -MD -MP /home/max/src/quant-research/es/replay.cc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment