[ARM] Better OR's for MVE compares
[llvm-core.git] / test / Transforms / NaryReassociate / pr37539.ll
blobf7fbfd215999be4f3d5fc3c57bb8e166597e55fd
1 ; RUN: opt < %s -nary-reassociate -S -o - | FileCheck %s
3 ; The test check that compilation does not segv (see pr37539).
5 define void @f1() {
6 ; CHECK-LABEL: @f1(
7 ; CHECK-NEXT:    br label %[[BB1:.*]]
8 ; CHECK:         [[BB1]]
9 ; CHECK-NEXT:    [[P1:%.*]] = phi i16 [ 0, [[TMP0:%.*]] ], [ [[A1:%.*]], %[[BB1]] ]
10 ; CHECK-NEXT:    [[SCEVGEP_OFFS:%.*]] = add i16 2, 0
11 ; CHECK-NEXT:    [[A1]] = add i16 [[P1]], [[SCEVGEP_OFFS]]
12 ; CHECK-NEXT:    br i1 false, label %[[BB1]], label %[[BB7:.*]]
13 ; CHECK:         [[BB7]]
14 ; CHECK-NEXT:    ret void
16   br label %bb1
18 bb1:
19   %p1 = phi i16 [ 0, %0 ], [ %a1, %bb1 ]
20   %p2 = phi i16 [ 0, %0 ], [ %a2, %bb1 ]
21   %scevgep.offs = add i16 2, 0
22   %a1 = add i16 %p1, %scevgep.offs
23   %scevgep.offs5 = add i16 2, 0
24   %a2 = add i16 %p2, %scevgep.offs5
25   br i1 false, label %bb1, label %bb7
27 bb7:
28   ret void