Skip to content

Commit 267d813

Browse files
committed
[ConstantFold] inttoptr, ptrtoaddr is valid cast pair
1 parent fae54a0 commit 267d813

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

llvm/lib/IR/Instructions.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2847,6 +2847,7 @@ unsigned CastInst::isEliminableCastPair(
28472847
// FPTRUNC > FloatPt n/a FloatPt n/a
28482848
// FPEXT < FloatPt n/a FloatPt n/a
28492849
// PTRTOINT n/a Pointer n/a Integral Unsigned
2850+
// PTRTOADDR n/a Pointer n/a Integral Unsigned
28502851
// INTTOPTR n/a Integral Unsigned Pointer n/a
28512852
// BITCAST = FirstClass n/a FirstClass n/a
28522853
// ADDRSPCST n/a Pointer n/a Pointer n/a
@@ -2878,7 +2879,7 @@ unsigned CastInst::isEliminableCastPair(
28782879
{ 99,99,99, 2, 2,99,99, 8, 2,99,99,99, 4, 0}, // FPExt |
28792880
{ 1, 0, 0,99,99, 0, 0,99,99,99,99, 7, 3, 0}, // PtrToInt |
28802881
{ 1, 0, 0,99,99, 0, 0,99,99,99,99, 0, 3, 0}, // PtrToAddr |
2881-
{ 99,99,99,99,99,99,99,99,99,11,99,99,15, 0}, // IntToPtr |
2882+
{ 99,99,99,99,99,99,99,99,99,11, 0,99,15, 0}, // IntToPtr |
28822883
{ 5, 5, 5, 0, 0, 5, 5, 0, 0,16,16, 5, 1,14}, // BitCast |
28832884
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,13,12}, // AddrSpaceCast -+
28842885
};

llvm/test/Transforms/InstCombine/constant-expr-datalayout.ll

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,17 @@ define i64 @OpenFilter(i64 %x) {
3232
%r = zext i8 %t to i64
3333
ret i64 %r
3434
}
35+
36+
define i64 @ptr2addr1() {
37+
; CHECK-LABEL: @ptr2addr1(
38+
; CHECK-NEXT: ret i64 ptrtoaddr (ptr inttoptr (i64 1 to ptr) to i64)
39+
;
40+
ret i64 ptrtoaddr (ptr getelementptr (i8, ptr null, i64 1) to i64)
41+
}
42+
43+
define i64 @ptr2addr2() {
44+
; CHECK-LABEL: @ptr2addr2(
45+
; CHECK-NEXT: ret i64 ptrtoaddr (ptr inttoptr (i64 123 to ptr) to i64)
46+
;
47+
ret i64 ptrtoaddr (ptr inttoptr (i64 123 to ptr) to i64)
48+
}

0 commit comments

Comments
 (0)