<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [PowerPC] Software 128-bit floating point support is unimplemented"
   href="https://bugs.llvm.org/show_bug.cgi?id=35738">35738</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>[PowerPC] Software 128-bit floating point support is unimplemented
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>compiler-rt
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>5.0
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>other
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>compiler-rt
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>vit9696@avp.su
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Created <span class=""><a href="attachment.cgi?id=19601" name="attach_19601" title="ppc32 long double format from gcc repo">attachment 19601</a> <a href="attachment.cgi?id=19601&action=edit" title="ppc32 long double format from gcc repo">[details]</a></span>
ppc32 long double format from gcc repo

Starting with the merged <a href="https://reviews.llvm.org/D15811">https://reviews.llvm.org/D15811</a> LLVM gained support
for software long double support on 32-bit PowerPC targets.

However, for the time being there is still no compiler-rt support for the
routines llvm emits. As a result, one cannot use software floating point
support until the following builtins are implemented.

This function set implements long double comparison similarly to float/double
analogues:
int __gcc_qeq (double, double, double, double); // __eqdf2
int __gcc_qne (double, double, double, double); // __nedf2
int __gcc_qge (double, double, double, double); // __gedf2
int __gcc_qle (double, double, double, double); // __ledf2

This function set allows to convert between long double and other types:
long double __gcc_stoq (float);
long double __gcc_dtoq (double);
float __gcc_qtos (double, double);
double __gcc_qtod (double, double);
unsigned int __gcc_qtou (double, double);
long double __gcc_itoq (int);
long double __gcc_utoq (unsigned int);

GCC has a fairly decent format description, which I attached to the message.
The implementation should be very small, but due to licensing issues I do not
think libgcc code could simply be taken. The original code appears to be
contributed by Apple under GPLv2.

Could anybody submit a patch following this description or suggest the actions
to be made?</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>