[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