1. May 18, 2020
  2. May 17, 2020
  3. May 16, 2020
    • Jay Foad's avatar
      [AArch64] Precommit tests for D77316 · 9a055479
      Jay Foad authored
      9a055479
    • Sanjay Patel's avatar
      [x86][CGP] try to hoist funnel shift above select-of-splats · 5be37cb1
      Sanjay Patel authored
      This is basically the same patch as D63233, but converted to
      funnel shifts rather than regular shifts. I did not see a
      way to effectively share code for these 2 cases though.
      
      This follows D79718 and D79827 to re-fix PR37426 because
      that gets canonicalized to funnel shift intrinsics in IR.
      
      I did draft an alternative patch as an enhancement to
      "shouldSinkOperands()", but that was awkward because
      we have to key the transform from the select, but then
      look at both its users and its operands.
      5be37cb1
    • David Green's avatar
      [ARM] Combines for VMOVN · 72f1fb2e
      David Green authored
      This adds two combines for VMOVN, one to fold
      VMOVN[tb](c, VQMOVNb(a, b)) => VQMOVN[tb](c, b)
      The other to perform demand bits analysis on the lanes of a VMOVN. We
      know that only the bottom lanes of the second operand and the top or
      bottom lanes of the Qd operand are needed in the result, depending on if
      the VMOVN is bottom or top.
      
      Differential Revision: https://reviews.llvm.org/D77718
      72f1fb2e
    • David Green's avatar
      [ARM] MVE saturating truncates · 2e1fbf85
      David Green authored
      This adds some custom lowering for VQMOVN, an instruction that can be
      used to perform saturating truncates from a pair of min(max(X, -0x8000),
      0x7fff), providing those constants are correct. This leaves a VQMOVNBs
      which saturates the value and inserts that into the bottom lanes of an
      existing vector. We then need to do something with the other lanes,
      extending the value using a vmovlb.
      
      Ideally, as will often be the case, only the bottom lane of what remains
      will be demanded, allowing the vmovlb to be removed. Which should mean
      the instruction is either equal or a win most of the time, and allows
      some extra follow-up folding to happen.
      
      Differential Revision: https://reviews.llvm.org/D77590
      2e1fbf85