diff --git a/llvm/test/CodeGen/AArch64/stack-tagging.ll b/llvm/test/CodeGen/AArch64/stack-tagging.ll index 3e36a348bed353..f75a656f16fbf2 100644 --- a/llvm/test/CodeGen/AArch64/stack-tagging.ll +++ b/llvm/test/CodeGen/AArch64/stack-tagging.ll @@ -143,4 +143,33 @@ l: ; CHECK-NOT: @llvm.aarch64.irg.sp ; CHECK: ret void +define void @DoubleEnd(i32 %b) sanitize_memtag { +entry: + %x = alloca i32, align 4 + %tobool = icmp eq i32 %b, 0 + br i1 %tobool, label %if.end, label %if.then + +if.then: + call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %x) + call void @use8(ptr %x) #3 + call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %x) + call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %x) + br label %if.end + +if.end: + ret void +} + + +; CHECK-LABEL: define void @DoubleEnd( +; CHECK: call void @llvm.aarch64.settag( +; CHECK: br i1 +; CHECK-NOT: @llvm.lifetime.start +; CHECK: call void @use8( +; CHECK: call void @llvm.aarch64.settag( +; CHECK-NOT: @llvm.lifetime.end +; CHECK: ret void + + + !0 = !{}