[all-commits] [llvm/llvm-project] b8a725: [X86][AVX] combineSignExtendInReg - promote mask a...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Thu May 7 05:20:52 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: b8a725274c227b715a49342c432534a6aa75d20d
      https://github.com/llvm/llvm-project/commit/b8a725274c227b715a49342c432534a6aa75d20d
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2020-05-07 (Thu, 07 May 2020)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/promote-cmp.ll

  Log Message:
  -----------
  [X86][AVX] combineSignExtendInReg - promote mask arithmetic before v4i64 canonicalization

We rely on the combine

(sext_in_reg (v4i64 a/sext (v4i32 x)), v4i1) -> (v4i64 sext (v4i32 sext_in_reg (v4i32 x, ExtraVT)))

to avoid complex v4i64 ashr codegen, but doing so prevents v4i64 comparison mask promotion, so ensure we attempt to promote before canonicalizing the (hopefully now redundant sext_in_reg).

Helps with the poor codegen in PR45808.




More information about the All-commits mailing list