[flang] Fix length handling in character kind implicit conversion (#74586)
[llvm-project.git] / polly / test / ScopInfo / NonAffine / modulo_domain.ll
blobf5ebec2b03460b8b4576875de0e2c8d6070a607e
1 ; RUN: opt %loadPolly -polly-print-scops -disable-output < %s | FileCheck %s
3 ; TODO: The new domain generation cannot handle modulo domain constraints,
4 ;       hence modulo handling has been disabled completely. Once this is
5 ;       resolved this test should work again. Until then we approximate the
6 ;       whole loop body.
8 ; CHECK:   Domain :=
9 ; CHECK:       { Stmt_for_body[i0] : 0 <= i0 <= 15 };
11 ;    void foo(float *A) {
12 ;      for (long i = 0; i < 16; i++) {
13 ;        A[i] += 1;
14 ;        if (i % 2)
15 ;          A[i] += 2;
16 ;      }
17 ;    }
19 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
21 define void @foo(ptr %A) {
22 entry:
23   br label %for.cond
25 for.cond:                                         ; preds = %for.inc, %entry
26   %i.0 = phi i64 [ 0, %entry ], [ %inc, %for.inc ]
27   %exitcond = icmp ne i64 %i.0, 16
28   br i1 %exitcond, label %for.body, label %for.end
30 for.body:                                         ; preds = %for.cond
31   %arrayidx0 = getelementptr inbounds float, ptr %A, i64 %i.0
32   %tmp0 = load float, ptr %arrayidx0, align 4
33   %add0 = fadd float %tmp0, 2.000000e+00
34   store float %add0, ptr %arrayidx0, align 4
35   %rem1 = srem i64 %i.0, 2
36   %tobool = icmp eq i64 %rem1, 0
37   br i1 %tobool, label %if.end, label %if.then
39 if.then:                                          ; preds = %for.body
40   %arrayidx = getelementptr inbounds float, ptr %A, i64 %i.0
41   %tmp = load float, ptr %arrayidx, align 4
42   %add = fadd float %tmp, 2.000000e+00
43   store float %add, ptr %arrayidx, align 4
44   br label %if.end
46 if.end:                                           ; preds = %for.body, %if.then
47   br label %for.inc
49 for.inc:                                          ; preds = %if.end
50   %inc = add nuw nsw i64 %i.0, 1
51   br label %for.cond
53 for.end:                                          ; preds = %for.cond
54   ret void