[PATCH] D86364: [ValueTracking] Interpret GEPs as a series of adds multiplied by the related scaling factor

Quentin Colombet via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 21 12:56:39 PDT 2020


qcolombet added a comment.

> Let me see if I can massage the IR to work around this issue.

It doesn't work because instcombine simplify:

  %gep = getelementptr float, float* %valptr, i64 512
  %gepToInt = ptrtoint float* %gep to i64
  %res = icmp ugt i64 %gepToInt, 523

Into:

  %gep = getelementptr float, float* %valptr, i64 512
  %res = icmp ugt float* %gep, inttoptr (i64 523 to float*)

So I am back to the issue that instcombine doesn't understand that `icmp ugt float* %gep, inttoptr (i64 523 to float*)` is `icmp ugt float*, 523`


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D86364



More information about the llvm-commits mailing list