<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/57255>57255</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Suboptimal instruction sequence when operands are reordered
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:RISC-V
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
hiraditya
</td>
</tr>
</table>
<pre>
```c
int foo(int t) {
return t - (1 - 5 * t);
}
int bar(int t) {
return t - 1 + 5 * t;
}
int baz(int t) {
return t + 5 * t - 1;
}
```
riscv64-clang -O3
```
.text
.attribute 4, 16
.attribute 5, "rv64i2p0_m2p0_a2p0_f2p0_d2p0_c2p0"
.file "example.c"
.globl foo # -- Begin function foo
.p2align 1
.type foo,@function
foo: # @foo
# %bb.0:
slliw a1, a0, 2
addw a1, a1, a0
addw a0, a0, a1
addiw a0, a0, -1
ret
.Lfunc_end0:
.size foo, .Lfunc_end0-foo
# -- End function
.globl bar # -- Begin function bar
.p2align 1
.type bar,@function
bar: # @bar
# %bb.0:
slliw a1, a0, 2
addw a1, a1, a0
addw a0, a0, a1
addiw a0, a0, -1
ret
.Lfunc_end1:
.size bar, .Lfunc_end1-bar
# -- End function
.globl baz # -- Begin function baz
.p2align 1
.type baz,@function
baz: # @baz
# %bb.0:
li a1, 6
mulw a0, a0, a1
addiw a0, a0, -1
ret
.Lfunc_end2:
.size baz, .Lfunc_end2-baz
# -- End function
.ident "clang version 16.0.0 (https://github.com/llvm/llvm-project.git 06c02d5dbb13f6d2a10eaa75c236f3c61cdf5b91)"
.section ".note.GNU-stack","",@progbits
.addrsig
```
In the last case mulw is generated.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzVVU2PmzoU_TWwsUC2CZAsWMxH31OlqpVatdvK2BfiVwdS28x08ut7DZNMJkzTTKUunoX8gU_Otc895Na9eqiigk6PjOhtRK9050nT9xFfhpmP-IpE5fW0R7BZ8IPtiCcJQQzDIcfJ1YiMskdgVN4-Tg6ctbCXcDIkuz5QnuXb_Z7viCtwv8C3v_0xvdVO3hWLRBrRtST5kL2IJY8t9fDDn7wS3ltdDx6m9SLiN4QV50F5AEWcWwyt-ZZ-3YROhK4JnQqdxA4xJ0yNNoEEN-CH2GwNpHIOak1fGxJyS861iGckScg1tLojzdBJr_tudMRzui0XRrfdfs1ORXnYhiONTrqJFnTPNMHC6-yKXNDCccLP9_HHNc_rOqXI8DyoM0bf4yhYkFLQ0J-oIJS6J0-QPfBlDH2iEWyGmUIdYZITDLpwepG-C7f_Cp2anzl1evckFDmCJjPNL9EKU_emU-S53Idgjx7Ab_ESohMPhC_4TzwwfvlzD4TXr_LAIf7_2wPslx6YhDryAEtmml-i1YUe2F1CNPPA7g89sHvZA7vXemD3ew8YPY1Tak_-djeD-VuZ5Wcyu3ueWZ7MlLxEgfOZ1QqwHIYyMFWuO7AuJI0VKU1pKNdr77cunJL_g0-r_XqoU9lvcGHM3X5Itrb_D6RPEUBoISlXuaprljWF4oJREKLMJc-KJpMFk6rJ6xUL5X9WcxxMtjlcgadd7yH99_3nxHkhv4WfoC9CzyeDYOy21t6dFkul8DLtmar9Fgv-GogRzhMpHEyZ1o600IEVHlQaQ8WKgq4W5aosYlVlapWtROy1N1B9Gup-6_VGGKI75-0wHd3B9wE6CeR-DR3pt0jVKUeEBbRAbxVYUPFgTfU6bXGpnRvA4SQveZ7H64rJhmU0X2RLzhkVNYdCLLOypNAIKsosNqIG46oov0a5apQPnYQRP779dJN8CQrmt7GuOOWcLtmKc15g6hd5tpSrspGqzlReCtQYNkKbNBwn7W0b22o8WT20DjeNdt49bQqHsncAY1TkF4Nf97ZaayuU9g8iHq9RjXf4CW2nnTM">