https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78041

--- Comment #16 from wilco at gcc dot gnu.org ---
Author: wilco
Date: Tue Oct 25 10:25:28 2016
New Revision: 241508

URL: https://gcc.gnu.org/viewcvs?rev=241508&root=gcc&view=rev
Log:
With -fpu=neon DI mode shifts are expanded after reload.  DI mode registers can 
either fully or partially overlap on both ARM and Thumb-2.  However the shift
expansion code can only deal with the full overlap case, and generates
incorrect
code for partial overlaps.  The fix is to add new variants that support either
full overlap or no overlap.

    gcc/
        PR target/78041
        * config/arm/neon.md (ashldi3_neon): Add "r 0 i" and "&r r i" variants.
        Remove partial overlap check for shift by 1.
        (ashldi3_neon): Likewise.
    testsuite/
        * gcc.target/arm/pr78041.c: New test.

Added:
    trunk/gcc/testsuite/gcc.target/arm/pr78041.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/arm/neon.md
    trunk/gcc/testsuite/ChangeLog

Reply via email to