This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/50038] redundant zero extensions
- From: "tocarip.intel at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 27 Sep 2011 10:15:15 +0000
- Subject: [Bug target/50038] redundant zero extensions
- Auto-submitted: auto-generated
- References: <bug-50038-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50038
--- Comment #2 from tocarip.intel at gmail dot com 2011-09-27 10:15:15 UTC ---
Created attachment 25369
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25369
Possible solution
Here is an experimental patch which solves this problem. I modified
implicit-zee pass to also eliminate useless zero-extensions from QImode to
SImode. With this patch rgbyiqv test from EEMBC 2.0 benchmark showed 6%
improvement. However after this patch implicit-zee may became useful for
additional targets. For example it became beneficial to 32-bit x86 (+4% on
rgbyiqv).
Here is a Changelog:
2011-09-27 Ilya Tocar <ilya.tocar@intel.com>
* implicit-zee.c: Added 2011 to copyright.
(combine_set_zero_extend): Add QImode.
(merge_def_and_ze): Likewise.
(add_removable_zero_extend): Likewise.
(not_qi_to_si): New.
(make_defs_and_copies_lists): Add check for QImode.