[arm][3/X] Implement __smla* intrinsics (Q-setting)
This patch implements some more Q-setting intrinsics form the SMLA* group. These can set the saturation bit on overflow in the accumulation step. Like earlier, these have non-Q-setting RTL forms as well for when the Q-bit read is not needed. * config/arm/arm.md (arm_smlabb_setq): New define_insn. (arm_smlabb): New define_expand. (*maddhisi4tb): Rename to... (maddhisi4tb): ... This. (*maddhisi4tt): Rename to... (maddhisi4tt): ... This. (arm_smlatb_setq): New define_insn. (arm_smlatb): New define_expand. (arm_smlatt_setq): New define_insn. (arm_smlatt): New define_expand. (arm_<smlaw_op><add_clobber_name>_insn): New define_insn. (arm_<smlaw_op>): New define_expand. * config/arm/arm_acle.h (__smlabb, __smlatb, __smlabt, __smlatt, __smlawb, __smlawt): Define. * config/arm_acle_builtins.def: Define builtins for the above. * config/arm/iterators.md (SMLAWBT): New int_iterator. (slaw_op): New int_attribute. * config/arm/unspecs.md (UNSPEC_SMLAWB, UNSPEC_SMLAWT): Define. * gcc.target/arm/acle/dsp_arith.c: Update test. From-SVN: r277916
Showing
Please
register
or
sign in
to comment