Farley Flud
2025-01-28 16:14:38 UTC
Reply
Permalinksearching in an attempt to find a copy somewhere of my absolutely
perfect AVX-512 assembly code.
(Ha, ha, ha, ha, ha, ha, ha, ha, ha, ha!)
Of course, all of his efforts were in total vain, because no such
copy exists anywhere, except right here on C.O.L.A.
Poor tired, exhausted Tyrone (not to mention poor, dumb bastard).
(Ha, ha, ha, ha, ha, ha, ha, ha, ha, ha!)
Well, I have a challenge for the "expert" Tyrone.
I have ever so slightly modified my absolutely perfect AVX-512 code
so that it no longer will execute. Instead it will crash horribly.
The ever-so-slightly modified code follows.
Let's allow the "expert" Tyrone to discover and clearly report
the fault.
Anyone want to takes bets?
Ha, ha, ha, ha, ha, ha, ha, ha, ha, ha, ha, ha, ha!
I recommend that Tyrone invest his extensive and exhaustive search
time in a search for his own stupidity.
Ha, ha, ha, ha, ha, ha, ha, ha, ha, ha, ha, ha, ha!
============================================
Begin AVX-512 NASM Assembly (Modified)
============================================
BITS 64
segment .text
global _start
_start:
mov r8, data_in
mov r9, data_out
mov rbx, qword [stride]
xor rdx, rdx
mov rax, qword [N]
div rbx ; rax = quotient, rdx = remainder
load:
vmovdqa32 zmm1, zword [r8]
vmovdqa32 zword [r9], zmm1
add r8, 64 ; increment data pointers
add r9, 64
dec rax
jnz load
xor r11, r11 ; load mask, i.e. only rdx left over to load
mov r10, -1
mov rcx, rdx
shld r11, r10, cl
kmovq k1, r11;
vmovdqa32 zmm1{k1}{z}, zword [r8]
vmovdqa32 zword [r9], zmm1
exit:
xor edi,edi
mov eax,60
syscall
segment .data
align 64
N: dq 37 ;set length of block and stride
stride: dq 16
data_in: dd 16 dup (0xefbeadde) ;dummy data
dd 16 dup (0xfecaafde)
dd 5 dup (0xefbeadde)
segment .bss
alignb 64
data_out: resd 37
========================================
End AVX-512 NASM Assembly (Modified)
========================================
--
Systemd: solving all the problems that you never knew you had.
Systemd: solving all the problems that you never knew you had.