MSA 011110 |
110 |
df |
wt |
ws |
wd |
3R 001101 |
6 |
3 |
2 |
5 |
5 |
5 |
6 |
BINSL.df |
Vector Bit Insert Left | |
BINSL.B wd,ws,wt |
MSA |
Vector Bit Insert Left |
BINSL.H wd,ws,wt |
MSA |
Vector Bit Insert Left |
BINSL.W wd,ws,wt |
MSA |
Vector Bit Insert Left |
BINSL.D wd,ws,wt |
MSA |
Vector Bit Insert Left |
Vector Bit Insert Left
Vector selected left most bits copy while preserving destination right bits.
wd[i] = bit_insert_left(wd[i], ws[i], wt[i])
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 elements in vector wt 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.
BINSL.B: for i in 0 .. WRLEN/8-1 t = WR[wt]8i+2..8i WR[wd]8i+7..8i = WR[ws]8i+7..8i+7-t || WR[wd]8i+7-t-1..8i endfor BINSL.H: for i in 0 .. WRLEN/16-1 t = WR[wt]16i+3..16i WR[wd]16i+15..16i = WR[ws]16i+15..16i+15-t || WR[wd]16i+15-t-1..16i endfor BINSL.W: for i in 0 .. WRLEN/32-1 t = WR[wt]32i+4..32i WR[wd]32i+31..32i = WR[ws]32i+31..32i+31-t || WR[wd]32i+31-t-1..32i endfor BINSL.D: for i in 0 .. WRLEN/64-1 t = WR[wt]64i+5..64i 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.