-
-
Save borman/682bfb6caec2e8bc2974 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
julia> function dot_product(a, b) | |
result = 0 | |
for i in 1:length(a) | |
result += a[i] * b[i] | |
end | |
return result | |
end | |
dot_product (generic function with 1 method) | |
julia> a = [1, 2, 3] | |
3-element Array{Int64,1}: | |
b 1 | |
2 | |
3 | |
julia> b = [5, 6, 6] | |
3-element Array{Int64,1}: | |
5 | |
6 | |
6 | |
julia> @code_native dot_product(a, b) | |
.text | |
Filename: none | |
Source line: 3 | |
push RBP | |
mov RBP, RSP | |
Source line: 3 | |
push RBX | |
push RAX | |
mov R9, QWORD PTR [RDI + 16] | |
xor EAX, EAX | |
test R9, R9 | |
cmovle R9, RAX | |
test R9, R9 | |
je 77 | |
Source line: 4 | |
mov R8, QWORD PTR [RDI + 16] | |
xor R10D, R10D | |
xor ECX, ECX | |
xor EAX, EAX | |
cmp RCX, R8 | |
jae 64 | |
cmp RCX, QWORD PTR [RSI + 16] | |
jae 54 | |
lea R11, QWORD PTR [8*R10] | |
mov RBX, QWORD PTR [RDI + 8] | |
sub RBX, R11 | |
mov RDX, QWORD PTR [RSI + 8] | |
sub RDX, R11 | |
mov RDX, QWORD PTR [RDX] | |
imul RDX, QWORD PTR [RBX] | |
add RAX, RDX | |
dec R10 | |
inc RCX | |
cmp R9, RCX | |
jne -66 | |
Source line: 6 | |
add RSP, 8 | |
pop RBX | |
pop RBP | |
ret | |
Source line: 4 | |
movabs RAX, 139982669767488 | |
mov RDI, QWORD PTR [RAX] | |
movabs RAX, 139982655574672 | |
mov ESI, 4 | |
call RAX | |
julia> a = [1.0, 2, 3] | |
3-element Array{Float64,1}: | |
1.0 | |
2.0 | |
3.0 | |
julia> b = [5.0, 6, 6] | |
3-element Array{Float64,1}: | |
5.0 | |
6.0 | |
6.0 | |
julia> @code_native dot_product(a, b) | |
.text | |
Filename: none | |
Source line: 2 | |
push RBP | |
mov RBP, RSP | |
push R15 | |
push R14 | |
push R13 | |
push R12 | |
push RBX | |
sub RSP, 56 | |
mov QWORD PTR [RBP - 80], 6 | |
Source line: 2 | |
movabs RCX, 139982670469712 | |
mov RAX, QWORD PTR [RCX] | |
mov QWORD PTR [RBP - 72], RAX | |
lea RAX, QWORD PTR [RBP - 80] | |
mov QWORD PTR [RCX], RAX | |
xorps XMM0, XMM0 | |
movups XMMWORD PTR [RBP - 64], XMM0 | |
mov QWORD PTR [RBP - 48], 0 | |
mov R13, QWORD PTR [RSI] | |
mov R12, QWORD PTR [RSI + 8] | |
mov EAX, 38880992 | |
xor EBX, EBX | |
Source line: 2 | |
mov QWORD PTR [RBP - 64], 38880992 | |
Source line: 3 | |
mov R14, QWORD PTR [R13 + 16] | |
test R14, R14 | |
cmovle R14, RBX | |
test R14, R14 | |
je 147 | |
mov EAX, 38880992 | |
xor R15D, R15D | |
Source line: 4 | |
mov QWORD PTR [RBP - 56], RAX | |
cmp R15, QWORD PTR [R13 + 16] | |
jae 157 | |
cmp R15, QWORD PTR [R12 + 16] | |
jae 146 | |
lea RCX, QWORD PTR [8*RBX] | |
mov RAX, QWORD PTR [R12 + 8] | |
sub RAX, RCX | |
mov RDX, QWORD PTR [R13 + 8] | |
sub RDX, RCX | |
movsd XMM0, QWORD PTR [RDX] | |
mulsd XMM0, QWORD PTR [RAX] | |
movsd QWORD PTR [RBP - 88], XMM0 | |
movabs RAX, 139982655646256 | |
call RAX | |
mov QWORD PTR [RAX], 38814336 | |
movsd XMM0, QWORD PTR [RBP - 88] | |
movsd QWORD PTR [RAX + 8], XMM0 | |
mov QWORD PTR [RBP - 48], RAX | |
mov EDI, 58770016 | |
lea RSI, QWORD PTR [RBP - 56] | |
mov EDX, 2 | |
movabs RAX, 139982655279504 | |
call RAX | |
dec RBX | |
inc R15 | |
cmp R14, R15 | |
mov QWORD PTR [RBP - 64], RAX | |
jne -139 | |
Source line: 6 | |
mov RCX, QWORD PTR [RBP - 72] | |
Source line: 2 | |
movabs RDX, 139982670469712 | |
Source line: 6 | |
mov QWORD PTR [RDX], RCX | |
add RSP, 56 | |
pop RBX | |
pop R12 | |
pop R13 | |
pop R14 | |
pop R15 | |
pop RBP | |
ret | |
Source line: 4 | |
movabs RAX, 139982669767488 | |
mov RDI, QWORD PTR [RAX] | |
movabs RAX, 139982655574672 | |
mov ESI, 4 | |
call RAX | |
julia> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment