[llvm] [X86] Add vXi64 MULHU lowering, keeping full-width products scalar (PR #206983)
Phoebe Wang via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 1 20:10:56 PDT 2026
phoebewang wrote:
> @phoebewang Do you know what's going on here? Why has vpmullq actually regressed on SPR as a successor to ICL? But according to [uops.info](https://uops.info/html-instr/VPMULLQ_ZMM_ZMM_ZMM.html), vpmullq is essentially similar on ICL and EMR.
I checked it on both ICL and SPR with #169819:
SPR (Max 9480)
```
udiv_vec ns med= 0.413 [0.413..0.414] MHz=3500 0.481
div_vec ns med= 0.498 [0.497..0.571] MHz=3500 0.581
wyhash ns med= 1.259 [1.257..1.283] MHz=3500 1.469
fp_adv c0 ns med= 0.876 [0.876..0.877] MHz=3500 1.022
fp_adv c1 ns med= 1.506 [1.504..1.509] MHz=3400 1.707
```
ICL (Platinum 8380)
```
udiv_vec ns med= 0.549 [0.549..0.550] MHz=3000
div_vec ns med= 0.768 [0.766..0.769] MHz=3000
wyhash ns med= 1.782 [1.781..1.782] MHz=3000
fp_adv c0 ns med= 0.999 [0.999..1.000] MHz=3000
fp_adv c1 ns med= 2.603 [2.603..2.604] MHz=3000
```
The last column is the calibrated number using ICL's frequency. `fp_adv c0` is approximate, while the rest are all better than ICL.
https://github.com/llvm/llvm-project/pull/206983
More information about the llvm-commits
mailing list