[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