Yingwei Zheng 949ec83eaf
[InstCombine] Relax the same-underlying-object constraint for the GEP canonicalization (#76583)
7d7001b2cb
canonicalizes `(gep i8, X, (ptrtoint Y) - (ptrtoint X))` into `bitcast
Y` iff `X` and `Y` have the same underlying object.

I find that the result of this pattern is usually used as an operand of
an icmp in some real-world applications. I think we can do the
canonicalization if the result is only used by icmps/ptrtoints.

Alive2: https://alive2.llvm.org/ce/z/j4-HJZ
2024-01-01 00:35:42 +08:00
..