diff options
Diffstat (limited to 'src/emu/cpu/rsp/vaddc.h')
-rw-r--r-- | src/emu/cpu/rsp/vaddc.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/emu/cpu/rsp/vaddc.h b/src/emu/cpu/rsp/vaddc.h new file mode 100644 index 00000000000..0ebd30cbd31 --- /dev/null +++ b/src/emu/cpu/rsp/vaddc.h @@ -0,0 +1,13 @@ +// license:BSD-3-Clause +// copyright-holders:Tyler J. Stachecki,Ryan Holtz + +inline rsp_vec_t vec_vaddc(rsp_vec_t vs, rsp_vec_t vt, rsp_vec_t zero, rsp_vec_t *sn) +{ + rsp_vec_t sat_sum = _mm_adds_epu16(vs, vt); + rsp_vec_t unsat_sum = _mm_add_epi16(vs, vt); + + *sn = _mm_cmpeq_epi16(sat_sum, unsat_sum); + *sn = _mm_cmpeq_epi16(*sn, zero); + + return unsat_sum; +} |