<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>