[flang] Fix length handling in character kind implicit conversion (#74586)
[llvm-project.git] / polly / test / ScopInfo / NonAffine / modulo_backedge.ll
blobdec63ca6813d124316df4c7fcb12a22a9130dc9f
1 ; RUN: opt %loadPolly -polly-print-scops -disable-output < %s | FileCheck %s
3 ; CHECK: Domain :=
4 ; CHECK:   { Stmt_for_body[i0] : 0 <= i0 <= 6 };
6 ;    void foo(float *A) {
7 ;      for (long i = 1;; i++) {
8 ;        A[i] += 1;
9 ;        if (i % 7 == 0)
10 ;          break;
11 ;      }
12 ;    }
14 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
16 define void @foo(ptr %A) {
17 entry:
18   br label %for.cond
20 for.cond:                                         ; preds = %for.inc, %entry
21   %i.0 = phi i64 [ 1, %entry ], [ %inc, %for.inc ]
22   br label %for.body
24 for.body:                                         ; preds = %for.cond
25   %arrayidx0 = getelementptr inbounds float, ptr %A, i64 %i.0
26   %tmp0 = load float, ptr %arrayidx0, align 4
27   %add0 = fadd float %tmp0, 2.000000e+00
28   store float %add0, ptr %arrayidx0, align 4
29   %rem1 = srem i64 %i.0, 7
30   %tobool = icmp eq i64 %rem1, 0
31   br i1 %tobool, label %for.end, label %if.end
33 if.end:                                           ; preds = %for.body, %if.then
34   br label %for.inc
36 for.inc:                                          ; preds = %if.end
37   %inc = add nuw nsw i64 %i.0, 1
38   br label %for.cond
40 for.end:                                          ; preds = %for.cond
41   ret void