diff options
Diffstat (limited to 'test/Transforms/InstSimplify/call.ll')
-rw-r--r-- | test/Transforms/InstSimplify/call.ll | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/test/Transforms/InstSimplify/call.ll b/test/Transforms/InstSimplify/call.ll index b360ecb84342..988ec2b71c50 100644 --- a/test/Transforms/InstSimplify/call.ll +++ b/test/Transforms/InstSimplify/call.ll @@ -1,4 +1,5 @@ ; RUN: opt < %s -instsimplify -S | FileCheck %s +; RUN: opt < %s -passes=instsimplify -S | FileCheck %s declare {i8, i1} @llvm.uadd.with.overflow.i8(i8 %a, i8 %b) declare {i8, i1} @llvm.usub.with.overflow.i8(i8 %a, i8 %b) @@ -187,4 +188,38 @@ cast.end: ; preds = %cast.notnull, %entr ; CHECK: br i1 %cmp, label %cast.end, label %cast.notnull } +define i32 @call_null() { +entry: + %call = call i32 null() + ret i32 %call +} +; CHECK-LABEL: define i32 @call_null( +; CHECK: ret i32 undef + +define i32 @call_undef() { +entry: + %call = call i32 undef() + ret i32 %call +} +; CHECK-LABEL: define i32 @call_undef( +; CHECK: ret i32 undef + +@GV = private constant [8 x i32] [i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49] + +define <8 x i32> @partial_masked_load() { +; CHECK-LABEL: @partial_masked_load( +; CHECK: ret <8 x i32> <i32 undef, i32 undef, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47> + %masked.load = call <8 x i32> @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* bitcast (i32* getelementptr ([8 x i32], [8 x i32]* @GV, i64 0, i64 -2) to <8 x i32>*), i32 4, <8 x i1> <i1 false, i1 false, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true>, <8 x i32> undef) + ret <8 x i32> %masked.load +} + +define <8 x i32> @masked_load_undef_mask(<8 x i32>* %V) { +; CHECK-LABEL: @masked_load_undef_mask( +; CHECK: ret <8 x i32> <i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0> + %masked.load = call <8 x i32> @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %V, i32 4, <8 x i1> undef, <8 x i32> <i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0>) + ret <8 x i32> %masked.load +} + declare noalias i8* @malloc(i64) + +declare <8 x i32> @llvm.masked.load.v8i32.p0v8i32(<8 x i32>*, i32, <8 x i1>, <8 x i32>) |