[PATCH] D60333: [X86][SSE] SimplifyDemandedBitsForTargetNode - Add PACKSS support

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 5 14:10:30 PDT 2019


nikic added a comment.

This looks right to me, but I think we should be able to do better. The sign bit of the result is determined only by the sign bit of the input. Any other bit is determined by the same bit in the input, as well as the high half of the input. I'm thinking something along these lines:

  APInt DemandedBits;
  if (OriginalDemandedBits.isSignMask()) {
      DemandedBits = APInt::getSignMask(BitWidth * 2);
  } else {
      DemandedBits = OriginalDemandedBits.zext(BitWidth * 2);
      DemandedBits.setHighBits(BitWidth);
  }


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D60333/new/

https://reviews.llvm.org/D60333





More information about the llvm-commits mailing list