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

    <tr>
        <th>Summary</th>
        <td>
            [X86][GlobalIsel] In X87, no-sse2, returning floating point halts for SDAG, GISEL behavior differs.
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          mahesh-attarde
      </td>
    </tr>
</table>

<pre>
    https://godbolt.org/z/9Ejz61Goh

For code with  mattr=+87x,-sse2,-sse1
```
define float @test_float_abs(ptr %argptr) {
     %arg = load  float, float* %argptr
     %abs = tail call float @llvm.fabs.f32(float %arg)
     ret float %abs
 }
```
SDAG
```
error: <unknown>:0:0: in function test_float_abs float (ptr): SSE register return with SSE disabled

Compiler returned: 1
```
GISEL
```
test_float_abs: # @test_float_abs
        mov     eax, 2147483647
 and     eax, dword ptr [rdi]
        movd    xmm0, eax
 ret
```
GISEL lowerreturn consults RETCC and adds xmm0 (Calling Convention) where as DAG does not do that.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJxsVE2P2zgM_TX0hZhAlj9z8MFxPjDAnnb20FshR3SsriwFkpx0--sXcjydaTBBAjkkH0W-R1p4ry6GqIFiB8U-EXMYrWsmMZIfX0QIwklKeiv_a8YQrh6yFvgR-PFiZW912Fh3AX78Bfy4Pfz4VaYnOwJrgbVH6_BsJeFdhRFxEiE4yPbAd3X1E3j34j3x9UwjpGTrl7WSBmUIB21FQMhZIB--L_--i94Dr6_BIfBCuMs1OOBbhGoHrMX4edgRsj1qKyQ-0gDv3h_aT9BPmN4vmCCUxrPQ-uN6rW_TZhC93wwZB16vjiUJ8O17EkcBP1y9j3ao9k-9ve3b05OJnLMOshYh62bzr7F3A9kBspatP1QGh9mcg7IG_yTj9431g4kY_fZ2QEcX5QO5WNXszEOF6JDKi16TfKjU2emq9O8wkhH_LMfp9e3w15PtSZJYPM--0GrlBhEne1tOElF-5Gle5XVW5lWMEUZ-dsq7dRIXlYudkwqK_Z-Zluif08RidASxNrbwVeGo7Z3cSsPZGj_r4PHvwz9dt1wrpPRLqkhiJ7RW5oKdNTcyke84XfeRHKHwuG9PKC15NDagtBhGETaJbDK5zbYioSatijQrUl6Wydj0AxdVIUicmWR12Ys8ozIv0ppS2Vd0TlTDGS9YxVJW8iovNzmxrMplJSUVNZcF5IwmofRmGUHrLonyfqYmzcu8KhMtetJ-2V3ODd1x8QLncZVdE0Ev_XzxcYaVD_4jTVBBL0v_rS4jucXupG0v9KsnDcUeXw1-q6tIrrHvm7rOSKRn0Tc-XK0yAUcRKR2sw2W6eYcP5nsaxU1Zh1INAzm_SWann18kKoxzvznbCfgx1rceL1dnf9A5AD8uXXngx7XtW8P_DwAA__8kAW2M">