Kovid Goyal
b52af64ffe
Hide cursor during benchmark run
2024-02-25 09:57:43 +05:30
Kovid Goyal
1db7ac5f6b
Use our new shift by n functions to improve function to zero last N bytes
...
Benchmark neutral but cleaner code using one less vector register and equal
number of operations.
2024-02-25 09:57:43 +05:30
Kovid Goyal
e77a970ca1
Also implement arbitrary byte shift for 128 bit registers
2024-02-25 09:57:43 +05:30
Kovid Goyal
ac984d05f2
Fix gcc detection
2024-02-25 09:57:43 +05:30
Kovid Goyal
f16c2a0d67
Move checking for compiler brand into Env
2024-02-25 09:57:43 +05:30
Kovid Goyal
29a574a4bc
Prevent duplicate VZEROUPPER instructions
2024-02-25 09:57:43 +05:30
Kovid Goyal
a7c06b38e6
We dont actually need vzeroupper at start of function
...
GCC emits vzeroupper automatically when compiling with native
optimizations but we still need it otherwise
2024-02-25 09:57:43 +05:30
Kovid Goyal
16d36c46fe
Update to using math/rand/v2
2024-02-25 09:57:43 +05:30
Kovid Goyal
720618bc37
Use go 1.22 for building
...
It supports PCALIGN on non ARM arches as well
2024-02-25 09:57:43 +05:30
Kovid Goyal
2f727e6561
...
2024-02-25 09:57:43 +05:30
Kovid Goyal
b65a5f78fd
Fix regression causing shells in darwin to not run in login mode
2024-02-25 09:57:43 +05:30
Kovid Goyal
0a1eb038a5
Implement functions for arbitrary byte shifts in vector registers
2024-02-25 09:57:42 +05:30
Kovid Goyal
e541c0534d
...
2024-02-25 09:57:42 +05:30
Kovid Goyal
eb1e3b33b4
Fix test failure on some systems
...
Broken ass compilers strike again
2024-02-25 09:57:42 +05:30
Kovid Goyal
41ec46d5bb
...
2024-02-25 09:57:42 +05:30
Kovid Goyal
b021e9b648
Do the default func test last so we can see what the failure is on more explicitly
2024-02-25 09:57:42 +05:30
Kovid Goyal
ede4d7fbca
...
2024-02-25 09:57:42 +05:30
Kovid Goyal
d0797a025b
Add dedicated tests for find_either_of_two
2024-02-25 09:57:42 +05:30
Kovid Goyal
1acd223f45
...
2024-02-25 09:57:42 +05:30
Kovid Goyal
8639a2ac40
Update perf figures based on latest code
2024-02-25 09:57:42 +05:30
Kovid Goyal
f48e4ffd5e
Port aligned load based find algorithm to C
2024-02-25 09:57:42 +05:30
Kovid Goyal
c01b959723
Fix Go unaligned index implementation
2024-02-25 09:57:42 +05:30
Kovid Goyal
36773c09d3
Functions to get bytes to first match ignoring leading bytes
2024-02-25 09:57:42 +05:30
Kovid Goyal
687340003d
...
2024-02-25 09:57:42 +05:30
Kovid Goyal
7467307200
Add some alignment tests
2024-02-25 09:57:42 +05:30
Kovid Goyal
bbdb0b15f3
DRYer
2024-02-25 09:57:42 +05:30
Kovid Goyal
b5edd9ad57
Dont precalculate mask in loop body
...
No need since we dont shift. Avoids the extra mask instructions for the
not found case.
2024-02-25 09:57:42 +05:30
Kovid Goyal
a32e1aafa6
...
2024-02-25 09:57:41 +05:30
Kovid Goyal
f9fd6ffd46
Use only aligned loads for index funcs
...
Also obviates the necessity for safe slice wrappers
2024-02-25 09:57:41 +05:30
Kovid Goyal
31a5fcf297
DRYer
2024-02-25 09:57:41 +05:30
Kovid Goyal
493fc900e9
Fix build on ARM
2024-02-25 09:57:41 +05:30
Kovid Goyal
3abdc54e4b
...
2024-02-25 09:57:41 +05:30
Kovid Goyal
618aeec709
Finally got gnome-terminal to run on my system
...
Apparently it needed some kind of GTK desktop portal or the other
🙄
Interesting that its numbers are basically the same as alacritty's. Lot
better than I remember, I guess the recent libvte performance work was
good.
2024-02-25 09:57:41 +05:30
Kovid Goyal
4585361161
Micro optimization
2024-02-25 09:57:41 +05:30
Kovid Goyal
f64739c29b
Fix regression that broke handling of single byte control chars when cursor is on second cell of wide character
2024-02-25 09:57:41 +05:30
Kovid Goyal
f3830aa854
Avoid unnecessary if
2024-02-25 09:57:41 +05:30
Kovid Goyal
f1fe0bf40a
Code to easily compare SIMD and scalar decode in a live instance
...
Also remove -mtune=intel as it fails with clang
2024-02-25 09:57:41 +05:30
Kovid Goyal
561712090d
Fix cmplt implementation
2024-02-25 09:57:41 +05:30
Kovid Goyal
d5f34c401d
Better vector registers to pre-calculate before the loop
2024-02-25 09:57:41 +05:30
Kovid Goyal
d9190ea675
DRYer
2024-02-25 09:57:41 +05:30
Kovid Goyal
57f4ea4d4a
Add some tests for broadcast from constant intrinsic
2024-02-25 09:57:41 +05:30
Kovid Goyal
9b0ae8d403
Dont use VEX encoded instructions for 128 bit ISA
2024-02-25 09:57:41 +05:30
Kovid Goyal
aed0611fb8
Avoid double trailing RET
2024-02-25 09:57:40 +05:30
Kovid Goyal
920b8a2496
Use VZEROUPPER in avx functions
...
See https://www.intel.com/content/dam/develop/external/us/en/documents/11mc12-avoiding-2bavx-sse-2btransition-2bpenalties-2brh-2bfinal-809104.pdf
2024-02-25 09:57:40 +05:30
Kovid Goyal
5a5e31c38b
Also zero upper at start of function
2024-02-25 09:57:40 +05:30
Kovid Goyal
db2e0e816d
Fix mixing of register types in the same function
2024-02-25 09:57:40 +05:30
Kovid Goyal
a298781b85
DRYer
2024-02-25 09:57:40 +05:30
Kovid Goyal
d5cd9ef2ca
...
2024-02-25 09:57:40 +05:30
Kovid Goyal
55c909c656
Use -mtune=intel for SIMD files when building without native optimizations
2024-02-25 09:57:40 +05:30
Kovid Goyal
da31db3212
...
2024-02-25 09:57:40 +05:30