|
MSA 011110 |
110 |
df/m |
ws |
wd |
BIT 001001 |
|
6 |
3 |
7 |
5 |
5 |
6 |
BINSLI.df |
Immediate Bit Insert Left | |
BINSLI.B wd,ws,m |
MSA |
Immediate Bit Insert Left |
BINSLI.H wd,ws,m |
MSA |
Immediate Bit Insert Left |
BINSLI.W wd,ws,m |
MSA |
Immediate Bit Insert Left |
BINSLI.D wd,ws,m |
MSA |
Immediate Bit Insert Left |
Immediate Bit Insert Left
Immediate selected left most bits copy while preserving destination right bits.
wd[i] = bit_insert_left(wd[i], ws[i], m)
Copy most significant (left) bits in each element of vector ws to elements in vector wd while preserving the least significant (right) bits. The number of bits to copy is given by the immediate m modulo the size of the element in bits plus 1.
The operands and results are values in integer data format df.
No data-dependent exceptions are possible.
BINSLI.B:
t = m
for i in 0 .. WRLEN/8-1
WR[wd]8i+7..8i = WR[ws]8i+7..8i+7-t || WR[wd]8i+7-t-1..8i
endfor
BINSLI.H:
t = m
for i in 0 .. WRLEN/16-1
WR[wd]16i+15..16i = WR[ws]16i+15..16i+15-t || WR[wd]16i+15-t-1..16i
endfor
BINSLI.W:
t = m
for i in 0 .. WRLEN/32-1
WR[wd]32i+31..32i = WR[ws]32i+31..32i+31-t || WR[wd]32i+31-t-1..32i
endfor
BINSLI.D:
t = m
for i in 0 .. WRLEN/64-1
WR[wd]64i+63..64i = WR[ws]64i+63..64i+63-t || WR[wd]64i+63-t-1..64i
endfor
Reserved Instruction Exception, MSA Disabled Exception.