Vector Reduction Instructions
vredsum
Vector single-width integer reduction instruction, vd[0] = sum( vs1[0] , vs2[*] ) where [*] denotes all active elements.
vredsum.vs vd, vs2, vs1, vm
31-26 |
25 |
24-20 |
19-15 |
14-12 |
11-7 |
6-0 |
000000 |
vm |
vs2 |
vs1 |
010 |
vd/rd |
1010111 |
vredand
Vector single-width integer reduction instruction, vd[0] = and( vs1[0] , vs2[*] ) where [*] denotes all active elements.
vredand.vs vd, vs2, vs1, vm
31-26 |
25 |
24-20 |
19-15 |
14-12 |
11-7 |
6-0 |
000001 |
vm |
vs2 |
vs1 |
010 |
vd/rd |
1010111 |
vfredusum
Vector single-width floating-point reduction instruction with unordered sum.
vfredusum.vs vd, vs2, vs1, vm
31-26 |
25 |
24-20 |
19-15 |
14-12 |
11-7 |
6-0 |
000001 |
vm |
vs2 |
vs1 |
001 |
vd/rd |
1010111 |
vredor
Vector single-width integer reduction instruction, vd[0] = or( vs1[0] , vs2[*] ) where [*] denotes all active elements.
vredor.vs vd, vs2, vs1, vm
31-26 |
25 |
24-20 |
19-15 |
14-12 |
11-7 |
6-0 |
000010 |
vm |
vs2 |
vs1 |
010 |
vd/rd |
1010111 |
vredxor
Vector single-width integer reduction instruction, vd[0] = xor( vs1[0] , vs2[*] ) where [*] denotes all active elements.
vredxor.vs vd, vs2, vs1, vm
31-26 |
25 |
24-20 |
19-15 |
14-12 |
11-7 |
6-0 |
000011 |
vm |
vs2 |
vs1 |
010 |
vd/rd |
1010111 |
vfredosum
Vector single-width floating-point reduction instruction with ordered sum.
vfredosum.vs vd, vs2, vs1, vm
31-26 |
25 |
24-20 |
19-15 |
14-12 |
11-7 |
6-0 |
000011 |
vm |
vs2 |
vs1 |
001 |
vd/rd |
1010111 |
vredminu
Vector single-width integer reduction instruction, vd[0] = minu( vs1[0] , vs2[*] ) where [*] denotes all active elements.
vredminu.vs vd, vs2, vs1, vm
31-26 |
25 |
24-20 |
19-15 |
14-12 |
11-7 |
6-0 |
000100 |
vm |
vs2 |
vs1 |
010 |
vd/rd |
1010111 |
vredmin
Vector single-width integer reduction instruction, vd[0] = min( vs1[0] , vs2[*] ) where [*] denotes all active elements.
vredmin.vs vd, vs2, vs1, vm
31-26 |
25 |
24-20 |
19-15 |
14-12 |
11-7 |
6-0 |
000101 |
vm |
vs2 |
vs1 |
010 |
vd/rd |
1010111 |
vfredmin
Vector single-width floating-point reduction instruction with minimum value.
vfredmin.vs vd, vs2, vs1, vm
31-26 |
25 |
24-20 |
19-15 |
14-12 |
11-7 |
6-0 |
000101 |
vm |
vs2 |
vs1 |
001 |
vd/rd |
1010111 |
vredmaxu
Vector single-width integer reduction instruction, vd[0] = maxu( vs1[0] , vs2[*] ) where [*] denotes all active elements.
vredmaxu.vs vd, vs2, vs1, vm
31-26 |
25 |
24-20 |
19-15 |
14-12 |
11-7 |
6-0 |
000110 |
vm |
vs2 |
vs1 |
010 |
vd/rd |
1010111 |
vredmax
Vector single-width integer reduction instruction, vd[0] = max( vs1[0] , vs2[*] ) where [*] denotes all active elements.
vredmax.vs vd, vs2, vs1, vm
31-26 |
25 |
24-20 |
19-15 |
14-12 |
11-7 |
6-0 |
000111 |
vm |
vs2 |
vs1 |
010 |
vd/rd |
1010111 |
vfredmax
Vector single-width floating-point reduction instruction with maximum value.
vfredmax.vs vd, vs2, vs1, vm
31-26 |
25 |
24-20 |
19-15 |
14-12 |
11-7 |
6-0 |
000111 |
vm |
vs2 |
vs1 |
001 |
vd/rd |
1010111 |
vwredsumu
Unsigned sum reduction into double-width accumulator.
vwredsumu.vs vd, vs2, vs1, vm
31-26 |
25 |
24-20 |
19-15 |
14-12 |
11-7 |
6-0 |
110000 |
vm |
vs2 |
vs1 |
000 |
vd |
1010111 |
vwredsum
Signed sum reduction into double-width accumulator.
vwredsum.vs vd, vs2, vs1, vm
31-26 |
25 |
24-20 |
19-15 |
14-12 |
11-7 |
6-0 |
110001 |
vm |
vs2 |
vs1 |
000 |
vd |
1010111 |
vfwredusum
Vector widening floating-point reduction instruction with unordered sum.
vfwredusum.vs vd, vs2, vs1, vm
31-26 |
25 |
24-20 |
19-15 |
14-12 |
11-7 |
6-0 |
110001 |
vm |
vs2 |
vs1 |
001 |
vd/rd |
1010111 |
vfwredosum
Vector widening floating-point reduction instruction with ordered sum.
vfwredosum.vs vd, vs2, vs1, vm
31-26 |
25 |
24-20 |
19-15 |
14-12 |
11-7 |
6-0 |
110011 |
vm |
vs2 |
vs1 |
001 |
vd/rd |
1010111 |