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