Changes

Summary

  1. llvm-dwarfdump: Refactor type pretty printing tests (details)
  2. [X86] Fold SHUFPS(shuffle(x),shuffle(y),mask) -> SHUFPS(x,y,mask') (details)
  3. [X86][Atom] Fix FP uops + port usage (details)
Commit 2ca637c9769ff50e94ace3083075a97b50d147f0 by dblaikie
llvm-dwarfdump: Refactor type pretty printing tests

Move most type tests to a pre-generated assembly file to make it easier
to add more weird cases without having to hand craft more DWARF.

Move the novel array types that aren't reachable via clang-generated
DWARF to a separate file for easy maintenance.
The file was addedllvm/test/tools/llvm-dwarfdump/X86/prettyprint_types_handcrafted.s
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/prettyprint_types.s
Commit b7342e3137d8fa7c356a80c1ddecf1d410c27eef by llvm-dev
[X86] Fold SHUFPS(shuffle(x),shuffle(y),mask) -> SHUFPS(x,y,mask')

We can combine unary shuffles into either of SHUFPS's inputs and adjust the shuffle mask accordingly.

Unlike general shuffle combining, we can be more aggressive and handle multiuse cases as we're not going to accidentally create additional shuffles.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/vselect.ll
The file was modifiedllvm/test/CodeGen/X86/horizontal-sum.ll
Commit f855ef260148df0f08c73a70b9425a5215232874 by llvm-dev
[X86][Atom] Fix FP uops + port usage

Both ports are required in most cases. Update the uops counts + port usage based off the most recent llvm-exegesis captures (PR36895) and what Intel AoM / Agner / InstLatX64 reports as well.

Noticed while trying to improve fp costs for vectorization via the D103695 helper script.
The file was modifiedllvm/test/tools/llvm-mca/X86/Atom/resources-sse3.s
The file was modifiedllvm/test/tools/llvm-mca/X86/Atom/resources-ssse3.s
The file was modifiedllvm/test/tools/llvm-mca/X86/Atom/resources-sse2.s
The file was modifiedllvm/lib/Target/X86/X86ScheduleAtom.td
The file was modifiedllvm/test/tools/llvm-mca/X86/Atom/resources-sse1.s
The file was modifiedllvm/test/tools/llvm-mca/X86/Atom/resources-x87.s