Skip to content
  1. Mar 03, 2010
    • Bill Wendling's avatar
      This test case: · af13d829
      Bill Wendling authored
      long test(long x) { return (x & 123124) | 3; }
      
      Currently compiles to:
      
      _test:
              orl     $3, %edi
              movq    %rdi, %rax
              andq    $123127, %rax
              ret
      
      This is because instruction and DAG combiners canonicalize
      
        (or (and x, C), D) -> (and (or, D), (C | D))
      
      However, this is only profitable if (C & D) != 0. It gets in the way of the
      3-addressification because the input bits are known to be zero.
      
      llvm-svn: 97616
      af13d829
  2. Mar 02, 2010
  3. Mar 01, 2010
  4. Feb 28, 2010
  5. Feb 27, 2010
  6. Feb 26, 2010
Loading