rs6000: Do swdiv at expand time
authorSegher Boessenkool <segher@kernel.crashing.org>
Mon, 7 Nov 2016 20:54:42 +0000 (21:54 +0100)
committerSegher Boessenkool <segher@gcc.gnu.org>
Mon, 7 Nov 2016 20:54:42 +0000 (21:54 +0100)
commitb7fa8414c43a7b5f2971753473f550af94481ff3
tree48bef69e7dcc992247d74c22ce95378ddfe0acd0
parentfda2d61208385823f6b75f637eed60a9e77256c1
rs6000: Do swdiv at expand time

We transform floating point divide instructions to a faster series of
simple instructions, "swdiv".  Currently we do not do that until the
first splitter pass, which is much too late for most optimisations
that can happen on those new instructions, e.g. the constant loads
are not CSEd inside an unrolled loop.  This patch changes things so
those divide instructions are expanded during expand already.

* config/rs6000/rs6000.md (div<mode>3): Expand using rs6000_emit_swdiv
if appropriate.
* config/rs6000/vector.md (div<mode>3): Ditto.

From-SVN: r241935
gcc/ChangeLog
gcc/config/rs6000/rs6000.md
gcc/config/rs6000/vector.md