[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / polly / test / ScopDetect / profitability-two-nested-loops.ll
blob0291d3be452a14595947f7ca0f1e26a5764587cd
1 ; RUN: opt %loadNPMPolly '-passes=print<polly-detect>' -disable-output < %s 2>&1 | FileCheck %s
3 ; CHECK: Valid Region for Scop: next => bb3
5 ;    void foo(float A[], long p) {
6 ;      for (long x = 0; x < 1024; x++) {
7 ;        __sync_synchronize();
8 ;        if (p >= 0) {
9 ;          for (long i = 0; i < 1024; i++)
10 ;            for (long j = 0; j < 1024; j++)
11 ;              A[i + j] += j;
12 ;        }
13 ;      }
14 ;    }
16 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
17 target triple = "x86_64-pc-linux-gnu"
19 define void @foo(ptr %A, i64 %p) {
20 bb:
21   br label %bb3
23 bb3:                                              ; preds = %bb25, %bb
24   %x.0 = phi i64 [ 0, %bb ], [ %tmp26, %bb25 ]
25   %exitcond2 = icmp ne i64 %x.0, 1024
26   br i1 %exitcond2, label %bb5, label %bb4
28 bb4:                                              ; preds = %bb3
29   br label %bb27
31 bb5:                                              ; preds = %bb3
32   fence seq_cst
33   br label %next
35 next:
36   %tmp = icmp sgt i64 %p, -1
37   br i1 %tmp, label %bb6, label %bb24
39 bb6:                                              ; preds = %bb5
40   br label %bb7
42 bb7:                                              ; preds = %bb21, %bb6
43   %i.0 = phi i64 [ 0, %bb6 ], [ %tmp22, %bb21 ]
44   %exitcond1 = icmp ne i64 %i.0, 1024
45   br i1 %exitcond1, label %bb9, label %bb8
47 bb8:                                              ; preds = %bb7
48   br label %bb23
50 bb9:                                              ; preds = %bb7
51   br label %bb10
53 bb10:                                             ; preds = %bb18, %bb9
54   %j.0 = phi i64 [ 0, %bb9 ], [ %tmp19, %bb18 ]
55   %exitcond = icmp ne i64 %j.0, 1024
56   br i1 %exitcond, label %bb12, label %bb11
58 bb11:                                             ; preds = %bb10
59   br label %bb20
61 bb12:                                             ; preds = %bb10
62   %tmp13 = sitofp i64 %j.0 to float
63   %tmp14 = add nuw nsw i64 %i.0, %j.0
64   %tmp15 = getelementptr inbounds float, ptr %A, i64 %tmp14
65   %tmp16 = load float, ptr %tmp15, align 4
66   %tmp17 = fadd float %tmp16, %tmp13
67   store float %tmp17, ptr %tmp15, align 4
68   br label %bb18
70 bb18:                                             ; preds = %bb12
71   %tmp19 = add nuw nsw i64 %j.0, 1
72   br label %bb10
74 bb20:                                             ; preds = %bb11
75   br label %bb21
77 bb21:                                             ; preds = %bb20
78   %tmp22 = add nuw nsw i64 %i.0, 1
79   br label %bb7
81 bb23:                                             ; preds = %bb8
82   br label %bb24
84 bb24:                                             ; preds = %bb23, %bb5
85   br label %bb25
87 bb25:                                             ; preds = %bb24
88   %tmp26 = add nuw nsw i64 %x.0, 1
89   br label %bb3
91 bb27:                                             ; preds = %bb4
92   ret void