[SPIR-V] Fix block sorting with irreducible CFG (#116996)
[llvm-project.git] / polly / test / Simplify / scalability1.ll
blobc6e36f9dcdefbcb6eb644167cbec81427bcd197f
1 ; RUN: opt %loadNPMPolly -polly-ignore-inbounds '-passes=print<polly-simplify>' -disable-output < %s | FileCheck %s -match-full-lines
3 ; Test scalability.
5 define void @func(i32 %n, ptr noalias nonnull %A,
6 i32 %p0, i32 %p1, i32 %p2, i32 %p3, i32 %p4, i32 %p5, i32 %p6, i32 %p7, i32 %p8, i32 %p9,
7 i32 %p10, i32 %p11, i32 %p12, i32 %p13, i32 %p14, i32 %p15, i32 %p16, i32 %p17, i32 %p18, i32 %p19,
8 i32 %p20, i32 %p21, i32 %p22, i32 %p23, i32 %p24, i32 %p25, i32 %p26, i32 %p27, i32 %p28, i32 %p29,
9 i32 %p30, i32 %p31, i32 %p32) {
10 entry:
11   br label %for
13 for:
14   %j = phi i32 [0, %entry], [%j.inc, %inc]
15   %j.cmp = icmp slt i32 %j, %n
16   br i1 %j.cmp, label %body, label %exit
19     body:
20       %A0 = getelementptr inbounds double, ptr %A, i32 %p0
21       %A1 = getelementptr inbounds double, ptr %A, i32 %p1
22       %A2 = getelementptr inbounds double, ptr %A, i32 %p2
23       %A3 = getelementptr inbounds double, ptr %A, i32 %p3
24       %A4 = getelementptr inbounds double, ptr %A, i32 %p4
25       %A5 = getelementptr inbounds double, ptr %A, i32 %p5
26       %A6 = getelementptr inbounds double, ptr %A, i32 %p6
27       %A7 = getelementptr inbounds double, ptr %A, i32 %p7
28       %A8 = getelementptr inbounds double, ptr %A, i32 %p8
29       %A9 = getelementptr inbounds double, ptr %A, i32 %p9
30       %A10 = getelementptr inbounds double, ptr %A, i32 %p10
31       %A11 = getelementptr inbounds double, ptr %A, i32 %p11
32       %A12 = getelementptr inbounds double, ptr %A, i32 %p12
33       %A13 = getelementptr inbounds double, ptr %A, i32 %p13
34       %A14 = getelementptr inbounds double, ptr %A, i32 %p14
35       %A15 = getelementptr inbounds double, ptr %A, i32 %p15
36       %A16 = getelementptr inbounds double, ptr %A, i32 %p16
37       %A17 = getelementptr inbounds double, ptr %A, i32 %p17
38       %A18 = getelementptr inbounds double, ptr %A, i32 %p18
39       %A19 = getelementptr inbounds double, ptr %A, i32 %p19
40       %A20 = getelementptr inbounds double, ptr %A, i32 %p20
41       %A21 = getelementptr inbounds double, ptr %A, i32 %p21
42       %A22 = getelementptr inbounds double, ptr %A, i32 %p22
43       %A23 = getelementptr inbounds double, ptr %A, i32 %p23
44       %A24 = getelementptr inbounds double, ptr %A, i32 %p24
45       %A25 = getelementptr inbounds double, ptr %A, i32 %p25
46       %A26 = getelementptr inbounds double, ptr %A, i32 %p26
47       %A27 = getelementptr inbounds double, ptr %A, i32 %p27
48       %A28 = getelementptr inbounds double, ptr %A, i32 %p28
49       %A29 = getelementptr inbounds double, ptr %A, i32 %p29
50       %A30 = getelementptr inbounds double, ptr %A, i32 %p30
51       %A31 = getelementptr inbounds double, ptr %A, i32 %p31
52       %A32 = getelementptr inbounds double, ptr %A, i32 %p32
54       %val = load double, ptr %A0
56       store double %val, ptr %A1
57       store double %val, ptr %A2
58       store double %val, ptr %A3
59       store double %val, ptr %A4
60       store double %val, ptr %A5
61       store double %val, ptr %A6
62       store double %val, ptr %A7
63       store double %val, ptr %A8
64       store double %val, ptr %A9
65       store double %val, ptr %A10
66       store double %val, ptr %A11
67       store double %val, ptr %A12
68       store double %val, ptr %A13
69       store double %val, ptr %A14
70       store double %val, ptr %A15
71       store double %val, ptr %A16
72       store double %val, ptr %A17
73       store double %val, ptr %A18
74       store double %val, ptr %A19
75       store double %val, ptr %A20
76       store double %val, ptr %A21
77       store double %val, ptr %A22
78       store double %val, ptr %A23
79       store double %val, ptr %A24
80       store double %val, ptr %A25
81       store double %val, ptr %A26
82       store double %val, ptr %A27
83       store double %val, ptr %A28
84       store double %val, ptr %A29
85       store double %val, ptr %A30
86       store double %val, ptr %A31
87       store double %val, ptr %A32
89       br label %inc
92 inc:
93   %j.inc = add nuw nsw i32 %j, 1
94   br label %for
96 exit:
97   br label %return
99 return:
100   ret void
104 ; CHECK: SCoP could not be simplified