target/arm: Use correct output type for gvec_sdot_*_b
The signed dot product routines produce a signed result. Since we use -fwrapv, there is no functional change. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210525010358.152808-49-richard.henderson@linaro.org Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
751147928e
commit
77e786bb95
@ -378,7 +378,7 @@ void HELPER(sve2_sqrdmlsh_d)(void *vd, void *vn, void *vm,
|
||||
void HELPER(gvec_sdot_b)(void *vd, void *vn, void *vm, uint32_t desc)
|
||||
{
|
||||
intptr_t i, opr_sz = simd_oprsz(desc);
|
||||
uint32_t *d = vd;
|
||||
int32_t *d = vd;
|
||||
int8_t *n = vn, *m = vm;
|
||||
|
||||
for (i = 0; i < opr_sz / 4; ++i) {
|
||||
@ -408,7 +408,7 @@ void HELPER(gvec_udot_b)(void *vd, void *vn, void *vm, uint32_t desc)
|
||||
void HELPER(gvec_sdot_h)(void *vd, void *vn, void *vm, uint32_t desc)
|
||||
{
|
||||
intptr_t i, opr_sz = simd_oprsz(desc);
|
||||
uint64_t *d = vd;
|
||||
int64_t *d = vd;
|
||||
int16_t *n = vn, *m = vm;
|
||||
|
||||
for (i = 0; i < opr_sz / 8; ++i) {
|
||||
@ -439,7 +439,7 @@ void HELPER(gvec_sdot_idx_b)(void *vd, void *vn, void *vm, uint32_t desc)
|
||||
{
|
||||
intptr_t i, segend, opr_sz = simd_oprsz(desc), opr_sz_4 = opr_sz / 4;
|
||||
intptr_t index = simd_data(desc);
|
||||
uint32_t *d = vd;
|
||||
int32_t *d = vd;
|
||||
int8_t *n = vn;
|
||||
int8_t *m_indexed = (int8_t *)vm + H4(index) * 4;
|
||||
|
||||
@ -501,7 +501,7 @@ void HELPER(gvec_sdot_idx_h)(void *vd, void *vn, void *vm, uint32_t desc)
|
||||
{
|
||||
intptr_t i, opr_sz = simd_oprsz(desc), opr_sz_8 = opr_sz / 8;
|
||||
intptr_t index = simd_data(desc);
|
||||
uint64_t *d = vd;
|
||||
int64_t *d = vd;
|
||||
int16_t *n = vn;
|
||||
int16_t *m_indexed = (int16_t *)vm + index * 4;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user