<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/81504>81504</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
LLVM MCA does not match uops.info/Agner measurements for Icelake add/mul
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
SeeSpring
</td>
</tr>
</table>
<pre>
According to uops.info and Agner these instructions all have a throughput of 1 on Icelake and run on port 0
```
vaddps %zmm0, %zmm1, %zmm2
vmulps %zmm0, %zmm1, %zmm2
```
llvm-mca claims they have a RThroughput of 0.50 and p05
[Godbolt of llvm-mca](https://godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename:'1',fontScale:14,fontUsePx:'0',j:1,lang:analysis,source:'.att_syntax+%0Avaddps%09%25zmm0,+%25zmm1,+%25zmm2%0Avaddps%09%25zmm0,+%25zmm1,+%25zmm2%0Avmulps%09%25zmm0,+%25zmm1,+%25zmm2%0Avmulps%09%25zmm0,+%25zmm1,+%25zmm2%0A'),l:'5',n:'0',o:'Analysis+source+%231',t:'0')),l:'4',n:'0',o:'',s:0,t:'0'),(g:!((h:compiler,i:(compiler:llvm-mcatrunk,filters:(b:'0',binary:'1',binaryObject:'1',commentOnly:'0',debugCalls:'1',demangle:'0',directives:'0',execute:'1',intel:'0',libraryCode:'0',trim:'1'),flagsViewOpen:'1',fontScale:14,fontUsePx:'0',j:2,lang:analysis,libs:!(),options:'-mcpu%3Dicelake-server',overrides:!(),source:1),l:'5',n:'0',o:'+llvm-mca+(trunk)+(Editor+%231)',t:'0')),header:(),l:'4',m:100,n:'0',o:'',s:0,t:'0')),l:'2',m:100,n:'0',o:'',t:'0')),version:4)
<details>
<summary>Version</summary>
```
LLVM (http://llvm.org/):
LLVM version 19.0.0git
Optimized build.
Default target: x86_64-unknown-linux-gnu
Host CPU: cascadelake
Registered Targets:
aarch64 - AArch64 (little endian)
aarch64_32 - AArch64 (little endian ILP32)
aarch64_be - AArch64 (big endian)
amdgcn - AMD GCN GPUs
arm - ARM
arm64 - ARM64 (little endian)
arm64_32 - ARM64 (little endian ILP32)
armeb - ARM (big endian)
avr - Atmel AVR Microcontroller
bpf - BPF (host endian)
bpfeb - BPF (big endian)
bpfel - BPF (little endian)
dxil - DirectX Intermediate Language
hexagon - Hexagon
lanai - Lanai
loongarch32 - 32-bit LoongArch
loongarch64 - 64-bit LoongArch
m68k - Motorola 68000 family
mips - MIPS (32-bit big endian)
mips64 - MIPS (64-bit big endian)
mips64el - MIPS (64-bit little endian)
mipsel - MIPS (32-bit little endian)
msp430 - MSP430 [experimental]
nvptx - NVIDIA PTX 32-bit
nvptx64 - NVIDIA PTX 64-bit
ppc32 - PowerPC 32
ppc32le - PowerPC 32 LE
ppc64 - PowerPC 64
ppc64le - PowerPC 64 LE
r600 - AMD GPUs HD2XXX-HD6XXX
riscv32 - 32-bit RISC-V
riscv64 - 64-bit RISC-V
sparc - Sparc
sparcel - Sparc LE
sparcv9 - Sparc V9
spirv - SPIR-V Logical
spirv32 - SPIR-V 32-bit
spirv64 - SPIR-V 64-bit
systemz - SystemZ
thumb - Thumb
thumbeb - Thumb (big endian)
ve - VE
wasm32 - WebAssembly 32-bit
wasm64 - WebAssembly 64-bit
x86 - 32-bit X86: Pentium-Pro and above
x86-64 - 64-bit X86: EM64T and AMD64
xcore - XCore
Compiler returned: 0
```
</details>
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8WF1v4jwW_jXmxgoKzgdwwQWFdqZS-w5qOyzam5GTHILfcezIdijMr185MflgaPXurLRV1eJznvP4fPnghGrNcgGwQNEditYjWpmDVItXgNdSMZGPEpmdF8s0lSpjIsdG4kqWeszEXmIqMrzMBShsDqABM6GNqlLDpNCYco4P9AiYYnNQssoPZWWw3OMJlgI_psDpT6gpVCWsqJTKYB_5a-QvUey733p5pFlWauTPEYl-FYWPyAo3HyfdR-KwRcX_KfZqG86PhVekFKecskLbqM6XGF7eBkH448ivnS_9yHFFd19klkhe6y9UKFojMjsYU2oULBF5QOQhb2BjqfJaEOS1aoLIDJHZx4sDCpapzOA-Y0YqRFas1s72jIOgBdSr6QSRKSKrvRTmNaXcSiehE3zXsDk1ML-B_W3ViKw4FXYvKig_a6YRWWlZqdRxjqkxP_RZGHpC5A6RqC0JiepEt6lu1G26e0vyP5k1Rf0_mdWpmdusNOFHTa7EIHOyWS3bjN25jDVsgauD6RvNB7ThJ7TNwvaMf4Nkdbs1ipJx6DVGKwna1jaqEj9tNzBuQDU9OUsGHiRMUHUeNFMj-pb8DakZKFJZFCDMN8HPA44MkipfUc71AJ5BQUXOYYhlClLDjqAHYjhBWplhUzNhgA9QnCWKqvNKZkNSo1jRN7VJ23Oa6y2D928liD89LOTmYeEs0b162N1kWc_BhsAr0rJCJArWrBl8ngZ1tLWqa34EpVgG1xTtEZz843ZE5K4dPbYRZ67g82Z1GR1ti84_7tID0KzundafYd_a_E58_886uEdH_gu6WzRHUJpJaxRaQTOMm7_BKgNDme3C-1akq6KoG_x-e7FcIfLQiQcUw2-Ip6ftM3YDvZ3nNuHtMJ9bcY3FuEY79_BkPvbHfs7MRfutNKxgvyDDScV4NnbyNexpxQ02VOVg48WnWfwjDr1K_BTyXXicierk5aK6EH2V2uDV5rvFplSnNKtbrB8GfoGcaQMKMvxWE-uenxhTqtJDHNqP2MPLZbNCZMaZMRwwiIxR0ab3gv8RkM_w-PFpE5DOqtvoRwJXhgnLf9vF4ossTwW-OPa8xl9Wf-Evm--6h1EFvvx4ePnyfHFSFS4kJ_80pIbIxfSxwa2YVAFJf5_P4jmqvq-mAI6X2xf8zFIlUymMktxO7NYgKfc9g7vNQ91-tuI32JNy3_PEgT_wxGL5Nfbj3GQnxrGH1_Ww3uFHYUAVkDFqAD9RkVc0hw59gBPNpXDkX5tVp-ZUUIY9a0hZTyylyG2DBAR7OCBewgx-skLbJzdwcYg9HIcf4Yp49rPL3bM0UklOcTzzfR_vacH4uQdmpe6BHzevNiHOiQ9yaG0uLdbZOIdu2TQGTd5_M_g4-dbsUqzffPvETJdh4Ldmrxu7QtEdnEpQzH5xU24vqK2BOJbmhD381_Zx_bjEm7edq8IVpJ0UPWATRAcsy7Qu40a-g9qscECudBwcSYfAT_cDUO_4XkBxeIX4jSYOBzQq9v3eibMTZPNd469rstvtvK_reLfb9dBMp8dmAnQt-PL4uvK2V6A2B6561yBdUpW2-77a1ZXSVdQpO6dr5XE-UG7nfWOmjh3z5vHF2-InmbOU8itUXQGHuK5kDWijcKDrKuqzNlD8uoDq1b87tTlURTdw3uzqSunmkVN-Mo-OgHuDbtur4DvVhSsJ9vC_IFlqDUXCz8OQLKw7jH3YdVCnWdzbyhV5N4vtF-gGhGFV4W1U83xLE3mEganXbeJK70zvn-PwrXkofl63fXpKpYJ2s91KKke3crdzrMBUSkBmOW4__zY3lO4uM8oWQTYP5nQEi8nUn05jP_LJ6LCYxvOZH4TTyQSCMCEkDKcZDdIsSmiapvNkxBbEJ6FPJmQyjSLfH09moe_vs3k6pwnE8xSFPhSU8fHlVjNiWlewmE0iPxxxmgDX9csCQgS841qJCEHReqQW9dUzqXKNQp8zbXTHYpjhsKhvRM-rJc4kaCykwQU16aF7p4DIQ_NGoQCqKwV2SGm8l6p7Y5BliDwUFR9Vii-unqyZOVTJOJWFu5a5f16pZP3sQh5qhzUiD3VA_wkAAP__k_yslA">