diff options
author | George Burgess IV <george.burgess.iv@gmail.com> | 2017-03-21 20:08:59 +0000 |
---|---|---|
committer | George Burgess IV <george.burgess.iv@gmail.com> | 2017-03-21 20:08:59 +0000 |
commit | 56c7e88c2cd8f4f6d440f50d9f19401763f3122b (patch) | |
tree | 387c614351099aaccde94582e47a058120215ca3 /llvm/test/Assembler/auto_upgrade_intrinsics.ll | |
parent | ce39fdd6eeabc4a007ce7821a247cc58b816e0d7 (diff) | |
download | bcm5719-llvm-56c7e88c2cd8f4f6d440f50d9f19401763f3122b.tar.gz bcm5719-llvm-56c7e88c2cd8f4f6d440f50d9f19401763f3122b.zip |
Let llvm.objectsize be conservative with null pointers
This adds a parameter to @llvm.objectsize that makes it return
conservative values if it's given null.
This fixes PR23277.
Differential Revision: https://reviews.llvm.org/D28494
llvm-svn: 298430
Diffstat (limited to 'llvm/test/Assembler/auto_upgrade_intrinsics.ll')
-rw-r--r-- | llvm/test/Assembler/auto_upgrade_intrinsics.ll | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/llvm/test/Assembler/auto_upgrade_intrinsics.ll b/llvm/test/Assembler/auto_upgrade_intrinsics.ll index 2f0f4f779e7..6df5500b442 100644 --- a/llvm/test/Assembler/auto_upgrade_intrinsics.ll +++ b/llvm/test/Assembler/auto_upgrade_intrinsics.ll @@ -53,11 +53,20 @@ entry: define i32 @test.objectsize() { ; CHECK-LABEL: @test.objectsize( -; CHECK: @llvm.objectsize.i32.p0i8 +; CHECK: @llvm.objectsize.i32.p0i8(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @a, i32 0, i32 0), i1 false, i1 false) %s = call i32 @llvm.objectsize.i32(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @a, i32 0, i32 0), i1 false) ret i32 %s } +declare i64 @llvm.objectsize.i64.p0i8(i8*, i1) nounwind readonly +define i64 @test.objectsize.2() { +; CHECK-LABEL: @test.objectsize.2( +; CHECK: @llvm.objectsize.i64.p0i8(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @a, i32 0, i32 0), i1 false, i1 false) + %s = call i64 @llvm.objectsize.i64.p0i8(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @a, i32 0, i32 0), i1 false) + ret i64 %s +} + + declare <2 x double> @llvm.masked.load.v2f64(<2 x double>* %ptrs, i32, <2 x i1> %mask, <2 x double> %src0) define <2 x double> @tests.masked.load(<2 x double>* %ptr, <2 x i1> %mask, <2 x double> %passthru) { |