Mercurial > hg > CbC > CbC_llvm
comparison test/CodeGen/AArch64/arm64-misched-basic-A57.ll @ 95:afa8332a0e37 LLVM3.8
LLVM 3.8
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 13 Oct 2015 17:48:58 +0900 |
parents | 54457678186b |
children | 803732b1fca8 |
comparison
equal
deleted
inserted
replaced
84:f3e34b893a5f | 95:afa8332a0e37 |
---|---|
7 ; loads consecutively for this case and will cause stalls. | 7 ; loads consecutively for this case and will cause stalls. |
8 ; | 8 ; |
9 ; RUN: llc < %s -mtriple=arm64-linux-gnu -mcpu=cortex-a57 -enable-misched -verify-misched -debug-only=misched -o - 2>&1 > /dev/null | FileCheck %s | 9 ; RUN: llc < %s -mtriple=arm64-linux-gnu -mcpu=cortex-a57 -enable-misched -verify-misched -debug-only=misched -o - 2>&1 > /dev/null | FileCheck %s |
10 ; CHECK: ********** MI Scheduling ********** | 10 ; CHECK: ********** MI Scheduling ********** |
11 ; CHECK: main:BB#2 | 11 ; CHECK: main:BB#2 |
12 ; CHECK LDR | 12 ; CHECK: LDR |
13 ; CHECK Latency : 4 | 13 ; CHECK: Latency : 4 |
14 ; CHECK: *** Final schedule for BB#2 *** | 14 ; CHECK: *** Final schedule for BB#2 *** |
15 ; CHECK: LDR | 15 ; CHECK: LDR |
16 ; CHECK: LDR | 16 ; CHECK: LDR |
17 ; CHECK-NOT: LDR | 17 ; CHECK-NOT: LDR |
18 ; CHECK: {{.*}} | 18 ; CHECK: {{.*}} |
39 store i32 0, i32* %yy, align 4 | 39 store i32 0, i32* %yy, align 4 |
40 store i32 0, i32* %i, align 4 | 40 store i32 0, i32* %i, align 4 |
41 br label %for.cond | 41 br label %for.cond |
42 | 42 |
43 for.cond: ; preds = %for.inc, %entry | 43 for.cond: ; preds = %for.inc, %entry |
44 %2 = load i32* %i, align 4 | 44 %2 = load i32, i32* %i, align 4 |
45 %cmp = icmp slt i32 %2, 8 | 45 %cmp = icmp slt i32 %2, 8 |
46 br i1 %cmp, label %for.body, label %for.end | 46 br i1 %cmp, label %for.body, label %for.end |
47 | 47 |
48 for.body: ; preds = %for.cond | 48 for.body: ; preds = %for.cond |
49 %3 = load i32* %yy, align 4 | 49 %3 = load i32, i32* %yy, align 4 |
50 %4 = load i32* %i, align 4 | 50 %4 = load i32, i32* %i, align 4 |
51 %idxprom = sext i32 %4 to i64 | 51 %idxprom = sext i32 %4 to i64 |
52 %arrayidx = getelementptr inbounds [8 x i32]* %x, i32 0, i64 %idxprom | 52 %arrayidx = getelementptr inbounds [8 x i32], [8 x i32]* %x, i32 0, i64 %idxprom |
53 %5 = load i32* %arrayidx, align 4 | 53 %5 = load i32, i32* %arrayidx, align 4 |
54 %add = add nsw i32 %5, 1 | 54 %add = add nsw i32 %5, 1 |
55 store i32 %add, i32* %xx, align 4 | 55 store i32 %add, i32* %xx, align 4 |
56 %6 = load i32* %xx, align 4 | 56 %6 = load i32, i32* %xx, align 4 |
57 %add1 = add nsw i32 %6, 12 | 57 %add1 = add nsw i32 %6, 12 |
58 store i32 %add1, i32* %xx, align 4 | 58 store i32 %add1, i32* %xx, align 4 |
59 %7 = load i32* %xx, align 4 | 59 %7 = load i32, i32* %xx, align 4 |
60 %add2 = add nsw i32 %7, 23 | 60 %add2 = add nsw i32 %7, 23 |
61 store i32 %add2, i32* %xx, align 4 | 61 store i32 %add2, i32* %xx, align 4 |
62 %8 = load i32* %xx, align 4 | 62 %8 = load i32, i32* %xx, align 4 |
63 %add3 = add nsw i32 %8, 34 | 63 %add3 = add nsw i32 %8, 34 |
64 store i32 %add3, i32* %xx, align 4 | 64 store i32 %add3, i32* %xx, align 4 |
65 %9 = load i32* %i, align 4 | 65 %9 = load i32, i32* %i, align 4 |
66 %idxprom4 = sext i32 %9 to i64 | 66 %idxprom4 = sext i32 %9 to i64 |
67 %arrayidx5 = getelementptr inbounds [8 x i32]* %y, i32 0, i64 %idxprom4 | 67 %arrayidx5 = getelementptr inbounds [8 x i32], [8 x i32]* %y, i32 0, i64 %idxprom4 |
68 %10 = load i32* %arrayidx5, align 4 | 68 %10 = load i32, i32* %arrayidx5, align 4 |
69 | 69 |
70 %add4 = add nsw i32 %9, %add | 70 %add4 = add nsw i32 %9, %add |
71 %add5 = add nsw i32 %10, %add1 | 71 %add5 = add nsw i32 %10, %add1 |
72 %add6 = add nsw i32 %add4, %add5 | 72 %add6 = add nsw i32 %add4, %add5 |
73 | 73 |
90 store i32 %div, i32* %yy, align 4 | 90 store i32 %div, i32* %yy, align 4 |
91 | 91 |
92 br label %for.inc | 92 br label %for.inc |
93 | 93 |
94 for.inc: ; preds = %for.body | 94 for.inc: ; preds = %for.body |
95 %11 = load i32* %i, align 4 | 95 %11 = load i32, i32* %i, align 4 |
96 %inc = add nsw i32 %11, 1 | 96 %inc = add nsw i32 %11, 1 |
97 store i32 %inc, i32* %i, align 4 | 97 store i32 %inc, i32* %i, align 4 |
98 br label %for.cond | 98 br label %for.cond |
99 | 99 |
100 for.end: ; preds = %for.cond | 100 for.end: ; preds = %for.cond |
101 %12 = load i32* %xx, align 4 | 101 %12 = load i32, i32* %xx, align 4 |
102 %13 = load i32* %yy, align 4 | 102 %13 = load i32, i32* %yy, align 4 |
103 %add67 = add nsw i32 %12, %13 | 103 %add67 = add nsw i32 %12, %13 |
104 ret i32 %add67 | 104 ret i32 %add67 |
105 } | 105 } |
106 | 106 |
107 | 107 |