ICL065: move elimination broken in Ice Lake

By: Travis Downs (travis.downs.delete@this.gmail.com),
Room: Moderated Discussions
To work around an erratum, it looks like move elimination has been disabled in Ice Lake, at least as far back as the November microcode update (surprised nobody noticed until now).

I guess this might regress some workloads by a few %.

If anyone has TGL or any other post-ICL hardware, you could test this out by running uarch-bench like so:


./uarch-bench.sh --test-name=misc/mov-elim*
./uarch-bench.sh --timer=perf --extra-events=uops_executed.core --test-name=misc/mov-elim*


The second version uses perf and gives extra-definitive confirmation (but requires perf paranoid to be set up and rdpmc access, so sometimes is a bit trickier: try running as root).

Results like so indicate no elimination (smaller numbers indicate elimination):


** Running group misc : Miscellaneous tests **
Benchmark Cycles uops_e
8 chained moves 7.99 9.00
8 chained movs and inc 8.00 9.00
 Next Post in Thread >
Thread (25 posts)
TopicPosted ByPosted
ICL065: move elimination broken in Ice LakeTravis Downs
  ICL065: move elimination broken in Ice LakeTravis Downs
    ICL065: move elimination broken in Ice Lakeanon
      ICL065: move elimination broken in Ice LakeTravis Downs
        ICL065: move elimination broken in Ice LakeAndreas Abel
    ICL065: move elimination broken in Ice LakeAndreas Abel
      ICL065: move elimination broken in Ice Lakeanon
        ICL065: move elimination broken in Ice Lakedmcq
        ICL065: move elimination broken in Ice LakeTravis Downs
          ICL065: move elimination broken in Ice Lakeanon
            ICL065: move elimination broken in Ice LakeTravis Downs
  ICL065: move elimination broken in Ice LakeJan Olšan
    ICL065: move elimination broken in Ice LakeTravis Downs
      ICL065: move elimination broken in Ice Lakeanonymou5
        ICL065: move elimination broken in Ice LakeTravis Downs
  ICL065: move elimination broken in Ice LakeAndrey
    ICL065: move elimination broken in Ice LakeRonald Maas
      ICL065: move elimination broken in Ice LakeAndreas Abel
        ICL065: move elimination broken in Ice LakeAndrey
          ICL065: move elimination broken in Ice LakeAndreas Abel
    ICL065: move elimination broken in Ice LakeClinton Ingram
      ICL065: move elimination broken in Ice Laketarlinian
        ICL065: move elimination broken in Ice Lakeanonymou5
          ICL065: move elimination broken in Ice LakeClinton Ingram
            ICL065: move elimination broken in Ice Lakeanonymou5