<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/90325>90325</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
MIPS bit operation can be improved
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
wzssyqa
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
wzssyqa
</td>
</tr>
</table>
<pre>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113179
```
struct xx {
int a:4;
int b:24;
int c:3;
int d:1;
};
void xx (struct xx *a, long long b) {
a->d = b;
}
```
with `-mabi=64 -march=mips64r2`,
```
lw $2,0($4)
sll $3,$5
ins $2,$3,31,1
jr $31
sw $2,0($4)
```
is expected.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyEk91unDAQhZ9muLEWmbHBywUXZClSLypV6gNU_gs4MrDFJpvk6StYlE23UYvQAOeMDx8WI0Nw3WhtBfkDIF7eQnj9JQER8iaRS-ynudrFRE3mtepjPAdgNWAL2HZap924pNPcAbZq6d6c9xKwDf10-amWLtWdA9Y6A6zJMpaJEmgDtN5rQfdzewxxXnQkLy8ExMNVIvvhxkgksJoD-8RRwGr83NLAanZzVskAq7N3CURzu9_q8-TMBoHHD0RYS8AT8dPYXYsCLP8GlQdgXwwB1qxUH97x2Qdf68XFnkBBD4NUDlhTcHIY5Kx7YM3gzqHgM65L8PSPvSP-cgUA5Ah4ooBHQM4Byz8Bg_fvjWzNRJ7fb1v4mLT3sQzwlO2dT_MtI7vL_w_HHbcLxL6crY7WpImpmClZKRNbZSLjSAuKedJXWmTCPBquy4IVNi-MoEeZKS5EKbRhLHEVUuSUo6BHpJinTBVCUyEfucmPPH8ETu0gnU-9fx7W3zVxISy2KinDPPFSWR_2GRjthWzmPgVzta45qKULwKl3IYZbSnTR2-rb1-8_iHKRTGc7y-imkWg5EmWJG87z9GxNssz-fnZc7BeV6mkAbNfA_XI4z9OT1RGw3TACYLth_g4AAP__B135sw">