<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<font face="Courier New" size="2"><span style="font-size:11pt;">
<div>How should the constrained FP intrinsics behave when called with an operand that is “undef” and the FP environment is _<i>not</i>_ the default environment? I’m specifically working in the middle end passes if it matters. Let me start with the assumption
that the rounding mode is not relevant. That still leaves the exception handling as a factor:</div>
<div><font face="Calibri"> </font></div>
<div>With “fpexcept.maytrap” we are allowed to drop instructions that could or would cause a trap at run-time. Does this imply we can fold the entire instruction to a new undef?</div>
<div> </div>
<div>With “fpexcept.strict” we are _<i>not</i>_ allowed to lose or reorder traps. So how does that affect undef? What happens in the backend? Perhaps the middle end should leave the instruction with the undef and let the backend do something reasonable?</div>
<div> </div>
<div>The “maytrap” case is the one I’m most interested in. An earlier version of D103169 would fold away undef constrained intrinsics in the maytrap case. This was removed so it could be handled without affecting the rest of the patch I believe.</div>
<div><font face="Calibri"> </font></div>
<div>Opinions?</div>
<div><font face="Calibri" size="2"><span style="font-size:10pt;">--<font size="2"><span style="font-size:11pt;">
<br>
</span></font><font face="Courier New">Kevin P. Neal<br>
</font><font face="Courier New">SAS/C and SAS/C++ Compiler</font></span></font></div>
<div><font size="2"><span style="font-size:10pt;">Compute Services</span></font></div>
<div><font size="2"><span style="font-size:10pt;">SAS Institute, Inc.</span></font></div>
<div><font face="Calibri"> </font></div>
<div><font face="Calibri"> </font></div>
<div><font face="Calibri"> </font></div>
<div><font face="Calibri"> </font></div>
</span></font>
</body>
</html>