Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .NET Framework 4.7.2 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.7.3062.0
- Raytracer2.Benchmarking.BoundingBoxTest.Intersection()
- for (int j = 0, l = n; j < l; j++)
- ^^^^^^^^^
- xor edi,edi
- for (int j = 0, l = n; j < l; j++)
- ^^^^^
- mov ebx,dword ptr [rsi+18h]
- for (int j = 0, l = n; j < l; j++)
- ^^^^^
- test ebx,ebx
- jle M00_L01
- lea rbp,[rsi+20h]
- bb.CollidesWith(rs[j], out t);
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- M00_L00
- mov rcx,rbp
- mov rdx,qword ptr [rsi+8]
- cmp edi,dword ptr [rdx+8]
- jae 00007ffe`3aa55fec
- movsxd r8,edi
- lea r8,[r8+r8*4]
- lea rdx,[rdx+r8*4+10h]
- vmovdqu xmm0,xmmword ptr [rdx]
- vmovdqu xmmword ptr [rsp+28h],xmm0
- mov r8d,dword ptr [rdx+10h]
- mov dword ptr [rsp+38h],r8d
- lea rdx,[rsp+28h]
- lea r8,[rsp+44h]
- call Raytracer2.Acceleration.BoundingBox.CollidesWith(Raytracer2.Primitives.Infinite.Ray, Single ByRef)
- for (int j = 0, l = n; j < l; j++)
- ^^^
- inc edi
- cmp edi,ebx
- jl M00_L00
- }
- ^
- M00_L01
- add rsp,48h
- Raytracer2.Acceleration.BoundingBox.CollidesWith(Raytracer2.Primitives.Infinite.Ray, Single ByRef)
- if (tmax < 0)
- ^^^^^^^^^^^^^
- vxorps xmm1,xmm1,xmm1
- vucomiss xmm1,xmm0
- jbe M01_L00
- t = tmax;
- ^^^^^^^^^
- vmovss dword ptr [rsi],xmm0
- return false;
- ^^^^^^^^^^^^^
- xor eax,eax
- vmovaps xmm6,xmmword ptr [rsp+70h]
- vmovaps xmm7,xmmword ptr [rsp+60h]
- vmovaps xmm8,xmmword ptr [rsp+50h]
- vmovaps xmm9,xmmword ptr [rsp+40h]
- vmovaps xmm10,xmmword ptr [rsp+30h]
- add rsp,80h
- pop rsi
- ret
- if (tmin > tmax)
- ^^^^^^^^^^^^^^^^
- M01_L00
- vmovss xmm1,dword ptr [rsp+2Ch]
- vucomiss xmm1,xmm0
- jbe M01_L01
- t = tmax;
- ^^^^^^^^^
- vmovss dword ptr [rsi],xmm0
- return false;
- ^^^^^^^^^^^^^
- xor eax,eax
- vmovaps xmm6,xmmword ptr [rsp+70h]
- vmovaps xmm7,xmmword ptr [rsp+60h]
- vmovaps xmm8,xmmword ptr [rsp+50h]
- vmovaps xmm9,xmmword ptr [rsp+40h]
- vmovaps xmm10,xmmword ptr [rsp+30h]
- add rsp,80h
- pop rsi
- ret
- t = tmin;
- ^^^^^^^^^
- M01_L01
- vmovss dword ptr [rsi],xmm1
- return true;
- ^^^^^^^^^^^^
- mov eax,1
- .NET Framework 4.7.2 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.7.3062.0
- Raytracer2.Benchmarking.BoundingBoxTest.IntersectionPacked()
- for (int j = 0, l = n / 8; j < l; j++)
- ^^^^^^^^^
- xor edi,edi
- for (int j = 0, l = n / 8; j < l; j++)
- ^^^^^^^^^
- mov ecx,dword ptr [rsi+18h]
- mov edx,ecx
- sar edx,1Fh
- and edx,7
- add edx,ecx
- mov ebx,edx
- sar ebx,3
- for (int j = 0, l = n / 8; j < l; j++)
- ^^^^^
- test ebx,ebx
- jle M00_L01
- lea rbp,[rsi+38h]
- bbp.CollidesWith(ref rps[j], out t);
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- M00_L00
- mov rcx,rbp
- lea rdx,[rsp+20h]
- mov r8,qword ptr [rsi+10h]
- cmp edi,dword ptr [r8+8]
- jae 00007ffe`3aa66235
- movsxd r9,edi
- imul r9,r9,0A0h
- lea r8,[r8+r9+10h]
- lea r9,[rsp+40h]
- call Raytracer2.Acceleration.BoundingBoxPack.CollidesWith(Raytracer2.Primitives.Infinite.RayPack ByRef, System.Numerics.Vector`1 ByRef)
- for (int j = 0, l = n / 8; j < l; j++)
- ^^^
- inc edi
- cmp edi,ebx
- jl M00_L00
- }
- ^
- M00_L01
- add rsp,78h
- Raytracer2.Acceleration.BoundingBoxPack.CollidesWith(Raytracer2.Primitives.Infinite.RayPack ByRef, System.Numerics.Vector`1 ByRef)
- Vector dirfracx = Constants.ones / ray.direction.x;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- mov rax,qword ptr [13305D08h]
- add rax,8
- vmovupd ymm0,ymmword ptr [rax]
- vmovupd ymm1,ymmword ptr [r8+40h]
- vdivps ymm0,ymm0,ymm1
- Vector dirfracy = Constants.ones / ray.direction.y;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- vmovupd ymm1,ymmword ptr [rax]
- vmovupd ymm2,ymmword ptr [r8+60h]
- vdivps ymm1,ymm1,ymm2
- Vector t1 = (this.rx.min - ray.origin.x) * dirfracx;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- vmovupd ymm2,ymmword ptr [rcx]
- vmovupd ymm3,ymmword ptr [r8]
- vsubps ymm2,ymm2,ymm3
- vmulps ymm2,ymm2,ymm0
- vmovupd ymm3,ymmword ptr [rcx+20h]
- vmovupd ymm4,ymmword ptr [r8]
- vsubps ymm3,ymm3,ymm4
- vmulps ymm0,ymm3,ymm0
- vmovupd ymm3,ymmword ptr [rcx+40h]
- vmovupd ymm4,ymmword ptr [r8+20h]
- vsubps ymm3,ymm3,ymm4
- vmulps ymm3,ymm3,ymm1
- vmovupd ymm4,ymmword ptr [rcx+60h]
- vmovupd ymm5,ymmword ptr [r8+20h]
- vsubps ymm4,ymm4,ymm5
- vmulps ymm1,ymm4,ymm1
- vminps ymm4,ymm2,ymm0
- vminps ymm5,ymm3,ymm1
- vmaxps ymm4,ymm4,ymm5
- vmaxps ymm2,ymm2,ymm0
- vmaxps ymm3,ymm3,ymm1
- vminps ymm0,ymm2,ymm3
- Vector lessThanZeroMask = Vector.GreaterThan(tmax, Constants.zeros);
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- vmovaps ymm1,ymm4
- vcmpltps ymm1,ymm1,ymm0
- mov rax,qword ptr [13305D10h]
- vmovupd ymm2,ymmword ptr [rax+8]
- vcmpltps ymm2,ymm2,ymm0
- vpor ymm0,ymm2,ymm1
- t = Vector.ConditionalSelect(combinedMask, tmin, Constants.floatMax);
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- vpand ymm4,ymm4,ymm0
- mov rax,qword ptr [13305D28h]
- vmovupd ymm1,ymmword ptr [rax+8]
- vpandn ymm2,ymm0,ymm1
- vpor ymm4,ymm4,ymm2
- vmovupd ymmword ptr [r9],ymm4
- return combinedMask;
- ^^^^^^^^^^^^^^^^^^^^
- vmovupd ymmword ptr [rdx],ymm0
- mov rax,rdx
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement