1; RUN: opt -loop-vectorize -force-vector-width=4 -force-vector-interleave=1 -S %s | FileCheck %s
2
3; Avoid crashing while trying to vectorize fcmp that can be folded to vector of
4; i1 true.
5define void @test1() {
6; CHECK-LABEL: test1(
7; CHECK-LABEL: vector.body:
8; CHECK-NEXT:    %index = phi i32 [ 0, %vector.ph ], [ %index.next, %vector.body ]
9; CHECK-NEXT:    %broadcast.splatinsert = insertelement <4 x i32> undef, i32 %index, i32 0
10; CHECK:         %induction = add <4 x i32> %broadcast.splat, <i32 0, i32 1, i32 2, i32 3>
11; CHECK:         %index.next = add i32 %index, 4
12
13entry:
14  br label %loop
15
16loop:                                              ; preds = %loop, %entry
17  %iv = phi i32 [ 0, %entry ], [ %ivnext, %loop ]
18  %fcmp = fcmp uno float 0.000000e+00, 0.000000e+00
19  %ivnext = add nsw i32 %iv, 1
20  %cnd = icmp sgt i32 %iv, 142
21  br i1 %cnd, label %exit, label %loop
22
23exit:                                              ; preds = %loop
24  ret void
25}
26