Multiple Status Fields - Intel ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3 Manual

Hide thumbs Also See for ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3:
Table of Contents

Advertisement

6.3.5

Multiple Status Fields

The FPSR is divided into one main (architectural) status field and three additional
identical status fields. These additional status fields could be used to performance
advantage.
First, divide and square-root sequences (described in
that might cause intermediate results to overflow/underflow or be inexact even if the
final result may not. In order to maintain correct IEEE flag status the status flags of
these computations need to be discarded. One of these additional status fields
(typically status field 1) can be used to discard these flags.
Second, speculating floating-point operations requires maintaining the status flags of
the speculated operations distinct from the architectural status flags until the
speculated operations are committed to architectural state (if they ever are). One of
these additional status fields (typically status fields 2 or 3) can be used for this
purpose.
Consider the Livermore FORTRAN kernel 16 – Monte Carlo Search
DO 470 k= 1,n
415 IF( j5-n+II
420 IF( j5-n+LB
425 IF( PLAN(j5)-R) 445,480,440
430 IF( PLAN(j5)-S) 445,480,440
435 IF( PLAN(j5)-T) 445,480,440
440 IF( ZONE(j4-1)) 455,485,470
445 IF( ZONE(j4-1)) 470,485,455
450 k3= k3+1
455 m= m+1
460 m= 1
465 IF( i1-m) 410,480,410
470 CONTINUE
475 CONTINUE
480 CONTINUE
485 CONTINUE
Profiling indicates that the conditional after statement 450 is most frequently executed.
It is therefore advantageous to speculatively execute the computation in the conditional
while the conditionals in 415...445 are being evaluated. In the event that any of the
conditionals in 415...445 cause the control to be moved on beyond 450 the results (and
flags) of the speculatively computed operations (of the conditional after statement 450)
can be discarded.
Volume 1, Part 2: Floating-point Applications
k2= k2+1
j4= j2+k+k
j5= ZONE(j4)
IF( j5-n
) 420,475,450
) 430,425,425
) 435,415,415
IF( D(j5)-(D(j5-1)*(T-D(j5-2))**2
,
+(S-D(j5-3))**2
,
+(R-D(j5-4))**2)) 445,480,440
IF( m-ZONE(1) ) 465,465,460
Section
6.3.3) contain operations
1:213

Advertisement

Table of Contents
loading

This manual is also suitable for:

Itanium architecture 2.3

Table of Contents