[PATCH] D117995: [ValueTracking] Add support for X*X self-multiplication

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Jan 23 11:35:29 PST 2022


efriedma added a comment.

alive2 says the following is invalid:

  define i5 @src(i5 %x) {
    %a = mul i5 %x, %x
    %b = and i5 %a, -3
    ret i5 %b
  }
  
  define i5 @tgt(i5 %x) {
    %a = mul i5 %x, %x
    ret i5 %a
  }



  Transformation doesn't verify!
  
  ERROR: Value mismatch
  
  Example:
  i5 %x = undef
  
  Source:
  i5 %a = any
  i5 %b = #x00 (0)	[based on undef value]
  
  Target:
  i5 %a = #x02 (2)
  Source value: #x00 (0)
  Target value: #x02 (2)


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D117995



More information about the llvm-commits mailing list