This is the mail archive of the
mailing list for the GCC project.
Re: gcc intrinsics for am33 parallel integer arithmetic
- To: Matthew Hiller <hiller at cygnus dot com>
- Subject: Re: gcc intrinsics for am33 parallel integer arithmetic
- From: Michael Hayes <m dot hayes at elec dot canterbury dot ac dot nz>
- Date: Sat, 02 Sep 2000 16:40:47 +1200 (NZST)
- Cc: gcc-patches at gcc dot gnu dot org
- References: <Pine.LNX.firstname.lastname@example.org><Pine.LNX.email@example.com>
Matthew Hiller writes:
> The am33 has a set of parallel integer arithmetic instructions
> that execute two integer arithmetic operations simultaneously. This patch
> implements 36 of them as intrinsics. Binutils already supports these
The C4x port supports many similar patterns (for floats as well as
ints). I wrote a pass that I submitted to this list yonks ago that
allows GCC to pack pairs of these instructions together. As well as
packing independent operations, the pass performs some software
pipelining by peeling an iteration off loops to allow insns with a
flow dependency to be packed. Since the C3x and C4x DSPs do
not have a multiply-accumulate instruction, this pass is essential
to allow a multiply to be performed at the same time as an add.
I would love to get this pass (and my autoincrement/automodify
optimisation pass) into the GCC sources to save all the hassle of
maintaining and distributing a separate source tree for the C4x.