Mercurial > hg > CbC > CbC_llvm
comparison llvm/test/Transforms/LoopUnroll/disable-loop-unrolling_forced.ll @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children | 1f2b6ac9f198 |
comparison
equal
deleted
inserted
replaced
147:c2174574ed3a | 150:1d019706d866 |
---|---|
1 ; RUN: opt -disable-loop-unrolling -O1 -S < %s | FileCheck %s | |
2 ; | |
3 ; Check loop unrolling metadata is honored despite automatic unrolling | |
4 ; being disabled in the pass builder. | |
5 ; | |
6 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" | |
7 | |
8 ; CHECK-LABEL: @forced( | |
9 ; CHECK: load | |
10 ; CHECK: load | |
11 define void @forced(i32* nocapture %a) { | |
12 entry: | |
13 br label %for.body | |
14 | |
15 for.body: | |
16 %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ] | |
17 %arrayidx = getelementptr inbounds i32, i32* %a, i64 %indvars.iv | |
18 %0 = load i32, i32* %arrayidx, align 4 | |
19 %inc = add nsw i32 %0, 1 | |
20 store i32 %inc, i32* %arrayidx, align 4 | |
21 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 | |
22 %exitcond = icmp eq i64 %indvars.iv.next, 64 | |
23 br i1 %exitcond, label %for.end, label %for.body, !llvm.loop !0 | |
24 | |
25 for.end: | |
26 ret void | |
27 } | |
28 | |
29 !0 = distinct !{!0, !{!"llvm.loop.unroll.enable"}, | |
30 !{!"llvm.loop.unroll.count", i32 2}} |