[PATCH][arm][3/X] Implement __smla* intrinsics (Q-setting)

Kyrill Tkachov kyrylo.tkachov@foss.arm.com
Thu Nov 7 10:27:00 GMT 2019


Hi all,

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.

Bootstrapped and tested on arm-none-linux-gnueabihf.
Committing to trunk.
Thanks,
Kyrill

2019-11-07  Kyrylo Tkachov <kyrylo.tkachov@arm.com>

     * 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.

2019-11-07  Kyrylo Tkachov <kyrylo.tkachov@arm.com>

     * gcc.target/arm/acle/dsp_arith.c: Update test.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: v6-intrinsics-3.patch
Type: text/x-patch
Size: 10352 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20191107/7ab56387/attachment.bin>


More information about the Gcc-patches mailing list