[OpenACC] Enable 'attach' clause for combined constructs
[llvm-project.git] / llvm / test / CodeGen / X86 / machine-loops.ll
blobef0ba4dbf8a88866261215752e0f2c5671aa0784
1 ; RUN: llc -mtriple=x86_64-linux-gnu -stop-after=x86-isel %s -o - | llc --passes='print<machine-loops>' -x mir -o - 2>&1 | FileCheck %s
3 ; Function Attrs: noinline nounwind optnone ssp uwtable
4 define i32 @foo(i32 noundef %0) #0 {
5   %2 = alloca i32, align 4
6   %3 = alloca i32, align 4
7   %4 = alloca i32, align 4
8   store i32 %0, ptr %2, align 4
9   store i32 0, ptr %3, align 4
10   store i32 0, ptr %4, align 4
11   br label %5
13 5:                                                ; preds = %13, %1
14   %6 = load i32, ptr %4, align 4
15   %7 = load i32, ptr %2, align 4
16   %8 = icmp ne i32 %6, %7
17   br i1 %8, label %9, label %16
19 9:                                                ; preds = %5
20   %10 = load i32, ptr %4, align 4
21   %11 = load i32, ptr %3, align 4
22   %12 = add nsw i32 %11, %10
23   store i32 %12, ptr %3, align 4
24   br label %13
26 13:                                               ; preds = %9
27   %14 = load i32, ptr %4, align 4
28   %15 = add nsw i32 %14, 1
29   store i32 %15, ptr %4, align 4
30   br label %5, !llvm.loop !1
32 16:                                               ; preds = %5
33   %17 = load i32, ptr %3, align 4
34   %18 = load i32, ptr %2, align 4
35   %19 = add nsw i32 %17, %18
36   ret i32 %19
39 !0 = distinct !{!0, !1}
40 !1 = !{!"llvm.loop.mustprogress"}
42 ; CHECK: Machine loop info for machine function 'foo':
43 ; CHECK: Loop at depth 1 containing: %bb.1<header><exiting>,%bb.2,%bb.3<latch>