[RISCV] Fix mgather -> riscv.masked.strided.load combine not extending indices (...
[llvm-project.git] / polly / test / ScopDetect / non_affine_loop_condition.ll
blobf268442cd8ee0cebe3f352a3eedb7d0f11e3fa22
1 ; RUN: opt %loadPolly -polly-allow-nonaffine-loops                                   -polly-print-detect -disable-output < %s | FileCheck %s
2 ; RUN: opt %loadPolly -polly-allow-nonaffine-loops -polly-process-unprofitable=false -polly-print-detect -disable-output < %s | 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