1:214
Volume 1, Part 2: Floating-point Applications
The availability of multiple additional status fields can allow a user to maintain multiple
computational environments and to dynamically select among them on an operation by
operation basis. One such use is in the implementation of interval arithmetic code
where each primitive operation is required to be computed in two different rounding
modes to determine the interval of the result.
6.3.6
Other Features
The Itanium architecture offers a number of other architectural constructs to enhance
the performance of different computational situations.
6.3.6.1
Operand Screening Support
Operand screening is often a required or useful step prior to a computation. The
operand may be screened to ensure that it is in a valid range (e.g. finite positive or zero
input to square-root; non-zero divisor for divide) or it may be screened to take an early
out – the result of the computation is predetermined or could be computed more
efficiently in another way. The
fclass
instruction can be used to classify the input
operand to either be or not be a part of a set of classes. Consider the following code
used for screening invalid operands for square-root computation:
IF (A.EQ. NATVAL OR
A.EQ. SNAN OR A.EQ. QNAN OR
A.EQ. NEG_INF OR A.EQ. POS_INF OR
A.LT. 0.0D0) THEN
WRITE (*, “INVALID INPUT OPERAND”)
ELSE
WRITE (*, “SQUARE-ROOT = “, SQRT(A))
ENDIF
The above conditional can be determined by two fclass instructions as indicated below:
fclass.m
p1, p2 = f2, 0x1E3;;
// Detect NaTVal, NaN, +Inf or -Inf
(p2)
fclass.m
p1, p2 = f2, 0x01A
// Detect -Norm or -Unorm
The resultant complimentary predicates (p1 and p2) can be used to control the
ELSE
and
THEN
statements respectively.
6.3.6.2
Min/Max/AMin/AMax
The Itanium architecture provides direct instruction level support for the FORTRAN
intrinsic
MIN(a,b)
or the equivalent C idiom:
a<b? a: b
and the FORTRAN intrinsic
MAX(b, a)
or the equivalent C idiom:
a<b? b: a
. These instructions can enhance
performance by avoiding the function call overhead in FORTRAN, and by reducing the
critical path in C. The instructions are designed to mimic the C statement behavior so
that they can be generated by the compiler. They are also not commutative. By
appropriately selecting the input operand order, the user can either ignore or catch
NaNs.
Consider the problem of finding the minimum value in an array (similar to the
Livermore FORTRAN kernel 24):
XMIN = X(1)
DO 24 k= 2,n
24 IF(X(k) .LT. XMIN) XMIN = X(k)
Summary of Contents for ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS VOLUME 3 REV 2.3
Page 1: ......
Page 11: ...x Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 13: ...1 2 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 33: ...1 22 Volume 1 Part 1 Introduction to the Intel Itanium Architecture ...
Page 57: ...1 46 Volume 1 Part 1 Execution Environment ...
Page 147: ...1 136 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 149: ...1 138 Volume 1 Part 2 About the Optimization Guide ...
Page 191: ...1 180 Volume 1 Part 2 Predication Control Flow and Instruction Stream ...
Page 230: ......
Page 248: ...236 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 250: ...2 2 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 264: ...2 16 Volume 2 Part 1 Intel Itanium System Environment ...
Page 380: ...2 132 Volume 2 Part 1 Interruptions ...
Page 398: ...2 150 Volume 2 Part 1 Register Stack Engine ...
Page 486: ...2 238 Volume 2 Part 1 IA 32 Interruption Vector Descriptions ...
Page 750: ...2 502 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 754: ...2 506 Volume 2 Part 2 About the System Programmer s Guide ...
Page 796: ...2 548 Volume 2 Part 2 Interruptions and Serialization ...
Page 808: ...2 560 Volume 2 Part 2 Context Management ...
Page 842: ...2 594 Volume 2 Part 2 Floating point System Software ...
Page 850: ...2 602 Volume 2 Part 2 IA 32 Application Support ...
Page 862: ...2 614 Volume 2 Part 2 External Interrupt Architecture ...
Page 870: ...2 622 Volume 2 Part 2 Performance Monitoring Support ...
Page 891: ......
Page 1099: ...3 200 Volume 3 Instruction Reference padd Interruptions Illegal Operation fault ...
Page 1295: ...3 396 Volume 3 Resource and Dependency Semantics ...
Page 1296: ......
Page 1302: ...402 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 1494: ...4 192 Volume 4 Base IA 32 Instruction Reference FWAIT Wait See entry for WAIT ...
Page 1647: ...Volume 4 Base IA 32 Instruction Reference 4 345 ROL ROR Rotate See entry for RCL RCR ROL ROR ...
Page 1884: ...4 582 Volume 4 IA 32 SSE Instruction Reference ...
Page 1885: ...Index Intel Itanium Architecture Software Developer s Manual Rev 2 3 Index ...
Page 1886: ...Index Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 1898: ...INDEX Index 12 Index for Volumes 1 2 3 and 4 ...