diff --git a/llvm/test/Analysis/BasicAA/vscale.ll b/llvm/test/Analysis/BasicAA/vscale.ll index b2f5c66be5bb2..895ae1e002332 100644 --- a/llvm/test/Analysis/BasicAA/vscale.ll +++ b/llvm/test/Analysis/BasicAA/vscale.ll @@ -469,11 +469,29 @@ define void @vscale_negativescale(ptr %p) vscale_range(1,16) { ret void } +; CHECK-LABEL: onevscale +; CHECK-DAG: MustAlias: * %vp161, * %vp162 +; CHECK-DAG: MayAlias: * %vp161, * %vp161b +; CHECK-DAG: MayAlias: * %vp161b, * %vp162 +define void @onevscale(ptr %p) vscale_range(1,16) { + %v1 = call i64 @llvm.vscale.i64() + %vp1 = mul nsw i64 %v1, 16 + %vp2 = mul nsw i64 %v1, 16 + %vp3 = mul nsw i64 %v1, 17 + %vp161 = getelementptr i8, ptr %p, i64 %vp1 + %vp162 = getelementptr i8, ptr %p, i64 %vp2 + %vp161b = getelementptr i8, ptr %vp161, i64 %vp3 + load , ptr %vp161 + load , ptr %vp162 + load , ptr %vp161b + ret void +} + ; CHECK-LABEL: twovscales ; CHECK-DAG: MayAlias: * %vp161, * %vp162 ; CHECK-DAG: MayAlias: * %vp161, * %vp161b ; CHECK-DAG: MayAlias: * %vp161b, * %vp162 -define void @twovscales(ptr %p) { +define void @twovscales(ptr %p) vscale_range(1,16) { %v1 = call i64 @llvm.vscale.i64() %v2 = call i64 @llvm.vscale.i64() %vp1 = mul nsw i64 %v1, 16