14.06.2015 Views

Power ISA™ Version 2.03 - Power.org

Power ISA™ Version 2.03 - Power.org

Power ISA™ Version 2.03 - Power.org

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Version</strong> <strong>2.03</strong><br />

Vector Multiply Halfwords, Even, Signed,<br />

Saturate, Fractional and Accumulate into<br />

Words<br />

EVX-form<br />

evmhessfaaw RT,RA,RB<br />

4 RT RA RB 1283<br />

0 6 11 16 21 31<br />

Vector Multiply Halfwords, Even, Signed,<br />

Saturate, Fractional and Accumulate<br />

Negative into Words<br />

EVX-form<br />

evmhessfanw RT,RA,RB<br />

4 RT RA RB 1411<br />

0 6 11 16 21 31<br />

temp 0:31 (RA) 0:15 × sf (RB) 0:15<br />

if ((RA) 0:15 = 0x8000) & ((RB) 0:15 = 0x8000) then<br />

temp 0:31 0x7FFF_FFFF<br />

movh 1<br />

else<br />

movh 0<br />

temp 0:63 EXTS((ACC) 0:31 ) + EXTS(temp 0:31 )<br />

ovh (temp 31 ⊕ temp 32 )<br />

RT 0:31 SATURATE(ovh, temp 31 , 0x8000_0000,<br />

0x7FFF_FFFF, temp 32:63 )<br />

temp 0:31 (RA) 32:47 × sf (RB) 32:47<br />

if ((RA) 32:47 = 0x8000) & ((RB) 32:47 = 0x8000) then<br />

temp 0:31 0x7FFF_FFFF<br />

movl 1<br />

else<br />

movl 0<br />

temp 0:63 EXTS((ACC) 32:63 ) + EXTS(temp 0:31 )<br />

ovl (temp 31 ⊕ temp 32 )<br />

RT 32:63 SATURATE(ovl, temp 31 , 0x8000_0000,<br />

0x7FFF_FFFF, temp 32:63 )<br />

ACC 0:63 (RT) 0:63<br />

SPEFSCR OVH ovh | movh<br />

SPEFSCR OV ovl| movl<br />

SPEFSCR SOVH SPEFSCR SOVH | ovh | movh<br />

SPEFSCR SOV SPEFSCR SOV | ovl| movl<br />

The corresponding even-numbered halfword signed<br />

fractional elements in RA and RB are multiplied producing<br />

a 32-bit product. If both inputs are -1.0, the result<br />

saturates to 0x7FFF_FFFF. Each 32-bit product is then<br />

added to the corresponding word in the accumulator<br />

saturating if overflow occurs, and the result is placed in<br />

RT and the accumulator.<br />

Special Registers Altered:<br />

ACC, OV, OVH, SOV, SOVH<br />

temp 0:31 (RA) 0:15 × sf (RB) 0:15<br />

if ((RA) 0:15 = 0x8000) & ((RB) 0:15 = 0x8000) then<br />

temp 0:31 0x7FFF_FFFF<br />

movh 1<br />

else<br />

movh 0<br />

temp 0:63 EXTS((ACC) 0:31 ) - EXTS(temp 0:31 )<br />

ovh (temp 31 ⊕ temp 32 )<br />

RT 0:31 SATURATE(ovh, temp 31 , 0x8000_0000,<br />

0x7FFF_FFFF, temp 32:63 )<br />

temp 0:31 (RA) 32:47 × sf (RB) 32:47<br />

if ((RA) 32:47 = 0x8000) & ((RB) 32:47 = 0x8000) then<br />

temp 0:31 0x7FFF_FFFF<br />

movl 1<br />

else<br />

movl 0<br />

temp 0:63 EXTS((ACC) 32:63 ) - EXTS(temp 0:31 )<br />

ovl (temp 31 ⊕ temp 32 )<br />

RT 32:63 SATURATE(ovl, temp 31 , 0x8000_0000,<br />

0x7FFF_FFFF, temp 32:63 )<br />

ACC 0:63 (RT) 0:63<br />

SPEFSCR OVH ovh | movh<br />

SPEFSCR OV ovl| movl<br />

SPEFSCR SOVH SPEFSCR SOVH | ovh | movh<br />

SPEFSCR SOV SPEFSCR SOV | ovl| movl<br />

The corresponding even-numbered halfword signed<br />

fractional elements in RA and RB are multiplied producing<br />

a 32-bit product. If both inputs are -1.0, the result<br />

saturates to 0x7FFF_FFFF. Each 32-bit product is then<br />

subtracted from the corresponding word in the accumulator<br />

saturating if overflow occurs, and the result is<br />

placed in RT and the accumulator.<br />

Special Registers Altered:<br />

ACC, OV, OVH, SOV, SOVH<br />

Chapter 6. Signal Processing Engine (SPE)<br />

219

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!