<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/59855>59855</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [AArch64, CLANG]: unexpected generated instructions when passing two symmetric inputs to vceqq_f32,f64 
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          seiko2plus
      </td>
    </tr>
</table>

<pre>
    Using two symmetric inputs with `vceqq_f32` and `vceqq_f64` are commonly used to test NaNs,
we expect clang uses the instruction `fcmeq`(non-signaling) to avoid raising FP invalid exception, but instead:
```ASM
npyv_notnan_f32(__Float32x4_t):          // @notnan_f32(__Float32x4_t)
        fcmge   v1.4s, v0.4s, #0.0
 fcmlt   v0.4s, v0.4s, #0.0
        orr     v0.16b, v0.16b, v1.16b
 ret
```
which is equivalent to `a >= 0 | a < 0` kinda weird wasted watts, `fcmge`, and `fcmlt` raise invalid exceptions for qNaN of course.

references:
- https://godbolt.org/z/r65hKecds
- https://github.com/numpy/numpy/issues/22933#issue-1520567697


</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8VE2vqzYQ_TVmM0pkzEdgwSLNLV20jSpVXUfGDOA-YxPbkJv--spO7ntRq3tRlBmGmaMzPp7hzslRIzak-IkUbwlf_WRs41B-M2xRq0s609-bv5zUI_ibAXefZ_RWCpB6Wb2Dm_QTkJJuAq_Xy5AxUlLgun-JlXmMWQRh5tlodYfVYQ_egEfn4czPjrAToW-EHm8I-L6g8CAU12PIdOAnBKmdt6vw0uiAPYgZr6SkhFXa6F1ogyupR8LqAMw3I3uwXEbm7R8g9caV7AHfBS4BhLATdKuPuMh7kh0fBAJm_B3__P0R0ct9u2jjNdexQVZdLq0y3GfsPb94wmqSHeH7Q1hLWAskp1_XROyPokHMIwLAlu7zcBiw0adDWEb39Jk9iFn5kEa_THs-xtpoN7pPy-6Z_uGl0XvkW_T_af4pxiTFBNIBXle5cYXah8MlJeVAsp9J9gYUyOEE4fUEoRC-Sd1zuKG0Pdy48xiM9w-SUbcRo26nj2sSmwqlQS78v1IOBmPheuZnMAMIs1qH-yff-G9xQItaoPuu4g4m75f4HuUYTd8Z5ffGjoS1_xDW2rKYfkXRu08KpJ_Wbi_MTFir13m5v1jp3IqOsJaxOssIy2JglxaMFuWhrA-v7JK-yfo6q3mCTVoeWF3VaXVIpmaoSypEhyUOrB-KfGCsryoUFa_TrCsxkQ2jLKMpLekhzehhf6iqvKJ13udUZFzkJKc4c6n2Sm1z6C2JRJqirooiUbxD5eJoM6bxBvEjYSxMum1Cza5bR0dyqqTz7geKl17FnXA8WjGVeRDr9Nvx_Asp3sJdX_VjRrGHETVaHryXAXVwm1DDEtbLZ4vDG_ixM9hpKHNIVquaL2QI_J5mt1jzNwr_Kkbs-t8AAAD__3lgeNA">