News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests

Main Menu

Instruction Timing

Started by nidud, November 23, 2021, 01:57:43 AM

Previous topic - Next topic

nidud

#30
deleted

nidud

#31
deleted

HSE

Equations in Assembly: SmplMath

nidud

#33
deleted

hutch--

#34
That worked but what happened to working executables that made sense ?

My antique Haswell i7 clocked at 4 gig.


name op1 op2 op3 imm-value

adc reg64 reg64 0 0
adc reg64 mem64 0 0
adc reg64 imm8 0 1
adc mem64 reg64 0 0
adc mem64 imm8 0 1

add reg64 reg64 0 0
add reg64 mem64 0 0
add reg64 imm8 0 1
add mem64 reg64 0 0
add mem64 imm8 0 1

and reg64 reg64 0 0
and reg64 mem64 0 0
and reg64 imm8 0 1
and mem64 reg64 0 0
and mem64 imm8 0 1

bsf reg64 reg64 0 0
bsf reg64 mem64 0 0

bsr reg64 reg64 0 0
bsr reg64 mem64 0 0

bswap reg32 0 0 0
bswap reg64 0 0 0

bt reg64 reg64 0 0
bt reg64 imm8 0 1
bt mem16 reg16 0 0
bt mem16 imm8 0 1

btc reg64 reg64 0 0
btc reg64 imm8 0 1
btc mem16 imm8 0 1

btr reg64 reg64 0 0
btr reg64 imm8 0 1
btr mem16 imm8 0 1

bts reg64 reg64 0 0
bts reg64 imm8 0 1
bts mem16 imm8 0 1

call reg64 0 0 0 ; *

cbw 0 0 0 0
cdq 0 0 0 0
clc 0 0 0 0
cld 0 0 0 0

;cmovz reg64 reg64 0 0
;cmovnz reg64 reg64 0 0

cmp reg64 reg64 0 0
cmp reg64 imm8 0 1
cmp mem64 reg64 0 0
cmp mem64 imm8 0 1

cmpsb 0 0 0 0
cmpsw 0 0 0 0
cmpsd 0 0 0 0

cmpxchg reg64 reg64 0 0
cmpxchg mem64 reg64 0 0

cwd 0 0 0 0
cwde 0 0 0 0

dec reg8 0 0 0
dec reg64 0 0 0
dec mem8 0 0 0
dec mem64 0 0 0

div reg64 0 0 0 ;*
enter imm8 imm8 0 8 ;*

;idiv reg8 0 0 0 ;*
;idiv reg16 0 0 0 ;*
idiv reg32 0 0 0 ;*
;idiv reg64 0 0 0 ;*
;idiv mem8 0 0 0 ;*
;idiv mem16 0 0 0 ;*
;idiv mem32 0 0 0 ;*
;idiv mem64 0 0 0 ;*

imul reg8 0 0 0
imul reg16 0 0 0
imul reg32 0 0 0
imul reg64 0 0 0
imul mem8 0 0 0
imul mem16 0 0 0
imul mem32 0 0 0
imul mem64 0 0 0
imul reg16 reg16 0 0
imul reg32 reg32 0 0
imul reg64 reg64 0 0
imul reg16 reg16 imm8 2
imul reg32 reg32 imm8 2
imul reg64 reg64 imm8 2

inc reg8 0 0 0
inc reg64 0 0 0
inc mem8 0 0 0
inc mem64 0 0 0

lahf 0 0 0 0
lar reg16 reg16 0 0
lar reg32 reg32 0 0

lea reg64 mem64 0 0

lodsb 0 0 0 0
lodsw 0 0 0 0
lodsd 0 0 0 0

mov reg64 reg64 0 0
mov reg64 mem64 0 0
mov reg64 imm8 0 10
mov mem64 reg64 0 0
mov mem64 imm8 0 0

movsb 0 0 0 0
movsw 0 0 0 0
movsd 0 0 0 0

movsx reg32 reg8 0 0
movsx reg32 mem8 0 0
movsx reg64 reg16 0 0
movsx reg64 mem16 0 0

movzx reg32 reg8 0 0
movzx reg32 mem8 0 0
movzx reg64 reg16 0 0
movzx reg64 mem16 0 0

mul reg8 0 0 0
mul reg16 0 0 0
mul reg32 0 0 0
mul reg64 0 0 0
mul mem8 0 0 0
mul mem16 0 0 0
mul mem32 0 0 0
mul mem64 0 0 0

neg reg8 0 0 0
neg reg64 0 0 0
neg mem8 0 0 0
neg mem64 0 0 0

nop 0 0 0 0

not reg8 0 0 0
not reg64 0 0 0
not mem32 0 0 0
not mem64 0 0 0

or reg8 reg8 0 0
or reg64 reg64 0 0
or reg64 mem64 0 0
or reg64 imm8 0 8
or mem8 reg8 0 0
or mem64 reg64 0 0
or mem64 imm8 0 8

pop reg64 0 0 0
popfq 0 0 0 0
push reg64 0 0 0

push mem64 0 0 0
pushfq 0 0 0 0


rcl reg8 imm8 0 1
rcl reg64 imm8 0 1
rcl reg8 regcl 0 0
rcl reg64 regcl 0 0
rcl mem8 imm8 0 1
rcl mem64 imm8 0 1

rcr reg8 imm8 0 1
rcr reg64 imm8 0 1
rcr reg8 regcl 0 0
rcr reg64 regcl 0 0
rcr mem8 imm8 0 1
rcr mem64 imm8 0 1

rol reg8 imm8 0 1
rol reg64 imm8 0 1
rol reg8 regcl 0 0
rol reg64 regcl 0 0
rol mem8 imm8 0 1
rol mem64 imm8 0 1

ror reg8 imm8 0 1
ror reg64 imm8 0 1
ror reg8 regcl 0 0
ror reg64 regcl 0 0
ror mem8 imm8 0 1
ror mem64 imm8 0 1

shl reg8 imm8 0 1
shl reg64 imm8 0 1
shl reg8 regcl 0 0
shl reg64 regcl 0 0
shl mem8 imm8 0 1
shl mem64 imm8 0 1

sar reg8 imm8 0 1
sar reg64 imm8 0 1
sar reg8 regcl 0 0
sar reg64 regcl 0 0
sar mem8 imm8 0 1
sar mem64 imm8 0 1

sbb reg8 reg8 0 0
sbb reg64 reg64 0 0
sbb reg8 imm8 0 1
sbb reg64 imm8 0 1
sbb mem8 reg8 0 0
sbb mem64 reg64 0 0
sbb mem8 imm8 0 1
sbb mem64 imm8 0 1

scasb 0 0 0 0
scasw 0 0 0 0
scasd 0 0 0 0

setae reg8 0 0 0
setae mem8 0 0 0
setb reg8 0 0 0
setb mem8 0 0 0
setg reg8 0 0 0
setg mem8 0 0 0
setng reg8 0 0 0
setng mem8 0 0 0

shr reg8 imm8 0 1
shr reg64 imm8 0 1
shr reg8 regcl 0 0
shr reg64 regcl 0 0
shr mem8 imm8 0 1
shr mem64 imm8 0 1

shld reg16 reg16 imm8 1
shld reg32 reg32 imm8 1
shld reg64 reg64 imm8 1
shld mem16 reg16 imm8 1
shld mem64 reg64 imm8 1

shrd reg16 reg16 imm8 1
shrd reg32 reg32 imm8 1
shrd reg64 reg64 imm8 1
shrd mem16 reg16 imm8 1
shrd mem64 reg64 imm8 1

smsw reg32 0 0 0
smsw reg64 0 0 0
stc 0 0 0 0
std 0 0 0 0 ; *

stosb 0 0 0 0
stosw 0 0 0 0
stosd 0 0 0 0

str reg16 0 0 0
str reg32 0 0 0

sub reg8 reg8 0 0
sub reg64 reg64 0 0
sub reg64 imm8 0 0
sub reg64 mem64 0 0
sub mem64 imm8 0 0
sub mem64 reg64 0 0

test reg8 reg8 0 0
test reg64 reg64 0 0
test reg64 imm8 0 0
test reg64 mem64 0 0
test mem64 imm8 0 0
test mem64 reg64 0 0

xchg reg8 reg8 0 0
xchg reg64 reg64 0 0
xchg reg64 mem64 0 0
xchg mem64 reg64 0 0

xlat 0 0 0 0 ; *
xlatb 0 0 0 0 ; *

xor reg8 reg8 0 0
xor reg64 reg64 0 0
xor reg64 mem64 0 0
xor reg64 imm8 0 8
xor mem8 reg8 0 0
xor mem64 reg64 0 0
xor mem64 imm8 0 8
movd reg32 reg32 0 0
movd reg64 reg64 0 0

TimoVJL

We could collect result to files for later processing.
InstructionTiming.exe > Result.txt
InstructionTiming.exe simd.txt > ResultSIMD.txt
exit
AMD Ryzen 5 3400G with Radeon Vega Graphics     (AVX2)
------------------------------------------------
Instr.     Operands         Bytes  Clocks
------------------------------------------------
addpd    reg128,reg128        4       9
addps    reg128,reg128        3       9
addsd    reg128,reg128        4       9
addss    reg128,reg128        4       9
andnpd   reg128,reg128        4       1
andnps   reg128,reg128        3       1
andpd    reg128,reg128        4       3
andps    reg128,reg128        3       3
comisd   reg128,reg128        4       4
comiss   reg128,reg128        3       4
cvtsd2si reg64,reg128         5       4
cvtsi2sd reg128,reg64         5       4
cvtsi2ss reg128,reg32         4       4
cvtss2si reg32,reg128         4       4
divpd    reg128,reg128        4      23
divps    reg128,reg128        3      29
divsd    reg128,reg128        4      23
divss    reg128,reg128        4      29
maxpd    reg128,reg128        4       3
maxps    reg128,reg128        3       3
maxsd    reg128,reg128        4       3
maxss    reg128,reg128        4       3
minpd    reg128,reg128        4       3
minps    reg128,reg128        3       3
minsd    reg128,reg128        4       3
minss    reg128,reg128        4       3
movapd   reg128,reg128        4       1
movaps   reg128,reg128        3       1
movaps   reg128,reg128        3       1
movd     reg32,reg128         4       4
movdqa   reg128,reg128        4       1
movdqu   reg128,reg128        4       1
movhlps  reg128,reg128        3       3
movhpd   reg128,mem128        7       2
movhps   reg128,mem128        6       2
movlhps  reg128,reg128        3       3
movlpd   reg128,mem128        7       2
movlps   reg128,mem128        6       2
movntdq  mem64,reg128         7      10
movntpd  mem64,reg128         7      10
movntps  mem64,reg128         6      11
movq     reg64,reg128         5       5
movsd    reg128,reg128        4       2
movss    reg128,reg128        4       2
movupd   reg128,reg128        4       2
movups   reg128,reg128        3       2
mulpd    reg128,reg128        4      15
mulps    reg128,reg128        3      11
mulsd    reg128,reg128        4      15
mulss    reg128,reg128        4      11
orpd     reg128,reg128        4       4
orps     reg128,reg128        3       4
sqrtpd   reg128,reg128        4      20
sqrtps   reg128,reg128        3      19
sqrtsd   reg128,reg128        4      19
sqrtss   reg128,reg128        4      17
subpd    reg128,reg128        4       9
subps    reg128,reg128        3       9
subsd    reg128,reg128        4       9
subss    reg128,reg128        4       9
xorpd    reg128,reg128        4       1
xorps    reg128,reg128        3       1
May the source be with you

HSE

Quote from: nidud on December 02, 2021, 01:04:23 PM
It takes input files so drop the simd.txt file on it.

Very smart for me  :biggrin:


Intel(R) Core(TM) i3-10100 CPU @ 3.60GHz (AVX2)
------------------------------------------------
Instr.     Operands         Bytes  Clocks
------------------------------------------------
addpd    reg128,reg128        4      10
addps    reg128,reg128        3      10
addsd    reg128,reg128        4      10
addss    reg128,reg128        4      10
andnpd   reg128,reg128        4       3
andnps   reg128,reg128        3       3
andpd    reg128,reg128        4       2
andps    reg128,reg128        3       3
comisd   reg128,reg128        4       3
comiss   reg128,reg128        3       3
cvtsd2si reg64,reg128         5       3
cvtsi2sd reg128,reg64         5       3
cvtsi2ss reg128,reg32         4       3
cvtss2si reg32,reg128         4       3
divpd    reg128,reg128        4      34
divps    reg128,reg128        3      28
divsd    reg128,reg128        4      33
divss    reg128,reg128        4      28
maxpd    reg128,reg128        4      10
maxps    reg128,reg128        3      10
maxsd    reg128,reg128        4      10
maxss    reg128,reg128        4      10
minpd    reg128,reg128        4      10
minps    reg128,reg128        3      10
minsd    reg128,reg128        4      10
minss    reg128,reg128        4      10
movapd   reg128,reg128        4       1
movaps   reg128,reg128        3       1
movaps   reg128,reg128        3       1
movd     reg32,reg128         4       3
movdqa   reg128,reg128        4       1
movdqu   reg128,reg128        4       1
movhlps  reg128,reg128        3       3
movhpd   reg128,mem128        7       3
movhps   reg128,mem128        6       3
movlhps  reg128,reg128        3       3
movlpd   reg128,mem128        7       3
movlps   reg128,mem128        6       3
movntdq  mem64,reg128         7       5
movntpd  mem64,reg128         7       5
movntps  mem64,reg128         6       5
movq     reg64,reg128         5       3
movsd    reg128,reg128        4       3
movss    reg128,reg128        4       3
movupd   reg128,reg128        4       1
movups   reg128,reg128        3       1
mulpd    reg128,reg128        4      10
mulps    reg128,reg128        3      10
mulsd    reg128,reg128        4      10
mulss    reg128,reg128        4      10
orpd     reg128,reg128        4       3
orps     reg128,reg128        3       3
sqrtpd   reg128,reg128        4      15
sqrtps   reg128,reg128        3      10
sqrtsd   reg128,reg128        4      34
sqrtss   reg128,reg128        4      31
subpd    reg128,reg128        4      10
subps    reg128,reg128        3      10
subsd    reg128,reg128        4      10
subss    reg128,reg128        4      10
xorpd    reg128,reg128        4       1
xorps    reg128,reg128        3       1
Equations in Assembly: SmplMath

TimoVJL

#37
Intel(R) Core(TM) i3-10100 AMD Ryzen 5 3400G 11th Gen Intel(R) Core(TM) i7-11800H
------------------------- -------
Instr.  Operands          Bytes
------------------------- -------
addpd   reg128,reg128        4         10       9      13
addps   reg128,reg128        3         10       9      13
addsd   reg128,reg128        4         10       9      13
addss   reg128,reg128        4         10       9      13
andnpd  reg128,reg128        4          3       1       3
andnps  reg128,reg128        3          3       1       3
andpd   reg128,reg128        4          2       3       3
andps   reg128,reg128        3          3       3       3
comisd  reg128,reg128        4          3       4       4
comiss  reg128,reg128        3          3       4       4
cvtsd2sireg64,reg128         5          3       4       4
cvtsi2sdreg128,reg64         5          3       4       4
cvtsi2ssreg128,reg32         4          3       4       4
cvtss2sireg32,reg128         4          3       4       4
divpd   reg128,reg128        4         34      23      43
divps   reg128,reg128        3         28      29      36
divsd   reg128,reg128        4         33      23      43
divss   reg128,reg128        4         28      29      36
maxpd   reg128,reg128        4         10       3      13
maxps   reg128,reg128        3         10       3      13
maxsd   reg128,reg128        4         10       3      13
maxss   reg128,reg128        4         10       3      13
minpd   reg128,reg128        4         10       3      13
minps   reg128,reg128        3         10       3      13
minsd   reg128,reg128        4         10       3      13
minss   reg128,reg128        4         10       3      13
movapd  reg128,reg128        4          1       1       1
movaps  reg128,reg128        3          1       1       1
movaps  reg128,reg128        3          1       1       1
movd    reg32,reg128         4          3       4       4
movdqa  reg128,reg128        4          1       1       1
movdqu  reg128,reg128        4          1       1       1
movhlps reg128,reg128        3          3       3       4
movhpd  reg128,mem128        7          3       2       4
movhps  reg128,mem128        6*         3       2       4
movlhps reg128,reg128        3          3       3       4
movlpd  reg128,mem128        7          3       2       2
movlps  reg128,mem128        6          3       2       2
movntdq mem64,reg128         7          5      10       7
movntpd mem64,reg128         7          5      10       7
movntps mem64,reg128         6          5      11       8
movq    reg64,reg128         5          3       5       4
movsd   reg128,reg128        4          3       2       3
movss   reg128,reg128        4          3       2       3
movupd  reg128,reg128        4          1       2       1
movups  reg128,reg128        3          1       2       1
mulpd   reg128,reg128        4         10      15      13
mulps   reg128,reg128        3         10      11      13
mulsd   reg128,reg128        4         10      15      13
mulss   reg128,reg128        4         10      11      13
orpd    reg128,reg128        4          3       4       3
orps    reg128,reg128        3          3       4       3
sqrtpd  reg128,reg128        4         15      20      20
sqrtps  reg128,reg128        3         10      19      13
sqrtsd  reg128,reg128        4*        34      19      44
sqrtss  reg128,reg128        4*        31      17      39
subpd   reg128,reg128        4*        10       9      13
subps   reg128,reg128        3*        10       9      13
subsd   reg128,reg128        4*        10       9      13
subss   reg128,reg128        4         10       9      13
xorpd   reg128,reg128        4          1       1       1
xorps   reg128,reg128        3          1       1       1
May the source be with you

LiaoMi

11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz (AVX512)
------------------------------------------------
Instr.     Operands         Bytes  Clocks
------------------------------------------------
adc      reg64,reg64          3       4
adc      reg64,mem128         6       3
adc      reg64,imm8           4       3
adc      mem128,reg64         6       6
adc      mem128,imm8          7       8
add      reg64,reg64          3       2
add      reg64,mem128         6       2
add      reg64,imm8           4       1
add      mem128,reg64         6       4
add      mem128,imm8          7       4
and      reg64,reg64          3       1
and      reg64,mem128         6       2
and      reg64,imm8           4       1
and      mem128,reg64         6       4
and      mem128,imm8          7       4
bsf      reg64,reg64          4       5
bsf      reg64,mem128         7       5
bsr      reg64,reg64          4       5
bsr      reg64,mem128         7       5
bswap    reg32                2       2
bswap    reg64                3       5
bt       reg64,reg64          4       2
bt       reg64,imm8           5       2
bt       mem16,reg16          6      22
bt       mem16,imm8           6       2
btc      reg64,reg64          4       2
btc      reg64,imm8           5       2
btc      mem16,imm8           6       3
btr      reg64,reg64          4       2
btr      reg64,imm8           5       2
btr      mem16,imm8           6       3
bts      reg64,reg64          4       2
bts      reg64,imm8           5       2
bts      mem16,imm8           6       3
call     reg64                2      78
cbw                           2       4
cdq                           1       5
clc                           1       1
cld                           1      18
cmp      reg64,reg64          3       1
cmp      reg64,imm8           4       1
cmp      mem128,reg64         6       2
cmp      mem128,imm8          7       2
cmpsb                         1      18
cmpsw                         2      18
cmpsd                         1      18
cmpxchg  reg64,reg64          4      22
cmpxchg  mem128,reg64         7      18
cwd                           2       5
cwde                          1       5
dec      reg8                 2       1
dec      reg64                3       1
dec      mem8                 2       5
dec      mem128               6       5
div      reg64                8      57
enter    imm8,imm8            4      36
idiv     reg32                7      40
imul     reg8                 2      13
imul     reg16                3      19
imul     reg32                2      19
imul     reg64                3      14
imul     mem8                 2      13
imul     mem16                4      18
imul     mem32                4      19
imul     mem128               6      13
imul     reg16,reg16          4       5
imul     reg32,reg32          3       5
imul     reg64,reg64          4       5
imul     reg16,reg16,imm8     4       5
imul     reg32,reg32,imm8     3       5
imul     reg64,reg64,imm8     4       5
inc      reg8                 2       1
inc      reg64                3       1
inc      mem8                 2       5
inc      mem128               6       5
lahf                          1      13
lar      reg16,reg16          4     572
lar      reg32,reg32          3     568
lea      reg64,mem128         6       1
lodsb                         1       5
lodsw                         2       5
lodsd                         1       5
mov      reg64,reg64          3       1
mov      reg64,mem128         6       2
mov      reg64,imm8           7       1
mov      mem128,reg64         6       2
mov      mem128,imm8         10       2
movsb                         1      18
movsw                         2      18
movsd                         1      18
movsx    reg32,reg8           3       1
movsx    reg32,mem8           4       2
movsx    reg64,reg16          4       1
movsx    reg64,mem16          5       2
movzx    reg32,reg8           3       1
movzx    reg32,mem8           4       2
movzx    reg64,reg16          4       1
movzx    reg64,mem16          5       2
mul      reg8                 2      13
mul      reg16                3      19
mul      reg32                2      19
mul      reg64                3      14
mul      mem8                 2      13
mul      mem16                4      18
mul      mem32                4      19
mul      mem128               6      13
neg      reg8                 2       1
neg      reg64                3       1
neg      mem8                 2       5
neg      mem128               6       4
nop                           1       1
not      reg8                 2       1
not      reg64                3       1
not      mem32                4       5
not      mem128               6       5
or       reg8,reg8            2       1
or       reg64,reg64          3       1
or       reg64,mem128         6       2
or       reg64,imm8           4       1
or       mem8,reg8            3       5
or       mem128,reg64         6       4
or       mem128,imm8          7       4
pop      reg64                1       2
popfq                         4      98
push     reg64                1       2


simd
11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz (AVX512)
------------------------------------------------
Instr.     Operands         Bytes  Clocks
------------------------------------------------
addpd    reg128,reg128        4      13
addps    reg128,reg128        3      13
addsd    reg128,reg128        4      13
addss    reg128,reg128        4      13
andnpd   reg128,reg128        4       3
andnps   reg128,reg128        3       3
andpd    reg128,reg128        4       3
andps    reg128,reg128        3       3
comisd   reg128,reg128        4       4
comiss   reg128,reg128        3       4
cvtsd2si reg64,reg128         5       4
cvtsi2sd reg128,reg64         5       4
cvtsi2ss reg128,reg32         4       4
cvtss2si reg32,reg128         4       4
divpd    reg128,reg128        4      43
divps    reg128,reg128        3      36
divsd    reg128,reg128        4      43
divss    reg128,reg128        4      36
maxpd    reg128,reg128        4      13
maxps    reg128,reg128        3      13
maxsd    reg128,reg128        4      13
maxss    reg128,reg128        4      13
minpd    reg128,reg128        4      13
minps    reg128,reg128        3      13
minsd    reg128,reg128        4      13
minss    reg128,reg128        4      13
movapd   reg128,reg128        4       1
movaps   reg128,reg128        3       1
movaps   reg128,reg128        3       1
movd     reg32,reg128         4       4
movdqa   reg128,reg128        4       1
movdqu   reg128,reg128        4       1
movhlps  reg128,reg128        3       4
movhpd   reg128,mem128        7       4
movhps   reg128,mem128        6       4
movlhps  reg128,reg128        3       4
movlpd   reg128,mem128        7       2
movlps   reg128,mem128        6       2
movntdq  mem64,reg128         7       7
movntpd  mem64,reg128         7       7
movntps  mem64,reg128         6       8
movq     reg64,reg128         5       4
movsd    reg128,reg128        4       3
movss    reg128,reg128        4       3
movupd   reg128,reg128        4       1
movups   reg128,reg128        3       1
mulpd    reg128,reg128        4      13
mulps    reg128,reg128        3      13
mulsd    reg128,reg128        4      13
mulss    reg128,reg128        4      13
orpd     reg128,reg128        4       3
orps     reg128,reg128        3       3
sqrtpd   reg128,reg128        4      20
sqrtps   reg128,reg128        3      13
sqrtsd   reg128,reg128        4      44
sqrtss   reg128,reg128        4      39
subpd    reg128,reg128        4      13
subps    reg128,reg128        3      13
subsd    reg128,reg128        4      13
subss    reg128,reg128        4      13
xorpd    reg128,reg128        4       1
xorps    reg128,reg128        3       1


nidud

#39
deleted

HSE

Fantastic Nidud!!

So many instructions I don't have a clue  :thumbsup:

Intel(R) Core(TM) i3-10100 CPU @ 3.60GHz (AVX2)
------------------------------------------------------
Instr.                 Operands         Bytes  Clocks
------------------------------------------------------
vbroadcasti128 reg256,mem128              8       2
vbroadcastsd reg256,reg128                5       3
vbroadcastss reg128,reg128                5       3
vbroadcastss reg256,reg128                5       3
vcvtsd2si    reg32,mem64                  7       4
vcvtsd2si    reg32,reg128                 4       3
vcvtsd2si    reg64,mem64                  8       4
vcvtsd2si    reg64,reg128                 5       3
vcvtss2si    reg32,mem32                  6       4
vcvtss2si    reg32,reg128                 4       3
vcvtss2si    reg64,mem32                  7       4
vcvtss2si    reg64,reg128                 5       4
vcvttsd2si   reg32,mem64                  7       4
vcvttsd2si   reg32,reg128                 4       3
vcvttsd2si   reg64,mem64                  8       4
vcvttss2si   reg32,mem32                  6       4
vcvttss2si   reg32,reg128                 4       3
vcvttss2si   reg64,mem32                  7       4
vcvttss2si   reg64,reg128                 5       4
vextracti128 mem128,reg256,imm8           9       4
vextracti128 reg128,reg256,imm8           6       3
vinserti128  reg256,reg256,mem128,imm8    9       2
vinserti128  reg256,reg256,reg128,imm8    6       3
vmovd        reg32,reg128                 4       3
vmovd        mem32,reg128                 6       4
vmovd        mem64,reg128                 8       4
vmovd        reg64,reg128                 5       3
vmovd        reg128,reg32                 4       3
vmovd        reg128,mem32                 6       2
vmovd        reg128,mem64                 8       2
vmovd        reg128,reg64                 5       3
vmovntdqa    reg256,mem256                8       2
vmovq        mem64,reg128                 7       4
vmovq        reg128,mem64                 7       2
vmpsadbw     reg256,reg256,reg256,imm8    6       7
vmpsadbw     reg256,reg256,mem256,imm8    9       7
vpabsb       reg256,mem256                8       2
vpabsb       reg256,reg256                5       2
vpabsd       reg256,mem256                8       2
vpabsd       reg256,reg256                5       2
vpabsw       reg256,mem256                8       2
vpabsw       reg256,reg256                5       2
vpackssdw    reg256,reg256,reg256         4       3
vpackssdw    reg256,reg256,mem256         7       4
vpacksswb    reg256,reg256,reg256         4       3
vpacksswb    reg256,reg256,mem256         7       3
vpackusdw    reg256,reg256,reg256         5       3
vpackusdw    reg256,reg256,mem256         8       3
vpackuswb    reg256,reg256,reg256         4       3
vpackuswb    reg256,reg256,mem256         7       3
vpaddb       reg256,reg256,reg256         4       1
vpaddb       reg256,reg256,mem256         7       2
vpaddd       reg256,reg256,reg256         4       1
vpaddd       reg256,reg256,mem256         7       2
vpaddq       reg256,reg256,reg256         4       1
vpaddq       reg256,reg256,mem256         7       2
vpaddsb      reg256,reg256,reg256         4       2
vpaddsb      reg256,reg256,mem256         7       2
vpaddsw      reg256,reg256,reg256         4       2
vpaddsw      reg256,reg256,mem256         7       2
vpaddusb     reg256,reg256,reg256         4       2
vpaddusb     reg256,reg256,mem256         7       2
vpaddusw     reg256,reg256,reg256         4       2
vpaddusw     reg256,reg256,mem256         7       2
vpaddw       reg256,reg256,reg256         4       1
vpaddw       reg256,reg256,mem256         7       2
vpalignr     reg256,reg256,reg256,imm8    6       3
vpalignr     reg256,reg256,mem256,imm8    9       4
vpand        reg256,reg256,reg256         4       1
vpand        reg256,reg256,mem256         7       2
vpandn       reg256,reg256,reg256         4       1
vpandn       reg256,reg256,mem256         7       2
vpavgb       reg256,reg256,reg256         4       2
vpavgb       reg256,reg256,mem256         7       2
vpavgw       reg256,reg256,reg256         4       2
vpavgw       reg256,reg256,mem256         7       2
vpblendd     reg128,reg128,mem128,imm8    9       2
vpblendd     reg128,reg128,reg128,imm8    6       1
vpblendd     reg256,reg256,reg256,imm8    6       1
vpblendd     reg256,reg256,mem256,imm8    9       2
vpblendvb    reg256,reg256,reg256,reg256  6       4
vpblendvb    reg256,reg256,mem256,reg256  9       4
vpblendw     reg256,reg256,reg256,imm8    6       3
vpblendw     reg256,reg256,mem256,imm8    9       4
vpbroadcastb reg128,mem8                  5       3
vpbroadcastb reg128,reg128                5       3
vpbroadcastb reg256,mem8                  5       3
vpbroadcastb reg256,reg128                5       4
vpbroadcastd reg128,mem32                 7       2
vpbroadcastd reg128,reg128                5       3
vpbroadcastd reg256,mem32                 7       2
vpbroadcastd reg256,reg128                5       3
vpbroadcastq reg128,mem64                 8       2
vpbroadcastq reg128,reg128                5       3
vpbroadcastq reg256,mem64                 8       2
vpbroadcastq reg256,reg128                5       3
vpbroadcastw reg128,mem16                 6       3
vpbroadcastw reg128,reg128                5       3
vpbroadcastw reg256,mem16                 6       3
vpbroadcastw reg256,reg128                5       4
vpcmpeqb     reg256,reg256,reg256         4       2
vpcmpeqb     reg256,reg256,mem256         7       2
vpcmpeqd     reg256,reg256,reg256         4       2
vpcmpeqd     reg256,reg256,mem256         7       2
vpcmpeqq     reg256,reg256,reg256         5       2
vpcmpeqq     reg256,reg256,mem256         8       2
vpcmpeqw     reg256,reg256,reg256         4       2
vpcmpeqw     reg256,reg256,mem256         7       2
vpcmpgtb     reg256,reg256,reg256         4       1
vpcmpgtb     reg256,reg256,mem256         7       2
vpcmpgtd     reg256,reg256,reg256         4       1
vpcmpgtd     reg256,reg256,mem256         7       2
vpcmpgtq     reg256,reg256,reg256         5       1
vpcmpgtq     reg256,reg256,mem256         8       4
vpcmpgtw     reg256,reg256,reg256         4       1
vpcmpgtw     reg256,reg256,mem256         7       2
vperm2i128   reg256,reg256,reg256,imm8    6       3
vperm2i128   reg256,reg256,mem256,imm8    9       3
vpermd       reg256,reg256,reg256         5       3
vpermd       reg256,reg256,mem256         8       3
vpermpd      reg256,reg256,imm8           6       3
vpermpd      reg256,mem256,imm8           9       3
vpermps      reg256,reg256,reg256         5       3
vpermps      reg256,reg256,mem256         8       3
vpermq       reg256,reg256,imm8           6       3
vpermq       reg256,mem256,imm8           9       3
vpextrb      reg32,reg128,imm8            6       3
vpextrb      mem8,reg128,imm8             6       4
vpextrd      reg32,reg128,imm8            6       3
vpextrd      mem32,reg128,imm8            8       4
vpextrq      mem64,reg128,imm8            9       4
vpextrq      reg64,reg128,imm8            6       3
vpextrw      reg32,reg128,imm8            5       3
vpextrw      mem16,reg128,imm8            7       4
vphaddd      reg256,reg256,reg256         5       7
vphaddd      reg256,reg256,mem256         8       7
vphaddsw     reg256,reg256,reg256         5       7
vphaddsw     reg256,reg256,mem256         8       7
vphaddw      reg256,reg256,reg256         5       7
vphaddw      reg256,reg256,mem256         8       7
vphsubd      reg256,reg256,reg256         5       7
vphsubd      reg256,reg256,mem256         8       7
vphsubsw     reg256,reg256,reg256         5       7
vphsubsw     reg256,reg256,mem256         8       7
vphsubw      reg256,reg256,reg256         5       7
vphsubw      reg256,reg256,mem256         8       7
vpinsrb      reg128,reg128,reg32,imm8     6       7
vpinsrb      reg128,reg128,mem8,imm8      6       3
vpinsrd      reg128,reg128,reg32,imm8     6       7
vpinsrd      reg128,reg128,mem32,imm8     8       3
vpinsrq      reg128,reg128,mem64,imm8     9       3
vpinsrq      reg128,reg128,reg64,imm8     6       7
vpinsrw      reg128,reg128,reg32,imm8     5       7
vpinsrw      reg128,reg128,mem16,imm8     6       3
vpmaddubsw   reg256,reg256,reg256         5       2
vpmaddubsw   reg256,reg256,mem256         8       3
vpmaddwd     reg256,reg256,reg256         4       2
vpmaddwd     reg256,reg256,mem256         7       2
vpmaskmovd   mem128,reg128,reg128         8       5
vpmaskmovd   reg128,reg128,mem128         8       2
vpmaskmovd   reg256,reg256,mem256         8       2
vpmaskmovd   mem256,reg256,reg256         8       4
vpmaskmovq   mem128,reg128,reg128         8       4
vpmaskmovq   reg128,reg128,mem128         8       2
vpmaskmovq   reg256,reg256,mem256         8       2
vpmaskmovq   mem256,reg256,reg256         8       4
vpmaxsb      reg256,reg256,reg256         5       2
vpmaxsb      reg256,reg256,mem256         8       2
vpmaxsd      reg256,reg256,reg256         5       2
vpmaxsd      reg256,reg256,mem256         8       2
vpmaxsw      reg256,reg256,reg256         4       2
vpmaxsw      reg256,reg256,mem256         7       2
vpmaxub      reg256,reg256,reg256         4       2
vpmaxub      reg256,reg256,mem256         7       2
vpmaxud      reg256,reg256,reg256         5       2
vpmaxud      reg256,reg256,mem256         8       2
vpmaxuw      reg256,reg256,reg256         5       2
vpmaxuw      reg256,reg256,mem256         8       2
vpminsb      reg256,reg256,reg256         5       2
vpminsb      reg256,reg256,mem256         8       2
vpminsd      reg256,reg256,reg256         5       2
vpminsd      reg256,reg256,mem256         8       2
vpminsw      reg256,reg256,reg256         4       2
vpminsw      reg256,reg256,mem256         7       2
vpminub      reg256,reg256,reg256         4       2
vpminub      reg256,reg256,mem256         7       2
vpminud      reg256,reg256,reg256         5       2
vpminud      reg256,reg256,mem256         8       2
vpminuw      reg256,reg256,reg256         5       2
vpminuw      reg256,reg256,mem256         8       3
vpmovmskb    reg32,reg128                 4       3
vpmovmskb    reg32,reg256                 4       3
vpmovmskb    reg64,reg128                 5       3
vpmovsxbd    reg256,mem64                 8       4
vpmovsxbd    reg256,reg128                5       3
vpmovsxbq    reg256,mem32                 7       3
vpmovsxbq    reg256,reg128                5       3
vpmovsxbw    reg256,mem128                8       3
vpmovsxbw    reg256,reg128                5       3
vpmovsxdq    reg256,mem128                8       3
vpmovsxdq    reg256,reg128                5       3
vpmovsxwd    reg256,mem128                8       3
vpmovsxwd    reg256,reg128                5       3
vpmovsxwq    reg256,mem64                 8       3
vpmovsxwq    reg256,reg128                5       3
vpmovzxbd    reg256,mem64                 8       3
vpmovzxbd    reg256,reg128                5       3
vpmovzxbq    reg256,mem32                 7       3
vpmovzxbq    reg256,reg128                5       3
vpmovzxbw    reg256,mem128                8       3
vpmovzxbw    reg256,reg128                5       3
vpmovzxdq    reg256,mem128                8       3
vpmovzxdq    reg256,reg128                5       3
vpmovzxwd    reg256,mem128                8       3
vpmovzxwd    reg256,reg128                5       3
vpmovzxwq    reg256,mem64                 8       4
vpmovzxwq    reg256,reg128                5       3
vpmuldq      reg256,reg256,reg256         5       2
vpmuldq      reg256,reg256,mem256         8       2
vpmulhrsw    reg256,reg256,reg256         5       2
vpmulhrsw    reg256,reg256,mem256         8       2
vpmulhuw     reg256,reg256,reg256         4       2
vpmulhuw     reg256,reg256,mem256         7       2
vpmulhw      reg256,reg256,reg256         4       2
vpmulhw      reg256,reg256,mem256         7       2
vpmulld      reg256,reg256,reg256         5       4
vpmulld      reg256,reg256,mem256         8       4
vpmullw      reg256,reg256,reg256         4       2
vpmullw      reg256,reg256,mem256         7       2
vpmuludq     reg256,reg256,reg256         4       2
vpmuludq     reg256,reg256,mem256         7       2
vpor         reg256,reg256,reg256         4       1
vpor         reg256,reg256,mem256         7       2
vpsadbw      reg256,reg256,reg256         4       3
vpsadbw      reg256,reg256,mem256         7       3
vpshufb      reg256,reg256,reg256         5       3
vpshufb      reg256,reg256,mem256         8       3
vpshufd      reg256,reg256,imm8           5       3
vpshufd      reg256,mem256,imm8           8       3
vpshufhw     reg256,reg256,imm8           5       3
vpshufhw     reg256,mem256,imm8           8       3
vpshuflw     reg256,reg256,imm8           5       3
vpshuflw     reg256,mem256,imm8           8       3
vpsignb      reg256,reg256,reg256         5       2
vpsignb      reg256,reg256,mem256         8       2
vpsignd      reg256,reg256,reg256         5       2
vpsignd      reg256,reg256,mem256         8       2
vpsignw      reg256,reg256,reg256         5       2
vpsignw      reg256,reg256,mem256         8       2
vpslld       reg256,reg256,imm8           5       2
vpslld       reg256,reg256,mem128         7       2
vpslld       reg256,reg256,reg128         4       3
vpslldq      reg256,reg256,imm8           5       3
vpsllq       reg256,reg256,imm8           5       2
vpsllq       reg256,reg256,mem128         7       2
vpsllq       reg256,reg256,reg128         4       3
vpsllvd      reg128,reg128,reg128         5       2
vpsllvd      reg128,reg128,mem128         8       2
vpsllvd      reg256,reg256,reg256         5       2
vpsllvd      reg256,reg256,mem256         8       2
vpsllvq      reg128,reg128,reg128         5       2
vpsllvq      reg128,reg128,mem128         8       2
vpsllvq      reg256,reg256,reg256         5       2
vpsllvq      reg256,reg256,mem256         8       2
vpsllw       reg256,reg256,imm8           5       2
vpsllw       reg256,reg256,mem128         7       2
vpsllw       reg256,reg256,reg128         4       3
vpsrad       reg256,reg256,imm8           5       2
vpsrad       reg256,reg256,mem128         7       2
vpsrad       reg256,reg256,reg128         4       3
vpsravd      reg128,reg128,reg128         5       2
vpsravd      reg128,reg128,mem128         8       2
vpsravd      reg256,reg256,reg256         5       2
vpsravd      reg256,reg256,mem256         8       2
vpsraw       reg256,reg256,imm8           5       2
vpsraw       reg256,reg256,mem128         7       2
vpsraw       reg256,reg256,reg128         4       3
vpsrld       reg256,reg256,imm8           5       2
vpsrld       reg256,reg256,mem128         7       2
vpsrld       reg256,reg256,reg128         4       3
vpsrldq      reg256,reg256,imm8           5       3
vpsrlq       reg256,reg256,imm8           5       2
vpsrlq       reg256,reg256,mem128         7       2
vpsrlq       reg256,reg256,reg128         4       3
vpsrlvd      reg128,reg128,reg128         5       2
vpsrlvd      reg128,reg128,mem128         8       2
vpsrlvd      reg256,reg256,reg256         5       2
vpsrlvd      reg256,reg256,mem256         8       2
vpsrlvq      reg128,reg128,mem128         8       2
vpsrlvq      reg128,reg128,reg128         5       2
vpsrlvq      reg256,reg256,reg256         5       2
vpsrlvq      reg256,reg256,mem256         8       2
vpsrlw       reg256,reg256,imm8           5       2
vpsrlw       reg256,reg256,mem128         7       2
vpsrlw       reg256,reg256,reg128         4       3
vpsubb       reg256,reg256,reg256         4       1
vpsubb       reg256,reg256,mem256         7       2
vpsubd       reg256,reg256,reg256         4       1
vpsubd       reg256,reg256,mem256         7       2
vpsubq       reg256,reg256,reg256         4       1
vpsubq       reg256,reg256,mem256         7       2
vpsubsb      reg256,reg256,reg256         4       1
vpsubsb      reg256,reg256,mem256         7       2
vpsubsw      reg256,reg256,reg256         4       1
vpsubsw      reg256,reg256,mem256         7       2
vpsubusb     reg256,reg256,reg256         4       1
vpsubusb     reg256,reg256,mem256         7       2
vpsubusw     reg256,reg256,reg256         4       1
vpsubusw     reg256,reg256,mem256         7       2
vpsubw       reg256,reg256,reg256         4       1
vpsubw       reg256,reg256,mem256         7       2
vpunpckhbw   reg256,reg256,reg256         4       3
vpunpckhbw   reg256,reg256,mem256         7       3
vpunpckhdq   reg256,reg256,reg256         4       3
vpunpckhdq   reg256,reg256,mem256         7       3
vpunpckhqdq  reg256,reg256,reg256         4       3
vpunpckhqdq  reg256,reg256,mem256         7       3
vpunpckhwd   reg256,reg256,reg256         4       3
vpunpckhwd   reg256,reg256,mem256         7       3
vpunpcklbw   reg256,reg256,reg256         4       3
vpunpcklbw   reg256,reg256,mem256         7       3
vpunpckldq   reg256,reg256,reg256         4       3
vpunpckldq   reg256,reg256,mem256         7       3
vpunpcklqdq  reg256,reg256,reg256         4       3
vpunpcklqdq  reg256,reg256,mem256         7       3
vpunpcklwd   reg256,reg256,reg256         4       3
vpunpcklwd   reg256,reg256,mem256         7       3
vpxor        reg256,reg256,reg256         4       1
vpxor        reg256,reg256,mem256         7       2
Equations in Assembly: SmplMath

LiaoMi

Quote from: nidud on December 03, 2021, 06:57:33 AM
New version (AVX/AVX512).

This have no default input file and a new (regular) syntax. Space, Tab, immediats, and cl are allowed.

InstructionTiming instruction_list [ output_file ]


AVX

    rcl reg64,cl
    vcvttss2si reg64, reg128
    vextracti128 mem128,reg256,7
    vextracti128 reg128,reg256,7
    vinserti128 reg256,reg256,mem128,7


:arrow_down:

TimoVJL

May the source be with you

TimoVJL

AMD Ryzen Zen+ 2. gen have weak points

AMD Ryzen 3400G   Intel(R) Core(TM) i3-10100     11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz (AVX512)
...
vmpsadbw     reg256,reg256,reg256,imm8         6         12       7       4
vmpsadbw     reg256,reg256,mem256,imm8         9         15       7       5
...
vpcmpgtq     reg256,reg256,mem256              8         10       4       4
vpcmpgtw     reg256,reg256,reg256              4          3       1       1
vpcmpgtw     reg256,reg256,mem256              7          5       2       3
vperm2i128   reg256,reg256,reg256,imm8         6         15       3       4
vperm2i128   reg256,reg256,mem256,imm8         9         19       3       4
vpermd       reg256,reg256,reg256              5         18       3       4
vpermd       reg256,reg256,mem256              8         17       3       4
vpermpd      reg256,reg256,imm8                6          9       3       4
vpermpd      reg256,mem256,imm8                9          8       3       4
vpermps      reg256,reg256,reg256              5         16       3       4
vpermps      reg256,reg256,mem256              8         15       3       4
...
vphaddd      reg256,reg256,reg256              5         12       7       5
vphaddd      reg256,reg256,mem256              8         16       7       5
vphaddsw     reg256,reg256,reg256              5         12       7       5
vphaddsw     reg256,reg256,mem256              8         16       7       5
vphaddw      reg256,reg256,reg256              5         13       7       5
vphaddw      reg256,reg256,mem256              8         16       7       5
vphsubd      reg256,reg256,reg256              5         12       7       5
vphsubd      reg256,reg256,mem256              8         16       7       5
vphsubsw     reg256,reg256,reg256              5         12       7       5
vphsubsw     reg256,reg256,mem256              8         16       7       5
vphsubw      reg256,reg256,reg256              5         12       7       5
vphsubw      reg256,reg256,mem256              8         16       7       5
...
vpmaskmovd   mem128,reg128,reg128              8         23       5       4
vpmaskmovd   reg128,reg128,mem128              8         24       2       2
vpmaskmovd   reg256,reg256,mem256              8         39       2       2
vpmaskmovd   mem256,reg256,reg256              8         46       4       4
vpmaskmovq   mem128,reg128,reg128              8         16       4       5
vpmaskmovq   reg128,reg128,mem128              8         16       2       2
vpmaskmovq   reg256,reg256,mem256              8         27       2       2
vpmaskmovq   mem256,reg256,reg256              8         25       4       4
...

What are 3. gen results ?

EDIT: An interesting AMD CPU, just when price drops
AMD Ryzen 7 5700G
May the source be with you

daydreamer

My old AMD fpu was faster than Intel,that's relevant testing on newer amds
my none asm creations
https://masm32.com/board/index.php?topic=6937.msg74303#msg74303
I am an Invoker
"An Invoker is a mage who specializes in the manipulation of raw and elemental energies."
Like SIMD coding