<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/100529>100529</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
RISC-V: getSetCC compare same value is omit
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
wzssyqa
</td>
</tr>
</table>
<pre>
I find this problem when I work on fminimumnum intrinsic.
See https://github.com/llvm/llvm-project/pull/96649
```
define dso_local float @f(float noundef %a, float noundef %b) local_unnamed_addr #0 {
entry:
%0 = tail call float @llvm.minimumnum.f32(float %a, float %b)
ret float %0
}
```
```
./bin/clang --target=riscv64-linux-gnu -S yy.ll -O2 -o -
li a0, 1
bnez a0, .LBB0_2
```
I tested with x86_64 and mips. Both of them work well.
The problem is that we cannot believe the `CMP A,A` always true. The value of `A` may be float NaN.
For NaN vs NaN, it will always false.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUU02PozgQ_TXmUgIZ85Fw4JAPIUXa7V1tVnuNDBTgHWNnbBM6_etHJkmne6Yvg5BL5ZJfvVd6xa0VvUIsSbYl2T7gkxu0Kec3a6_feVDr9loeoBOqBTcIC2eja4kjzAMqOMCszTfQCrpRKDFOo5pGEMoZoaxoIkL3hG5u5xERBufOliQbwirCql64YaqjRo-EVVJeHiE8G_0_No6w6jxJSVhV5HlafAQjOb3_S9piJxRCa_VJ6oZL6KTmDkhKO8LWt0TpSbXYAWEZJ2wHv9zWhBWwPD9NSvER2xNvWwOEJRTIantrhcqZq5ewZOAfUiDJHhwXEhouPzT3YqLnYKIuYe90PtO4t3-AGnTPwl0jWe2_1P5TGhFW1UIRVjWSqx7C0HHToyPJ3gjbXPI0lEJNr2GvJgiPcL1GUkL4F4NQQ_ggcPukuEVOPdP4XqwVvj1voz-2W3piX1NbzgM4tA5bmIUb4HWdn_IUuGphFGcbwVa7AXQHbvCu8naaUcpP1rmd_w747j5hwQ3cwYzQcKW0gxqlwAt6GCA53f35N2wI23lKwOXMrxacmTACD3PhckLflOQLaRj5FWq8z_yFv9zbV9r4DC7WBy9XOJiFlA_IjkuLEQRtmbRFUvAAy3jF4nWRJQkNhpLjOl3RtMjqOO26FDOaJXEeN_k6W9eILBAloyylK5bRdZwlNMJV03ZZtiqSjtKa1iSlOHIho8VM2vSBsHbCMqY0Y0UgeY3SLsvLmMIZliphzO-yKZd1qqfeejcK6-wTxgknsfzncNyF_5FkAz26I7rdDho9nrlBsHx8TEpY0KNwwWRk-ds7vDCyhFV3ypeS_QgAAP__pQ9W2g">