[all-commits] [llvm/llvm-project] a43b00: [SelectionDAG] ComputeKnownBits - merge getValidMi...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Tue Jan 14 03:42:07 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: a43b0065c5c78eba3fb83881fb628f5b8182db64
      https://github.com/llvm/llvm-project/commit/a43b0065c5c78eba3fb83881fb628f5b8182db64
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2020-01-14 (Tue, 14 Jan 2020)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/test/CodeGen/X86/vector-idiv-udiv-128.ll
    M llvm/test/CodeGen/X86/vector-idiv-udiv-256.ll

  Log Message:
  -----------
  [SelectionDAG] ComputeKnownBits - merge getValidMinimumShiftAmountConstant() and generic ISD::SRL handling.

As mentioned by @nikic on rGef5debac4302 (although that was just about SHL), we can merge the guaranteed top zero bits from the shifted value, and then, if a min shift amount is known, zero out the top bits as well.

SHL tests / handling will be added in a follow up patch.


  Commit: fd42a4ac7a69adb92f87c7fa927509f177dcc6ca
      https://github.com/llvm/llvm-project/commit/fd42a4ac7a69adb92f87c7fa927509f177dcc6ca
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2020-01-14 (Tue, 14 Jan 2020)

  Changed paths:
    M llvm/test/CodeGen/X86/combine-shl.ll

  Log Message:
  -----------
  [X86][SSE] Add add(shl(and(x,c1),c2),c3) test case with non-uniform shift value

As mentioned by @nikic on rGef5debac4302, we should merge the guaranteed top zero bits from the shifted value and min shift amount code so they can both set the high bits to zero.


Compare: https://github.com/llvm/llvm-project/compare/e73b20c57dc7...fd42a4ac7a69


More information about the All-commits mailing list