I’m trying to test llvm-mca macro-fusion on small baby tests for Icelake but looks like it doesn’t support macro-fusion on X86, is this the case?
That’s correct. llvm-mca still doesn’t support macro-fusion.
This is a known limitation, and there is an open ticket for it: [llvm-mca][x86] Teach how to identify pairs of adjacent operations that can be macro fused. · Issue #36018 · llvm/llvm-project · GitHub.
Adding knowledge about macro-fusion in llvm-mca would require introducing new tablegen predicates, as well as partially changing how the dispatch logic works in the llvm-mca pipeline.
Unfortunately, as of today, nobody has ever sent a patch for it. So llvm-mca still doesn’t support macro-fusion.