Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Transforms / LoopUnroll / ARM / dont-unroll-loopdec.ll
blobc8ff6578fcfc3ee5ebb3bee16005ae9d1c156fbc
1 ; RUN: opt -mtriple=thumbv8.1m.main -mattr=+mve.fp -passes=loop-unroll -S < %s | FileCheck %s
3 ; CHECK-LABEL:  foo
4 ; CHECK:        5:
5 ; CHECK:        6:                 ; preds = %6, %5
6 ; CHECK:        15:                ; preds = %6
7 ; CHECK:          br label %16
8 ; CHECK:        16:                ; preds = %15, %3
9 ; CHECK:          ret void
10 ; CHECK:        }
12 define void @foo(ptr nocapture, ptr nocapture readonly, i32) {
13   %4 = icmp sgt i32 %2, 0
14   br i1 %4, label %5, label %16
16 ; <label>:5:
17   br label %6
19 ; <label>:6:
20   %7 = phi i32 [ %13, %6 ], [ %2, %5 ]
21   %8 = phi ptr [ %10, %6 ], [ %1, %5 ]
22   %9 = phi ptr [ %12, %6 ], [ %0, %5 ]
23   %10 = getelementptr inbounds i8, ptr %8, i32 1
24   %11 = load i8, ptr %8, align 1
25   %12 = getelementptr inbounds i8, ptr %9, i32 1
26   store i8 %11, ptr %9, align 1
28   %13 = call i32 @llvm.loop.decrement.reg.i32.i32.i32(i32 %7, i32 1)
30   %14 = icmp sgt i32 %7, 1
31   br i1 %14, label %6, label %15
33 ; <label>:15:
34   br label %16
36 ; <label>:16:
37   ret void
40 declare i32 @llvm.loop.decrement.reg.i32.i32.i32(i32, i32)