Skip to content

Commit f303f2d

Browse files
committed
Fix more
1 parent 283f4e4 commit f303f2d

File tree

3 files changed

+94
-45
lines changed

3 files changed

+94
-45
lines changed

llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9053,10 +9053,11 @@ bool ARMAsmParser::processInstruction(MCInst &Inst,
90539053
TmpInst.setOpcode(Inst.getOpcode() == ARM::t2LDR_PRE_imm ? ARM::t2LDR_PRE
90549054
: ARM::t2LDR_POST);
90559055
TmpInst.addOperand(Inst.getOperand(0)); // Rt
9056-
TmpInst.addOperand(Inst.getOperand(4)); // Rt_wb
9056+
TmpInst.addOperand(Inst.getOperand(1)); // Rn_wb
90579057
TmpInst.addOperand(Inst.getOperand(1)); // Rn
90589058
TmpInst.addOperand(Inst.getOperand(2)); // imm
90599059
TmpInst.addOperand(Inst.getOperand(3)); // CondCode
9060+
TmpInst.addOperand(Inst.getOperand(4));
90609061
Inst = TmpInst;
90619062
return true;
90629063
}
@@ -9093,10 +9094,11 @@ bool ARMAsmParser::processInstruction(MCInst &Inst,
90939094
? ARM::t2LDRB_PRE
90949095
: ARM::t2LDRB_POST);
90959096
TmpInst.addOperand(Inst.getOperand(0)); // Rt
9096-
TmpInst.addOperand(Inst.getOperand(4)); // Rt_wb
9097+
TmpInst.addOperand(Inst.getOperand(1)); // Rn_wb
90979098
TmpInst.addOperand(Inst.getOperand(1)); // Rn
90989099
TmpInst.addOperand(Inst.getOperand(2)); // imm
90999100
TmpInst.addOperand(Inst.getOperand(3)); // CondCode
9101+
TmpInst.addOperand(Inst.getOperand(4));
91009102
Inst = TmpInst;
91019103
return true;
91029104
}
@@ -9117,11 +9119,12 @@ bool ARMAsmParser::processInstruction(MCInst &Inst,
91179119
TmpInst.setOpcode(Inst.getOpcode() == ARM::t2STRB_PRE_imm
91189120
? ARM::t2STRB_PRE
91199121
: ARM::t2STRB_POST);
9120-
TmpInst.addOperand(Inst.getOperand(4)); // Rt_wb
9122+
TmpInst.addOperand(Inst.getOperand(1)); // Rn_wb
91219123
TmpInst.addOperand(Inst.getOperand(0)); // Rt
91229124
TmpInst.addOperand(Inst.getOperand(1)); // Rn
91239125
TmpInst.addOperand(Inst.getOperand(2)); // imm
91249126
TmpInst.addOperand(Inst.getOperand(3)); // CondCode
9127+
TmpInst.addOperand(Inst.getOperand(4));
91259128
Inst = TmpInst;
91269129
return true;
91279130
}
@@ -9143,10 +9146,11 @@ bool ARMAsmParser::processInstruction(MCInst &Inst,
91439146
? ARM::t2LDRH_PRE
91449147
: ARM::t2LDRH_POST);
91459148
TmpInst.addOperand(Inst.getOperand(0)); // Rt
9146-
TmpInst.addOperand(Inst.getOperand(4)); // Rt_wb
9149+
TmpInst.addOperand(Inst.getOperand(1)); // Rn_wb
91479150
TmpInst.addOperand(Inst.getOperand(1)); // Rn
91489151
TmpInst.addOperand(Inst.getOperand(2)); // imm
91499152
TmpInst.addOperand(Inst.getOperand(3)); // CondCode
9153+
TmpInst.addOperand(Inst.getOperand(4));
91509154
Inst = TmpInst;
91519155
return true;
91529156
}
@@ -9167,11 +9171,12 @@ bool ARMAsmParser::processInstruction(MCInst &Inst,
91679171
TmpInst.setOpcode(Inst.getOpcode() == ARM::t2STRH_PRE_imm
91689172
? ARM::t2STRH_PRE
91699173
: ARM::t2STRH_POST);
9170-
TmpInst.addOperand(Inst.getOperand(4)); // Rt_wb
9174+
TmpInst.addOperand(Inst.getOperand(1)); // Rn_wb
91719175
TmpInst.addOperand(Inst.getOperand(0)); // Rt
91729176
TmpInst.addOperand(Inst.getOperand(1)); // Rn
91739177
TmpInst.addOperand(Inst.getOperand(2)); // imm
91749178
TmpInst.addOperand(Inst.getOperand(3)); // CondCode
9179+
TmpInst.addOperand(Inst.getOperand(4));
91759180
Inst = TmpInst;
91769181
return true;
91779182
}
@@ -9193,10 +9198,11 @@ bool ARMAsmParser::processInstruction(MCInst &Inst,
91939198
? ARM::t2LDRSB_PRE
91949199
: ARM::t2LDRSB_POST);
91959200
TmpInst.addOperand(Inst.getOperand(0)); // Rt
9196-
TmpInst.addOperand(Inst.getOperand(4)); // Rt_wb
9201+
TmpInst.addOperand(Inst.getOperand(1)); // Rn_wb
91979202
TmpInst.addOperand(Inst.getOperand(1)); // Rn
91989203
TmpInst.addOperand(Inst.getOperand(2)); // imm
91999204
TmpInst.addOperand(Inst.getOperand(3)); // CondCode
9205+
TmpInst.addOperand(Inst.getOperand(4));
92009206
Inst = TmpInst;
92019207
return true;
92029208
}
@@ -9218,10 +9224,11 @@ bool ARMAsmParser::processInstruction(MCInst &Inst,
92189224
? ARM::t2LDRSH_PRE
92199225
: ARM::t2LDRSH_POST);
92209226
TmpInst.addOperand(Inst.getOperand(0)); // Rt
9221-
TmpInst.addOperand(Inst.getOperand(4)); // Rt_wb
9227+
TmpInst.addOperand(Inst.getOperand(1)); // Rn_wb
92229228
TmpInst.addOperand(Inst.getOperand(1)); // Rn
92239229
TmpInst.addOperand(Inst.getOperand(2)); // imm
92249230
TmpInst.addOperand(Inst.getOperand(3)); // CondCode
9231+
TmpInst.addOperand(Inst.getOperand(4));
92259232
Inst = TmpInst;
92269233
return true;
92279234
}
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2+
# RUN: llvm-mca -mtriple thumbv7m-none-eabi -mcpu=cortex-m4 < %s | FileCheck %s
3+
str.w r1, [r0], #16
4+
str.w r1, [r0, 16]!
5+
strb.w r1, [r0], #16
6+
strb.w r1, [r0, 16]!
7+
strh.w r1, [r0], #16
8+
strh.w r1, [r0, 16]!
9+
ldr.w r1, [r0], #16
10+
ldr.w r1, [r0, 16]!
11+
ldrb.w r1, [r0], #16
12+
ldrb.w r1, [r0, 16]!
13+
ldrh.w r1, [r0], #16
14+
ldrh.w r1, [r0, 16]!
15+
ldrsb.w r1, [r0], #16
16+
ldrsb.w r1, [r0, 16]!
17+
ldrsh.w r1, [r0], #16
18+
ldrsh.w r1, [r0, 16]!
19+
20+
# CHECK: Iterations: 100
21+
# CHECK-NEXT: Instructions: 1600
22+
# CHECK-NEXT: Total Cycles: 2601
23+
# CHECK-NEXT: Total uOps: 1600
24+
25+
# CHECK: Dispatch Width: 1
26+
# CHECK-NEXT: uOps Per Cycle: 0.62
27+
# CHECK-NEXT: IPC: 0.62
28+
# CHECK-NEXT: Block RThroughput: 16.0
29+
30+
# CHECK: Instruction Info:
31+
# CHECK-NEXT: [1]: #uOps
32+
# CHECK-NEXT: [2]: Latency
33+
# CHECK-NEXT: [3]: RThroughput
34+
# CHECK-NEXT: [4]: MayLoad
35+
# CHECK-NEXT: [5]: MayStore
36+
# CHECK-NEXT: [6]: HasSideEffects (U)
37+
38+
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
39+
# CHECK-NEXT: 1 1 1.00 * str r1, [r0], #16
40+
# CHECK-NEXT: 1 1 1.00 * str r1, [r0, #16]!
41+
# CHECK-NEXT: 1 1 1.00 * strb r1, [r0], #16
42+
# CHECK-NEXT: 1 1 1.00 * strb r1, [r0, #16]!
43+
# CHECK-NEXT: 1 1 1.00 * strh r1, [r0], #16
44+
# CHECK-NEXT: 1 1 1.00 * strh r1, [r0, #16]!
45+
# CHECK-NEXT: 1 2 1.00 * ldr r1, [r0], #16
46+
# CHECK-NEXT: 1 2 1.00 * ldr r1, [r0, #16]!
47+
# CHECK-NEXT: 1 2 1.00 * ldrb r1, [r0], #16
48+
# CHECK-NEXT: 1 2 1.00 * ldrb r1, [r0, #16]!
49+
# CHECK-NEXT: 1 2 1.00 * ldrh r1, [r0], #16
50+
# CHECK-NEXT: 1 2 1.00 * ldrh r1, [r0, #16]!
51+
# CHECK-NEXT: 1 2 1.00 * ldrsb r1, [r0], #16
52+
# CHECK-NEXT: 1 2 1.00 * ldrsb r1, [r0, #16]!
53+
# CHECK-NEXT: 1 2 1.00 * ldrsh r1, [r0], #16
54+
# CHECK-NEXT: 1 2 1.00 * ldrsh r1, [r0, #16]!
55+
56+
# CHECK: Resources:
57+
# CHECK-NEXT: [0] - M4Unit
58+
59+
# CHECK: Resource pressure per iteration:
60+
# CHECK-NEXT: [0]
61+
# CHECK-NEXT: 16.00
62+
63+
# CHECK: Resource pressure by instruction:
64+
# CHECK-NEXT: [0] Instructions:
65+
# CHECK-NEXT: 1.00 str r1, [r0], #16
66+
# CHECK-NEXT: 1.00 str r1, [r0, #16]!
67+
# CHECK-NEXT: 1.00 strb r1, [r0], #16
68+
# CHECK-NEXT: 1.00 strb r1, [r0, #16]!
69+
# CHECK-NEXT: 1.00 strh r1, [r0], #16
70+
# CHECK-NEXT: 1.00 strh r1, [r0, #16]!
71+
# CHECK-NEXT: 1.00 ldr r1, [r0], #16
72+
# CHECK-NEXT: 1.00 ldr r1, [r0, #16]!
73+
# CHECK-NEXT: 1.00 ldrb r1, [r0], #16
74+
# CHECK-NEXT: 1.00 ldrb r1, [r0, #16]!
75+
# CHECK-NEXT: 1.00 ldrh r1, [r0], #16
76+
# CHECK-NEXT: 1.00 ldrh r1, [r0, #16]!
77+
# CHECK-NEXT: 1.00 ldrsb r1, [r0], #16
78+
# CHECK-NEXT: 1.00 ldrsb r1, [r0, #16]!
79+
# CHECK-NEXT: 1.00 ldrsh r1, [r0], #16
80+
# CHECK-NEXT: 1.00 ldrsh r1, [r0, #16]!

llvm/test/tools/llvm-mca/ARM/m4-strw.s

Lines changed: 0 additions & 38 deletions
This file was deleted.

0 commit comments

Comments
 (0)