• Joined on 2023年01月16日
jjl pushed to feat/inline-asm at jjl/bittricks 2026年04月11日 18:03:08 +02:00
605f90ee44 the new pext/pdep inline asms do not need separate reordering barriers
jjl created pull request jjl/bittricks#16 2026年04月11日 17:18:00 +02:00
inline asm for bmi2 pext/pdep
jjl created branch feat/inline-asm in jjl/bittricks 2026年04月11日 17:16:59 +02:00
jjl pushed to feat/inline-asm at jjl/bittricks 2026年04月11日 17:16:59 +02:00
33e40ea363 inline asm for pext/pdep
jjl commented on issue jjl/bittricks#15 2026年04月11日 16:04:26 +02:00
asm for single pext/pdep in branchy impl

i've tried a few variations but i can't make it work. here's bt_pext_u64

jjl commented on pull request jjl/bittricks#14 2026年03月31日 18:41:05 +02:00
bench_static: Add benchmarks for p{exp,dep}s{,_1}

ah fuck it, these are only really for completeness anyway.

jjl pushed to main at jjl/bittricks 2026年03月31日 18:40:47 +02:00
d170bb533c ci: show output of bench_static during CI (not for qemu though)
0bbb9b5db1 bench_static: Add benchmarks for p{exp,dep}s{,_1}
Compare 2 commits »
jjl merged pull request jjl/bittricks#14 2026年03月31日 18:40:22 +02:00
bench_static: Add benchmarks for p{exp,dep}s{,_1}
jjl opened issue jjl/bittricks#15 2026年03月28日 16:18:34 +01:00
asm for single pext/pdep in branchy impl
jjl commented on pull request jjl/bittricks#14 2026年03月28日 10:56:40 +01:00
bench_static: Add benchmarks for p{exp,dep}s{,_1}

I found that a warmup run on the large array was necessary. perhaps some other way of pre-faulting could be done instead.

jjl pushed to main at jjl/bittricks 2026年03月27日 20:31:29 +01:00
90d39b35f6 Put the barrier asm back
4f0ced9955 Use ifunc & dispatch-making macros for x86_64 too
Compare 2 commits »
jjl merged pull request jjl/bittricks#13 2026年03月27日 20:31:28 +01:00
Use variant selection macros for x86_64 too
jjl commented on pull request jjl/bittricks#13 2026年03月27日 20:31:20 +01:00
Use variant selection macros for x86_64 too

i don't think it's even that bad :)

jjl commented on pull request jjl/bittricks#13 2026年03月27日 19:24:31 +01:00
Use variant selection macros for x86_64 too

Hmm okay there may be a bit more nuance.

jjl commented on pull request jjl/bittricks#13 2026年03月27日 19:17:56 +01:00
Use variant selection macros for x86_64 too

Only for single pext/pdep and only for non-IFUNC ?

jjl commented on pull request jjl/bittricks#13 2026年03月27日 19:15:41 +01:00
Use variant selection macros for x86_64 too

Let's try that explanation again.

jjl commented on pull request jjl/bittricks#13 2026年03月27日 19:10:36 +01:00
Use variant selection macros for x86_64 too

Unfortunately yes, that's required to stop the compiler assuming pext is 3 cycles and doing it even if BMI2 is AMD's shitty pre-zen3 microcoded implementation.

jjl pushed to main at jjl/bittricks 2026年03月27日 17:19:31 +01:00
652b07b12f aarch64: Use macros to define resolver & dispatch funcs
jjl merged pull request jjl/bittricks#11 2026年03月27日 17:19:30 +01:00
aarch64: Use macros to define resolver & dispatch funcs
jjl commented on pull request jjl/bittricks#10 2026年03月27日 17:18:16 +01:00
Add test for the s_1 variants on aarch64 & fix SVE2 BITPERM implementation

i'm a bit mixed on this because i still have no idea what i'm doing with aarch64 optimisation, but i strongly suspect that the old and new code will be equivalent, at least on the vast majority of...