[mlir][PDLL] Allow (and ignore) `-D` tablegen macros. (#124166)
[llvm-project.git] / polly / test / ScopDetect / dot-scops.ll
blob63163b23617cff092bc8cb3e7d3875895cc1e54c
1 ; RUN: opt %loadNPMPolly '-passes=print<polly-function-scops>,polly-scop-printer' -disable-output < %s
3 ; Check that the ScopPrinter does not crash.
4 ; ScopPrinter needs the ScopDetection pass, which should depend on
5 ; ScalarEvolution transitively.
7 ; FIXME: -dot-scops always prints to the same hardcoded filename
8 ;        scops.<functionname>.dot. If there is another test with the same
9 ;        function name and printing a dot file there will be a race condition
10 ;        when running tests in parallel.
12 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
14 define void @func(i32 %n, i32 %m, ptr noalias nonnull %A) {
15 entry:
16   br label %outer.for
18 outer.for:
19   %j = phi i32 [0, %entry], [%j.inc, %outer.inc]
20   %j.cmp = icmp slt i32 %j, %n
21   br i1 %j.cmp, label %inner.for, label %outer.exit
23   inner.for:
24     %i = phi i32 [1, %outer.for], [%i.inc, %inner.inc]
25     %b = phi double [0.0, %outer.for], [%a, %inner.inc]
26     %i.cmp = icmp slt i32 %i, %m
27     br i1 %i.cmp, label %body1, label %inner.exit
29     body1:
30       %A_idx = getelementptr inbounds double, ptr %A, i32 %i
31       %a = load double, ptr %A_idx
32       store double %a, ptr %A_idx
33       br label %inner.inc
35   inner.inc:
36     %i.inc = add nuw nsw i32 %i, 1
37     br label %inner.for
39   inner.exit:
40     br label %outer.inc
42 outer.inc:
43   store double %b, ptr %A
44   %j.inc = add nuw nsw i32 %j, 1
45   br label %outer.for
47 outer.exit:
48   br label %return
50 return:
51   ret void