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