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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

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

Saturate, Integer and Accumulate into<br />

Words<br />

EVX-form<br />

evmhossiaaw RT,RA,RB<br />

4 RT RA RB 1285<br />

0 6 11 16 21 31<br />

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

Saturate, Integer and Accumulate<br />

Negative into Words<br />

EVX-form<br />

evmhossianw RT,RA,RB<br />

4 RT RA RB 1413<br />

0 6 11 16 21 31<br />

temp 0:31 (RA) 16:31 × si (RB) 16:31<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) 48:63 × si (RB) 48:63<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<br />

SPEFSCR OV ovl<br />

SPEFSCR SOVH SPEFSCR SOVH | ovh<br />

SPEFSCR SOV SPEFSCR SOV | ovl<br />

The corresponding odd-numbered halfword<br />

signed-integer elements in RA and RB are multiplied<br />

producing a 32-bit product. 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) 16:31 × si (RB) 16:31<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) 48:63 × si (RB) 48:63<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<br />

SPEFSCR OV ovl<br />

SPEFSCR SOVH SPEFSCR SOVH | ovh<br />

SPEFSCR SOV SPEFSCR SOV | ovl<br />

The corresponding odd-numbered halfword<br />

signed-integer elements in RA and RB are multiplied<br />

producing a 32-bit product. 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 />

Vector Multiply Halfwords, Odd,<br />

Vector Multiply Halfwords, Odd,<br />

Unsigned, Modulo, Integer EVX-form Unsigned, Modulo, Integer to<br />

Accumulator<br />

EVX-form<br />

evmhoumi RT,RA,RB<br />

evmhoumia RT,RA,RB<br />

4 RT RA RB 1036<br />

0 6 11 16 21 31 4 RT RA RB 1068<br />

0 6 11 16 21 31<br />

RT 0:31 (RA) 16:31 × ui (RB) 16:31<br />

RT 32:63 (RA) 48:63 × ui (RB) 48:63<br />

The corresponding odd-numbered halfword<br />

unsigned-integer elements in RA and RB are multiplied.<br />

The two 32-bit products are placed into the corresponding<br />

words of RT.<br />

Special Registers Altered:<br />

None<br />

RT 0:31 (RA) 16:31 × ui (RB) 16:31<br />

RT 32:63 (RA) 48:63 × ui (RB) 48:63<br />

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

The corresponding odd-numbered halfword<br />

unsigned-integer elements in RA and RB are multiplied.<br />

The two 32-bit products are placed into RT and<br />

into the accumulator.<br />

Special Registers Altered:<br />

ACC<br />

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

229

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

Saved successfully!

Ooh no, something went wrong!