[llvm] 69f2de1 - [InstCombine] Add test for inttoptr of ptrtoaddr (NFC)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 9 01:39:34 PDT 2025
Author: Nikita Popov
Date: 2025-10-09T10:39:25+02:00
New Revision: 69f2de1996e238cd1fb6708444b3209538f55c59
URL: https://github.com/llvm/llvm-project/commit/69f2de1996e238cd1fb6708444b3209538f55c59
DIFF: https://github.com/llvm/llvm-project/commit/69f2de1996e238cd1fb6708444b3209538f55c59.diff
LOG: [InstCombine] Add test for inttoptr of ptrtoaddr (NFC)
And document that we're intentionally not folding this case.
For inttoptr of ptrtoint this is controlled by the
-disable-i2p-p2i-opt flag, but I don't think there is a need to
replicate this known unsound fold for ptrtoaddr, given their
different usage characteristics.
Added:
Modified:
llvm/test/Transforms/InstCombine/ptrtoaddr.ll
Removed:
################################################################################
diff --git a/llvm/test/Transforms/InstCombine/ptrtoaddr.ll b/llvm/test/Transforms/InstCombine/ptrtoaddr.ll
index f76a1399f8f2a..49b9b7e198dfa 100644
--- a/llvm/test/Transforms/InstCombine/ptrtoaddr.ll
+++ b/llvm/test/Transforms/InstCombine/ptrtoaddr.ll
@@ -99,3 +99,13 @@ define i32 @ptrtoaddr_gep_sub_addrsize() {
;
ret i32 ptrtoaddr (ptr addrspace(1) getelementptr (i8, ptr addrspace(1) @g.as1, i32 sub (i32 0, i32 ptrtoaddr (ptr addrspace(1) @g2.as1 to i32))) to i32)
}
+
+; Don't fold inttoptr of ptrtoaddr away. inttoptr will pick a previously
+; exposed provenance, which is not necessarily that of @g (especially as
+; ptrtoaddr does not expose the provenance.)
+define ptr @inttoptr_of_ptrtoaddr() {
+; CHECK-LABEL: define ptr @inttoptr_of_ptrtoaddr() {
+; CHECK-NEXT: ret ptr inttoptr (i64 ptrtoaddr (ptr @g to i64) to ptr)
+;
+ ret ptr inttoptr (i64 ptrtoaddr (ptr @g to i64) to ptr)
+}
More information about the llvm-commits
mailing list