You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ADX指令在llvm-mca中的reciprocal throughput为何与Intel文档不符?

Skylake平台ADX指令llvm-mca建模异常问题解析
  • 官方规格与工具分析差异:Intel官方文档明确Skylake平台上ADX系列指令(如adcxq、adoxq)的吞吐量为0.5 CPI,即每周期可执行2条该类指令;但使用llvm-mca指定Skylake为目标CPU进行分析时,时间线视图显示每周期仅能执行1条ADX指令,与官方规格不符。
  • 具体异常表现:在包含decq和jne的代码序列测试中,标记为[1,0]的adcxq指令被llvm-mca调度到周期3执行,但其依赖的前置计算结果要到周期5才生成,违背了指令执行的依赖规则。
  • 根因确认:LLVM社区已定位该问题,根源在于llvm-mca对EFLAGS寄存器采用了单一建模方式,未区分ADX指令专用的CF/OF标志与其他指令对EFLAGS的影响,导致依赖分析逻辑错误,进而引发吞吐量计算和指令调度的异常。
  • 修复方向:通过细化EFLAGS寄存器的建模逻辑,单独跟踪ADX指令涉及的标志位依赖,即可修正该异常,使llvm-mca的分析结果与Intel官方硬件规格一致。

内容的提问来源于stack exchange,提问作者l4m2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 06:03:14