Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Transforms / Inline / AArch64 / sve-alloca-merge.ll
blobc1375cbf3493dd02927bb16810cb4f5b5513051c
1 ; RUN: opt -mtriple=aarch64--linux-gnu -mattr=+sve < %s -passes=inline -S | FileCheck %s
3 define void @bar(ptr %a) {
4 entry:
5   %b = alloca <vscale x 2 x i64>, align 16
6   store <vscale x 2 x i64> zeroinitializer, ptr %b, align 16
7   %c = load <vscale x 2 x i64>, ptr %a, align 16
8   %d = load <vscale x 2 x i64>, ptr %b, align 16
9   %e = add <vscale x 2 x i64> %c, %d
10   %f = add <vscale x 2 x i64> %e, %c
11   store <vscale x 2 x i64> %f, ptr %a, align 16
12   ret void
15 define i64 @foo() {
16 ; CHECK-LABEL: @foo(
17 ; CHECK: call void @llvm.lifetime.start.p0(i64 -1, ptr %{{.*}})
18 ; CHECK: call void @llvm.lifetime.end.p0(i64 -1, ptr %{{.*}})
19 entry:
20   %a = alloca <vscale x 2 x i64>, align 16
21   store <vscale x 2 x i64> zeroinitializer, ptr %a, align 16
22   store i64 1, ptr %a, align 8
23   call void @bar(ptr %a)
24   %el = load i64, ptr %a
25   ret i64 %el