annotate test/CodeGen/ARM/misched-int-basic.mir @ 128:c347d3398279 default tip

fix
author mir3636
date Wed, 06 Dec 2017 14:37:17 +0900
parents 803732b1fca8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
121
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
1 # RUN: llc -o /dev/null %s -mtriple=arm-eabi -mcpu=swift -run-pass machine-scheduler -enable-misched -verify-misched \
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
2 # RUN: -debug-only=machine-scheduler 2>&1 | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK_SWIFT
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
3 # RUN: llc -o /dev/null %s -mtriple=arm-eabi -mcpu=cortex-a9 -run-pass machine-scheduler -enable-misched -verify-misched \
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
4 # RUN: -debug-only=machine-scheduler 2>&1 | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK_A9
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
5 # RUN: llc -o /dev/null %s -mtriple=arm-eabi -mcpu=cortex-r52 -run-pass machine-scheduler -enable-misched -verify-misched \
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
6 # RUN: -debug-only=machine-scheduler 2>&1 | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK_R52
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
7 # REQUIRES: asserts
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
8 --- |
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
9 ; ModuleID = 'foo.ll'
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
10 source_filename = "foo.ll"
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
11 target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
12 target triple = "arm---eabi"
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
13
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
14 define i64 @foo(i16 signext %a, i16 signext %b) {
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
15 entry:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
16 %d = mul nsw i16 %a, %a
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
17 %e = mul nsw i16 %b, %b
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
18 %f = add nuw nsw i16 %e, %d
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
19 %c = zext i16 %f to i32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
20 %mul8 = mul nsw i32 %c, %c
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
21 %mul9 = mul nsw i32 %mul8, %mul8
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
22 %add10 = add nuw nsw i32 %mul9, %mul8
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
23 %conv1130 = zext i32 %add10 to i64
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
24 %mul12 = mul nuw nsw i64 %conv1130, %conv1130
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
25 %mul13 = mul nsw i64 %mul12, %mul12
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
26 %add14 = add nuw nsw i64 %mul13, %mul12
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
27 ret i64 %add14
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
28 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
29
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
30 # CHECK: ********** MI Scheduling **********
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
31 # CHECK: SU(2): %vreg2<def> = SMULBB %vreg1, %vreg1, pred:14, pred:%noreg; GPR:%vreg2,%vreg1,%vreg1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
32 # CHECK_A9: Latency : 2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
33 # CHECK_SWIFT: Latency : 4
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
34 # CHECK_R52: Latency : 4
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
35 #
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
36 # CHECK: SU(3): %vreg3<def> = SMLABB %vreg0, %vreg0, %vreg2, pred:14, pred:%noreg; GPRnopc:%vreg3,%vreg0,%vreg0 GPR:%vreg2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
37 # CHECK_A9: Latency : 2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
38 # CHECK_SWIFT: Latency : 4
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
39 # CHECK_R52: Latency : 4
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
40 #
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
41 # CHECK: SU(4): %vreg4<def> = UXTH %vreg3, 0, pred:14, pred:%noreg; GPRnopc:%vreg4,%vreg3
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
42 # CHECK_A9: Latency : 1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
43 # CHECK_SWIFT: Latency : 1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
44 # CHECK_R52: Latency : 3
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
45 #
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
46 # CHECK: SU(5): %vreg5<def> = MUL %vreg4, %vreg4, pred:14, pred:%noreg, opt:%noreg; GPRnopc:%vreg5,%vreg4,%vreg4
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
47 # CHECK_A9: Latency : 2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
48 # CHECK_SWIFT: Latency : 4
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
49 # CHECK_R52: Latency : 4
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
50 #
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
51 # CHECK: SU(6): %vreg6<def> = MLA %vreg5, %vreg5, %vreg5, pred:14, pred:%noreg, opt:%noreg; GPRnopc:%vreg6,%vreg5,%vreg5,%vreg5
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
52 # CHECK_A9: Latency : 2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
53 # CHECK_SWIFT: Latency : 4
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
54 # CHECK_R52: Latency : 4
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
55 #
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
56 # CHECK: SU(7): %vreg7<def>, %vreg8<def> = UMULL %vreg6, %vreg6, pred:14, pred:%noreg, opt:%noreg; GPRnopc:%vreg7,%vreg8,%vreg6,%vreg6
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
57 # CHECK_A9: Latency : 3
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
58 # CHECK_SWIFT: Latency : 5
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
59 # CHECK_R52: Latency : 4
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
60 #
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
61 # CHECK: SU(11): %vreg13<def,tied4>, %vreg14<def,tied5> = UMLAL %vreg6, %vreg6, %vreg13<tied0>, %vreg14<tied1>, pred:14, pred:%noreg, opt:%noreg; GPR:%vreg13 GPRnopc:%vreg14,%vreg6,%vreg6
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
62 # CHECK_SWIFT: Latency : 7
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
63 # CHECK_A9: Latency : 3
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
64 # CHECK_R52: Latency : 4
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
65 # CHECK: ** ScheduleDAGMILive::schedule picking next node
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
66 ...
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
67 ---
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
68 name: foo
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
69 alignment: 2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
70 exposesReturnsTwice: false
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
71 legalized: false
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
72 regBankSelected: false
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
73 selected: false
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
74 tracksRegLiveness: true
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
75 registers:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
76 - { id: 0, class: gprnopc }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
77 - { id: 1, class: gpr }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
78 - { id: 2, class: gpr }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
79 - { id: 3, class: gprnopc }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
80 - { id: 4, class: gprnopc }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
81 - { id: 5, class: gprnopc }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
82 - { id: 6, class: gprnopc }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
83 - { id: 7, class: gprnopc }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
84 - { id: 8, class: gprnopc }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
85 - { id: 9, class: gpr }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
86 - { id: 10, class: gprnopc }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
87 - { id: 11, class: gprnopc }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
88 - { id: 12, class: gprnopc }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
89 - { id: 13, class: gpr }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
90 - { id: 14, class: gprnopc }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
91 liveins:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
92 - { reg: '%r0', virtual-reg: '%0' }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
93 - { reg: '%r1', virtual-reg: '%1' }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
94 frameInfo:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
95 isFrameAddressTaken: false
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
96 isReturnAddressTaken: false
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
97 hasStackMap: false
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
98 hasPatchPoint: false
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
99 stackSize: 0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
100 offsetAdjustment: 0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
101 maxAlignment: 0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
102 adjustsStack: false
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
103 hasCalls: false
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
104 maxCallFrameSize: 0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
105 hasOpaqueSPAdjustment: false
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
106 hasVAStart: false
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
107 hasMustTailInVarArgFunc: false
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
108 body: |
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
109 bb.0.entry:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
110 liveins: %r0, %r1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
111
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
112 %1 = COPY %r1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
113 %0 = COPY %r0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
114 %2 = SMULBB %1, %1, 14, _
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
115 %3 = SMLABB %0, %0, %2, 14, _
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
116 %4 = UXTH %3, 0, 14, _
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
117 %5 = MUL %4, %4, 14, _, _
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
118 %6 = MLA %5, %5, %5, 14, _, _
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
119 %7, %8 = UMULL %6, %6, 14, _, _
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
120 %13, %10 = UMULL %7, %7, 14, _, _
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
121 %11 = MLA %7, %8, %10, 14, _, _
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
122 %14 = MLA %7, %8, %11, 14, _, _
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
123 %13, %14 = UMLAL %6, %6, %13, %14, 14, _, _
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
124 %r0 = COPY %13
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
125 %r1 = COPY %14
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
126 BX_RET 14, _, implicit %r0, implicit %r1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
127
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
128 ...