<div dir="ltr"><div dir="ltr"><div>Hi all,<br><br></div>According to this thread (<a href="http://www.openwall.com/lists/musl/2016/03/11/18">http://www.openwall.com/lists/musl/2016/03/11/18</a>), clang does not support emitting architecture-independent "fp128" types for PowerPC & x86-64, but instead will only emit their architecture-specific long double types.  One alternative the thread suggests is to to force GCC to demote long double types to be equivalent to normal 64-bit doubles.  Is there a way to enforce this behavior using clang, i.e., force clang to emit IR "double" types for values declared as "long double" in the source code?<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Aug 3, 2017 at 11:09 AM, Rob Lyerly <span dir="ltr"><<a href="mailto:rlyerly@vt.edu" target="_blank">rlyerly@vt.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" id="gmail-m_5747283893219143321gmail_block_quote0"><div dir="ltr"><div>Hi all,<br><br></div>I'm sure this has been answered somewhere but I can't seem to find it.  I've got an application that uses the long double type in a couple of places.  Is there a way to prevent clang from emitting architecture-specific floating point types, i.e., "x86_fp80" & "ppc_fp128", and instead force clang to only emit "fp128" types?  It seems like LLVM's backends can easily handle this by emitting soft floating point routines (defined in the "compiler-rt" project) for dealing with these types.  However, I don't want to force soft floating point routines for other types, i.e., "half", "float" and "double".<br clear="all"><div><div><br></div><div>Thanks!<span class="gmail-m_5747283893219143321m_7717260787265881427HOEnZb"><font color="#888888"><br></font></span></div><span class="gmail-m_5747283893219143321m_7717260787265881427HOEnZb"><font color="#888888"><div><br>-- <br><div class="gmail-m_5747283893219143321m_7717260787265881427m_4341924766865916825gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div><span>Rob Lyerly</span><br></div><div>Graduate Research Assistant, Systems Software Research Group<br><br></div><div><img src="https://www.branding.unirel.vt.edu/content/branding_unirel_vt_edu/en/trademarks/index/jcr:content/content/vtmulticolumn/vt-items_2/adaptiveimage.img.3008.low.jpg/1461259021506.jpg" width="69" height="69"> <span><span><span><span><img src="http://www.oocities.org/rainforestwind/divider_black_vertical.jpg" width="8" height="65"></span></span></span></span>  <img src="https://docs.google.com/uc?id=0B8E5oZB3WuGKTDNXVkt6UlFja1k&export=download" width="477" height="60"></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>
</div></font></span></div></div>
</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail-m_5747283893219143321m_7717260787265881427gmail_signature"><div dir="ltr"><div><span>Rob Lyerly</span><br></div><div>Graduate Research Assistant, Systems Software Research Group<br><br></div><div><img src="https://www.branding.unirel.vt.edu/content/branding_unirel_vt_edu/en/trademarks/index/jcr:content/content/vtmulticolumn/vt-items_2/adaptiveimage.img.3008.low.jpg/1461259021506.jpg" width="69" height="70"> <img src="http://www.oocities.org/rainforestwind/divider_black_vertical.jpg" width="8" height="65"> <img src="https://docs.google.com/uc?id=0B8E5oZB3WuGKTDNXVkt6UlFja1k&export=download" width="476" height="60"></div></div></div>
</div><span>
</span></div>