1. Jun 24, 2019
  2. Jun 23, 2019
    • Sanjay Patel's avatar
      [InstCombine] squash is-power-of-2 that uses ctpop · 13a5ae58
      Sanjay Patel authored
      This is another intermediate IR step towards solving PR42314:
      https://bugs.llvm.org/show_bug.cgi?id=42314
      
      We can test if a value is power-of-2-or-0 using ctpop(X) < 2,
      so combining that with a non-zero check of the input is the
      same as testing if exactly 1 bit is set:
      
      (X != 0) && (ctpop(X) u< 2) --> ctpop(X) == 1
      
      Differential Revision: https://reviews.llvm.org/D63660
      
      llvm-svn: 364153
      13a5ae58
    • Fangrui Song's avatar
      SlotIndexes: simplify IdxMBBPair operators · 6620e3b2
      Fangrui Song authored
      llvm-svn: 364152
      6620e3b2
    • Craig Topper's avatar
      [SelectionDAG] Remove the code that attempts to calculate the alignment for... · 6ddc7912
      Craig Topper authored
      [SelectionDAG] Remove the code that attempts to calculate the alignment for the second half of a split masked load/store.
      
      The code divides the alignment by 2 if the original alignment is
      equal to the original VT size. But this wouldn't be correct
      if the alignment was larger than the VT size.
      
      The memory operand object already takes care of calling MinAlign
      on the base alignment and the memory pointer offset. So we don't
      need any special code at all.
      
      llvm-svn: 364151
      6ddc7912
    • Craig Topper's avatar
      [X86][SelectionDAG] Cleanup and simplify masked_load/masked_store in tablegen.... · cadd826d
      Craig Topper authored
      [X86][SelectionDAG] Cleanup and simplify masked_load/masked_store in tablegen. Use more precise PatFrags for scalar masked load/store.
      
      Rename masked_load/masked_store to masked_ld/masked_st to discourage
      their direct use. We need to check truncating/extending and
      compressing/expanding before using them. This revealed that
      our scalar masked load/store patterns were misusing these.
      
      With those out of the way, renamed masked_load_unaligned and
      masked_store_unaligned to remove the "_unaligned". We didn't
      check the alignment anyway so the name was somewhat misleading.
      
      Make the aligned versions inherit from masked_load/store instead
      from a separate identical version. Merge the 3 different alignments
      PatFrags into a single version that uses the VT from the SDNode to
      determine the size that the alignment needs to match.
      
      llvm-svn: 364150
      cadd826d
    • Eric Fiselier's avatar
      Disable test by default · 8d792456
      Eric Fiselier authored
      llvm-svn: 364149
      8d792456