brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.1 KiB · 3252d3c Raw
96 lines · plain
1; RUN: opt < %s -passes=loop-interchange -pass-remarks-missed='loop-interchange' \2; RUN:          -disable-output 2>&1 | FileCheck %s3 4; RUN: opt < %s -passes=loop-interchange -pass-remarks-missed='loop-interchange' \5; RUN:          -loop-interchange-max-loop-nest-depth=12 -disable-output 2>&1 | \6; RUN:          FileCheck --allow-empty -check-prefix=CHECK-MAX %s7 8target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"9 10; CHECK: Unsupported depth of loop nest, the supported range is [2, 10].11; CHECK-MAX-NOT: Unsupported depth of loop nest, the supported range is [2, 10].12define void @big_loop_nest() {13entry:14  br label %for1.header15 16for1.header:17  %j = phi i64 [ 0, %entry ], [ %j.next, %for1.inc ]18  br label %for2.header19for2.header:20  %k = phi i64 [ 0, %for1.header ], [ %k.next, %for2.inc ]21  br label %for3.header22for3.header:23  %l = phi i64 [ 0, %for2.header ], [ %l.next, %for3.inc ]24  br label %for4.header25for4.header:26  %m = phi i64 [ 0, %for3.header ], [ %m.next, %for4.inc ]27  br label %for5.header28for5.header:29  %n = phi i64 [ 0, %for4.header ], [ %n.next, %for5.inc ]30  br label %for6.header31for6.header:32  %o = phi i64 [ 0, %for5.header ], [ %o.next, %for6.inc ]33  br label %for7.header34for7.header:35  %p = phi i64 [ 0, %for6.header ], [ %p.next, %for7.inc ]36  br label %for8.header37for8.header:38  %q = phi i64 [ 0, %for7.header ], [ %q.next, %for8.inc ]39  br label %for9.header40for9.header:41  %r = phi i64 [ 0, %for8.header ], [ %r.next, %for9.inc ]42  br label %for10.header43for10.header:44  %s = phi i64 [ 0, %for9.header ], [ %s.next, %for10.inc ]45  br label %for1146for11:47  %t = phi i64 [ %t.next, %for11 ], [ 0, %for10.header ]48  %t.next = add nuw nsw i64 %t, 149  %exitcond = icmp eq i64 %t.next, 9950  br i1 %exitcond, label %for1.inc, label %for1151 52for1.inc:53  %j.next = add nuw nsw i64 %j, 154  %exitcond26 = icmp eq i64 %j.next, 9955  br i1 %exitcond26, label %for2.inc, label %for1.header56for2.inc:57  %k.next = add nuw nsw i64 %k, 158  %exitcond27 = icmp eq i64 %j.next, 9959  br i1 %exitcond27, label %for3.inc, label %for2.header60for3.inc:61  %l.next = add nuw nsw i64 %l, 162  %exitcond28 = icmp eq i64 %l.next, 9963  br i1 %exitcond28, label %for4.inc, label %for3.header64for4.inc:65  %m.next = add nuw nsw i64 %m, 166  %exitcond29 = icmp eq i64 %m.next, 9967  br i1 %exitcond29, label %for5.inc, label %for4.header68for5.inc:69  %n.next = add nuw nsw i64 %n, 170  %exitcond30 = icmp eq i64 %n.next, 9971  br i1 %exitcond30, label %for6.inc, label %for5.header72for6.inc:73  %o.next = add nuw nsw i64 %o, 174  %exitcond31 = icmp eq i64 %o.next, 9975  br i1 %exitcond31, label %for7.inc, label %for6.header76for7.inc:77  %p.next = add nuw nsw i64 %p, 178  %exitcond32 = icmp eq i64 %p.next, 9979  br i1 %exitcond32, label %for8.inc, label %for7.header80for8.inc:81  %q.next = add nuw nsw i64 %q, 182  %exitcond33 = icmp eq i64 %q.next, 9983  br i1 %exitcond33, label %for9.inc, label %for8.header84for9.inc:85  %r.next = add nuw nsw i64 %r, 186  %exitcond34 = icmp eq i64 %q.next, 9987  br i1 %exitcond34, label %for10.inc, label %for9.header88for10.inc:89  %s.next = add nuw nsw i64 %s, 190  %exitcond35 = icmp eq i64 %s.next, 9991  br i1 %exitcond35, label %for.end, label %for10.header92 93for.end:94  ret void95}96