xref: /llvm-project/llvm/test/Analysis/AliasSet/memloc-vscale.ll (revision 84ea236af9f36d409d2c45c66f8a8b6eb027935d)
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2; RUN: opt -S < %s -passes=print-alias-sets 2>&1 | FileCheck %s
3
4; CHECK-LABEL: Alias sets for function 'sn'
5; CHECK: AliasSet[{{.*}}, 1] must alias, Mod       Memory locations: (ptr %p, LocationSize::precise(vscale x 16)), (ptr %p, LocationSize::precise(8))
6define void @sn(ptr %p) {;
7  store <vscale x 2 x i64> zeroinitializer, ptr %p, align 2
8  store i64 0, ptr %p, align 2
9  ret void
10}
11
12; CHECK-LABEL: Alias sets for function 'ns'
13; CHECK: AliasSet[{{.*}}, 1] must alias, Mod       Memory locations: (ptr %p, LocationSize::precise(8)), (ptr %p, LocationSize::precise(vscale x 16))
14define void @ns(ptr %p) {
15  store i64 0, ptr %p, align 2
16  store <vscale x 2 x i64> zeroinitializer, ptr %p, align 2
17  ret void
18}
19
20; CHECK-LABEL: Alias sets for function 'ss':
21; CHECK: AliasSet[{{.*}}, 1] must alias, Mod       Memory locations: (ptr %p, LocationSize::precise(vscale x 16))
22define void @ss(ptr %p) {
23  store <vscale x 2 x i64> zeroinitializer, ptr %p, align 2
24  store <vscale x 2 x i64> zeroinitializer, ptr %p, align 2
25  ret void
26}
27
28; CHECK-LABEL: Alias sets for function 'ss2':
29; CHECK: AliasSet[{{.*}}, 1] must alias, Mod       Memory locations: (ptr %p, LocationSize::precise(vscale x 16)), (ptr %p, LocationSize::precise(vscale x 32))
30define void @ss2(ptr %p) {
31  store <vscale x 2 x i64> zeroinitializer, ptr %p, align 2
32  store <vscale x 2 x i64> zeroinitializer, ptr %p, align 2
33  store <vscale x 4 x i64> zeroinitializer, ptr %p, align 2
34  ret void
35}
36; CHECK-LABEL: Alias sets for function 'son':
37; CHECK: AliasSet[{{.*}}, 1] must alias, Mod       Memory locations: (ptr %g, LocationSize::precise(vscale x 16))
38; CHECK: AliasSet[{{.*}}, 1] must alias, Mod       Memory locations: (ptr %p, LocationSize::precise(8))
39define void @son(ptr %p) {
40  %g = getelementptr i8, ptr %p, i64 8
41  store <vscale x 2 x i64> zeroinitializer, ptr %g, align 2
42  store i64 0, ptr %p, align 2
43  ret void
44}
45
46; CHECK-LABEL: Alias sets for function 'sno':
47; CHECK: AliasSet[{{.*}}, 2] may alias, Mod       Memory locations: (ptr %p, LocationSize::precise(vscale x 16)), (ptr %g, LocationSize::precise(8))
48define void @sno(ptr %p) {
49  %g = getelementptr i8, ptr %p, i64 8
50  store <vscale x 2 x i64> zeroinitializer, ptr %p, align 2
51  store i64 0, ptr %g, align 2
52  ret void
53}
54