summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorSanjoy Das <sanjoy@playingwithpointers.com>2016-08-05 19:23:29 +0000
committerSanjoy Das <sanjoy@playingwithpointers.com>2016-08-05 19:23:29 +0000
commit6fa08aafcce77c519b19c605c6cb2853ca2a35ea (patch)
tree5d32e827fb711110209660a230fe71ef9d376bbe /llvm/test
parent344e25f13b89ab2907c666a5c76d425434d31747 (diff)
downloadbcm5719-llvm-6fa08aafcce77c519b19c605c6cb2853ca2a35ea.tar.gz
bcm5719-llvm-6fa08aafcce77c519b19c605c6cb2853ca2a35ea.zip
[ConstantFolding] Don't create illegal (non-integral) inttoptrs
Reviewers: majnemer, arsenm Subscribers: mcrosier, llvm-commits Differential Revision: https://reviews.llvm.org/D23182 llvm-svn: 277854
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/Transforms/InstCombine/non-integral-pointers.ll20
1 files changed, 20 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/non-integral-pointers.ll b/llvm/test/Transforms/InstCombine/non-integral-pointers.ll
new file mode 100644
index 00000000000..d5e2569179b
--- /dev/null
+++ b/llvm/test/Transforms/InstCombine/non-integral-pointers.ll
@@ -0,0 +1,20 @@
+; RUN: opt -instcombine -S < %s | FileCheck %s
+
+target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128-ni:4"
+target triple = "x86_64-unknown-linux-gnu"
+
+define i8 addrspace(4)* @f_0() {
+; CHECK-LABEL: @f_0(
+; CHECK: ret i8 addrspace(4)* getelementptr (i8, i8 addrspace(4)* null, i64 50)
+ %result = getelementptr i8, i8 addrspace(4)* null, i64 50
+ ret i8 addrspace(4)* %result
+}
+
+define i8 addrspace(3)* @f_1() {
+; inttoptr is fine here since addrspace(3) is integral.
+
+; CHECK-LABEL: @f_1(
+; CHECK: ret i8 addrspace(3)* inttoptr (i64 50 to i8 addrspace(3)*)
+ %result = getelementptr i8, i8 addrspace(3)* null, i64 50
+ ret i8 addrspace(3)* %result
+}
OpenPOWER on IntegriCloud