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