To: J3 08-115r1 From: Malcolm Cohen Subject: UTI 136 (p447): Re IEEE_SUPPORT_DENORMAL Date: 2008 February 12 1. Introduction This paper addresses UTI 136, by making the text of that part of 14.9 more precise, and making its use of terminology consistent with the rest of IS 1539-1. 2. Edits to 08-007 [446:20] Before "operations" insert "intrinsic". {Precision: we are talking only about the intrinsic operations.} [447:1-2] Replace "whether the processor supports divide ... Standard" with "whether, on kinds of real for which IEEE_SUPPORT_DATATYPE returns true, the intrinsic division operation conforms to the IEEE International Standard when both operands and the IEEE result are normal". {I believe this more precise statement captures our intent.} Move the paragraph [447:1-2] to [447:14+], and append new sentences: "If IEEE_SUPPORT_NAN is also true for a particular kind of real, the intrinsic division operation on that kind conforms to the IEEE International Standard when the IEEE result is a NaN. If IEEE_SUPPORT_INF is also true for a particular kind of real, the intrinsic division operation on that kind conforms to the IEEE International Standard when one operand or the IEEE result is an IEEE infinity. If IEEE_SUPPORT_DENORMAL is also true for a particular kind of real, the intrinsic division operation on that kind conforms to the IEEE International Standard when the IEEE result is a denormal, or when any operand is a denormal and either the IEEE result is not an infinity or IEEE_SUPPORT_INF is true." {We have too many supposedly-independent SUPPORT queries!} [447:4-6] After "Where these are supported," replace "their ... Standard" with "the result of the intrinsic operations +, -, and *, and the functions IEEE_REM and IEEE_RINT from the intrinsic module IEEE_ARITHMETIC, shall conform to the IEEE International Standard when the result is an IEEE NaN". {Note deliberate exclusion of division and square root here. Also deliberate exclusion of non-IEEE functions such as SIN and ANINT. Also, this handles NaN inputs automagically.} [447:8-10] After "Where these are supported," replace "their ... Standard" with "the result of the intrinsic operations +, -, and *, and the functions IEEE_REM and IEEE_RINT from the intrinsic module IEEE_ARITHMETIC, shall conform to the IEEE International Standard when exactly one operand or the IEEE result is an IEEE infinity". {Note careful exclusion of NaN result cases from IEEE_SUPPORT_INF.} [447:12-14] After "Where these are supported," replace "their ... Standard" with "the result of the intrinsic operations +, -, and *, and the functions IEEE_REM and IEEE_RINT from the intrinsic module IEEE_ARITHMETIC, shall conform to the IEEE International Standard when the IEEE result is an IEEE denormal, or any operand is an IEEE denormal and either the result is not an IEEE infinity or IEEE_SUPPORT_INF is true". {We need to exclude infinite results when IEEE_SUPPORT_INF is untrue.} [447:18] Append "If IEEE_SUPPORT_NAN is also true for a particular kind of real, the intrinsic function SQRT on that kind conforms to the IEEE International Standard when the IEEE result is a NaN. If IEEE_SUPPORT_INF is also true for a particular kind of real, the intrinsic function SQRT on that kind conforms to the IEEE International Standard when the IEEE result is an IEEE infinity. If IEEE_SUPPORT_DENORMAL is also true for a particular kind of real, the intrinsic function SQRT on that kind conforms to the IEEE International Standard when the argument is a denormal." ===END===