1; RUN: opt -loop-vectorize -force-vector-width=16 -force-vector-interleave=1 -S < %s | FileCheck %s
2; RUN: opt -loop-vectorize -scalable-vectorization=on -force-target-supports-scalable-vectors=true -force-vector-width=16 -force-vector-interleave=1 -S < %s | FileCheck %s --check-prefix=SVE
3
4define i64 @test(ptr noalias readonly %addr) {
5; CHECK-LABEL: @test(
6; CHECK:       vector.body:
7; CHECK:       freeze <16 x i64>
8
9; SVE-LABEL: @test(
10; SVE:       vector.body:
11; SVE:       freeze <vscale x 16 x i64>
12
13entry:
14  br label %loop
15
16exit:
17  ret i64 %tmp4
18
19loop:
20  %tmp3 = phi ptr [ %tmp6, %loop ], [ %addr, %entry ]
21  %tmp4 = freeze i64 0
22  %tmp5 = add i64 0, 0
23  %tmp6 = getelementptr inbounds ptr, ptr %tmp3, i64 1
24  %tmp7 = icmp eq ptr %tmp6, null
25  br i1 %tmp7, label %exit, label %loop
26}
27