[mlir][PDLL] Allow (and ignore) `-D` tablegen macros. (#124166)
[llvm-project.git] / polly / test / ScopDetect / non_affine_loop_condition.ll
blob63bd7b3a2f1f288d0dc505a13a0860ec89ee7e3e
1 ; RUN: opt %loadNPMPolly -polly-allow-nonaffine-loops                                   '-passes=print<polly-detect>' -disable-output < %s 2>&1 | FileCheck %s
2 ; RUN: opt %loadNPMPolly -polly-allow-nonaffine-loops -polly-process-unprofitable=false '-passes=print<polly-detect>' -disable-output < %s 2>&1 | FileCheck %s --check-prefix=PROFIT
4 ;    void f(int *A) {
5 ;      for (int i = 0; i < 1024; i++) {
6 ;        while (A[i])
7 ;          A[i]--;
8 ;      }
9 ;    }
11 ; PROFIT-NOT: Valid
13 ; CHECK: Valid Region for Scop: bb1 => bb12
14 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
16 define void @f(ptr %A) {
17 bb:
18   br label %bb1
20 bb1:                                              ; preds = %bb11, %bb
21   %indvars.iv = phi i64 [ %indvars.iv.next, %bb11 ], [ 0, %bb ]
22   %exitcond = icmp ne i64 %indvars.iv, 1024
23   br i1 %exitcond, label %bb2, label %bb12
25 bb2:                                              ; preds = %bb1
26   br label %bb3
28 bb3:                                              ; preds = %bb6, %bb2
29   %tmp = getelementptr inbounds i32, ptr %A, i64 %indvars.iv
30   %tmp4 = load i32, ptr %tmp, align 4
31   %tmp5 = icmp eq i32 %tmp4, 0
32   br i1 %tmp5, label %bb10, label %bb6
34 bb6:                                              ; preds = %bb3
35   %tmp7 = getelementptr inbounds i32, ptr %A, i64 %indvars.iv
36   %tmp8 = load i32, ptr %tmp7, align 4
37   %tmp9 = add nsw i32 %tmp8, -1
38   store i32 %tmp9, ptr %tmp7, align 4
39   br label %bb3
41 bb10:                                             ; preds = %bb3
42   br label %bb11
44 bb11:                                             ; preds = %bb10
45   %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
46   br label %bb1
48 bb12:                                             ; preds = %bb1
49   ret void