Encoding:

MSA

011110

1000

df

wt

ws

wd

3RF

011011

6

4

1

5

5

5

6

Format:

FEXDO.df 

Vector Floating-Point Down-Convert Interchange Format

FEXDO.H wd,ws,wt

MSA

Vector Floating-Point Down-Convert Interchange Format

FEXDO.W wd,ws,wt

MSA

Vector Floating-Point Down-Convert Interchange Format

Purpose:

Vector Floating-Point Down-Convert Interchange Format

Vector conversion to smaller interchange format.

Description:

left_half(wd)[i] = down_convert(ws[i]); right_half(wd)[i] = 
down_convert(wt[i])

The floating-point elements in vectors ws and wt are down-converted to a smaller interchange format, i.e. from 64-bit to 32-bit, or from 32-bit to 16-bit.

The format down-conversion operation is defined by the IEEE Standard for Floating-Point Arithmetic 754TM-2008.

16-bit floating-point results are not affected by the flush-to-zero bit FS in MSA Control and Status Register MSACSR.

The operands are values in floating-point data format d ouble the size of df. The results are floating-point values in data format of df.

Restrictions:

Data-dependent exceptions are poss ible as s pecified by the I EEE Standard for Floating-Point Arithmetic 754TM2008.

Operation:

FEXDO.H
   for i in 0 .. WRLEN/32-1
      f = DownConvertFP(WR[ws]32i+31..32i, 32)
      g = DownConvertFP(WR[wt]32i+31..32i, 32)
      WR[wd]16i+15+WRLEN/2..16i+WRLEN/2 = f
      WR[wd]16i+15..16i = g
   endfor
FEXDO.W
   for i in 0 .. WRLEN/64-1
      f = DownConvertFP(WR[ws]64i+63..64i, 64)
      g = DownConvertFP(WR[wt]64i+63..64i, 64)
      WR[wd]32i+31+WRLEN/2..32i+WRLEN/2 = f
      WR[wd]32i+31..32i = g
   endfor
function DownConvertFP(tt, n)
   /* Implementation defined format down-conversion. */
endfunction DownConvertFP

Exceptions:

Reserved Instruction Exception, MSA Disabled Exception, MSA Floating Point Exception.