[llvm] f2de174 - [InstSimplify] Add test for incorrect handling of wide pointers (NFC)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 7 05:56:06 PDT 2025


Author: Nikita Popov
Date: 2025-10-07T14:55:23+02:00
New Revision: f2de174ef9bae18a25671d3a51729bebe1385bb3

URL: https://github.com/llvm/llvm-project/commit/f2de174ef9bae18a25671d3a51729bebe1385bb3
DIFF: https://github.com/llvm/llvm-project/commit/f2de174ef9bae18a25671d3a51729bebe1385bb3.diff

LOG: [InstSimplify] Add test for incorrect handling of wide pointers (NFC)

The intermediate integer type is too small to hold the full value.

Added: 
    

Modified: 
    llvm/test/Transforms/InstSimplify/ptrtoint.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/InstSimplify/ptrtoint.ll b/llvm/test/Transforms/InstSimplify/ptrtoint.ll
index 734618713c342..68af4d7d974db 100644
--- a/llvm/test/Transforms/InstSimplify/ptrtoint.ll
+++ b/llvm/test/Transforms/InstSimplify/ptrtoint.ll
@@ -1,6 +1,8 @@
 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
 ; RUN: opt -S -passes=instsimplify < %s | FileCheck %s
 
+target datalayout = "p1:128:128:128"
+
 define i64 @ptrtoint_gep_sub(ptr %ptr, i64 %end.addr) {
 ; CHECK-LABEL: define i64 @ptrtoint_gep_sub(
 ; CHECK-SAME: ptr [[PTR:%.*]], i64 [[END_ADDR:%.*]]) {
@@ -136,3 +138,14 @@ define i128 @ptrtoint_gep_sub_wide_type(ptr %ptr, i128 %end.addr) {
   %end.addr2 = ptrtoint ptr %end to i128
   ret i128 %end.addr2
 }
+
+; FIXME: This is a miscompile.
+define ptr addrspace(1) @inttoptr_of_ptrtoint_wide(ptr addrspace(1) %ptr) {
+; CHECK-LABEL: define ptr addrspace(1) @inttoptr_of_ptrtoint_wide(
+; CHECK-SAME: ptr addrspace(1) [[PTR:%.*]]) {
+; CHECK-NEXT:    ret ptr addrspace(1) [[PTR]]
+;
+  %int = ptrtoint ptr addrspace(1) %ptr to i64
+  %ptr2 = inttoptr i64 %int to ptr addrspace(1)
+  ret ptr addrspace(1) %ptr2
+}


        


More information about the llvm-commits mailing list