[llvm] [X86] Add ISD::MULHS/MULHU v4i64/v8i64 lowering (PR #169819)
via llvm-commits
llvm-commits at lists.llvm.org
Sun Jun 28 06:56:40 PDT 2026
Andarwinux wrote:
```
[arch at wsl mulh]$ ./bench_skylake_256_scalar
udiv_vec ns med= 0.504 [0.503..0.507] MHz=-1
div_vec ns med= 0.507 [0.504..0.510] MHz=-1
wyhash ns med= 0.616 [0.610..0.619] MHz=-1
fp_adv c0 ns med= 0.926 [0.918..0.938] MHz=-1
fp_adv c1 ns med= 1.398 [1.389..1.404] MHz=-1
[arch at wsl mulh]$ ./bench_skylake_256_vector
udiv_vec ns med= 0.293 [0.291..0.294] MHz=-1
div_vec ns med= 0.654 [0.648..0.658] MHz=-1
wyhash ns med= 0.988 [0.982..0.994] MHz=-1
fp_adv c0 ns med= 0.989 [0.982..0.991] MHz=-1
fp_adv c1 ns med= 1.363 [1.350..1.365] MHz=-1
[arch at wsl mulh]$ ./bench_tigerlake_256_scalar
udiv_vec ns med= 0.513 [0.509..0.517] MHz=-1
div_vec ns med= 0.517 [0.513..0.519] MHz=-1
wyhash ns med= 0.627 [0.621..0.630] MHz=-1
fp_adv c0 ns med= 0.606 [0.602..0.614] MHz=-1
fp_adv c1 ns med= 1.400 [1.391..1.407] MHz=-1
[arch at wsl mulh]$ ./bench_tigerlake_256_vector
udiv_vec ns med= 0.293 [0.289..0.300] MHz=-1
div_vec ns med= 0.395 [0.392..0.397] MHz=-1
wyhash ns med= 0.988 [0.981..0.998] MHz=-1
fp_adv c0 ns med= 0.635 [0.632..0.639] MHz=-1
fp_adv c1 ns med= 1.510 [1.500..1.541] MHz=-1
[arch at wsl mulh]$ ./bench_tigerlake_512_scalar
udiv_vec ns med= 0.505 [0.502..0.507] MHz=-1
div_vec ns med= 0.507 [0.506..0.509] MHz=-1
wyhash ns med= 1.066 [1.062..1.068] MHz=-1
fp_adv c0 ns med= 0.601 [0.594..0.603] MHz=-1
fp_adv c1 ns med= 1.700 [1.694..1.706] MHz=-1
[arch at wsl mulh]$ ./bench_tigerlake_512_vector
udiv_vec ns med= 0.294 [0.291..0.295] MHz=-1
div_vec ns med= 0.401 [0.397..0.405] MHz=-1
wyhash ns med= 1.143 [1.133..1.166] MHz=-1
fp_adv c0 ns med= 0.636 [0.632..0.638] MHz=-1
fp_adv c1 ns med= 1.672 [1.668..1.684] MHz=-1
```
v8i64/v4i64 on avx512 looks acceptable.
https://github.com/llvm/llvm-project/pull/169819
More information about the llvm-commits
mailing list