diff options
author | Tejas Belagod <tejas.belagod@arm.com> | 2010-10-07 17:00:06 +0100 |
---|---|---|
committer | Tejas Belagod <belagod@gcc.gnu.org> | 2010-10-07 17:00:06 +0100 |
commit | 7f27ec08affc8092e9b417f8b1fbd07e3b2d7637 (patch) | |
tree | a7b44ee7854bed59cfaa75602ce9bef4403ebf9a /gcc | |
parent | 58be5bf69d186cf9d13975fb70a66db8bd00ff92 (diff) | |
download | gcc-7f27ec08affc8092e9b417f8b1fbd07e3b2d7637.zip gcc-7f27ec08affc8092e9b417f8b1fbd07e3b2d7637.tar.gz gcc-7f27ec08affc8092e9b417f8b1fbd07e3b2d7637.tar.bz2 |
re PR target/45805 (VFP/Neon double precision register expected -- `vmovl.s16 q2,s8)
2010-10-07 Tejas Belagod <tejas.belagod@arm.com>
PR target/45805
* config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
constraint, add register specifier in instruction template.
(neon_vec_pack_trunc_<mode>): Likewise.
(neon_vec_<US>mult_<mode>): Add register specifier to
instruction template.
From-SVN: r165122
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config/arm/neon.md | 10 |
2 files changed, 13 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 87391d9..d088f60 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2010-10-07 Tejas Belagod <tejas.belagod@arm.com> + + * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to + constraint, add register specifier in instruction template. + (neon_vec_pack_trunc_<mode>): Likewise. + (neon_vec_<US>mult_<mode>): Add register specifier to + instruction template. + 2010-10-07 Dave Korn <dave.korn.cygwin@gmail.com> * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add diff --git a/gcc/config/arm/neon.md b/gcc/config/arm/neon.md index cd91573b..c788f16 100644 --- a/gcc/config/arm/neon.md +++ b/gcc/config/arm/neon.md @@ -5361,9 +5361,9 @@ ;; Vectorize for non-neon-quad case (define_insn "neon_unpack<US>_<mode>" [(set (match_operand:<V_widen> 0 "register_operand" "=w") - (SE:<V_widen> (match_operand:VDI 1 "register_operand" "")))] + (SE:<V_widen> (match_operand:VDI 1 "register_operand" "w")))] "TARGET_NEON" - "vmovl.<US><V_sz_elem> %q0, %1" + "vmovl.<US><V_sz_elem> %q0, %P1" [(set_attr "neon_type" "neon_shift_1")] ) @@ -5400,7 +5400,7 @@ (SE:<V_widen> (match_operand:VDI 2 "register_operand" "w"))))] "TARGET_NEON" - "vmull.<US><V_sz_elem> %q0, %1, %2" + "vmull.<US><V_sz_elem> %q0, %P1, %P2" [(set_attr "neon_type" "neon_shift_1")] ) @@ -5449,9 +5449,9 @@ ;; For the non-quad case. (define_insn "neon_vec_pack_trunc_<mode>" [(set (match_operand:<V_narrow> 0 "register_operand" "=w") - (truncate:<V_narrow> (match_operand:VN 1 "register_operand" "")))] + (truncate:<V_narrow> (match_operand:VN 1 "register_operand" "w")))] "TARGET_NEON" - "vmovn.i<V_sz_elem>\t%0, %q1" + "vmovn.i<V_sz_elem>\t%P0, %q1" [(set_attr "neon_type" "neon_shift_1")] ) |