[Bug target/70799] STV pass does not convert DImode shifts and rotates
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70799 --- Comment #4 from uros at gcc dot gnu.org --- Author: uros Date: Tue Nov 8 19:06:54 2016 New Revision: 241974 URL: https://gcc.gnu.org/viewcvs?rev=241974&root=gcc&view=rev Log: PR target/70799 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Handle ASHIFT and LSHIFTRT. (dimode_scalar_chain::compute_convert_gain): Ditto. (dimode_scalar_chain::convert_insn): Ditto. testsuite/ChangeLog: PR target/70799 * gcc.target/i386/pr70799-2.c: New test. Added: trunk/gcc/testsuite/gcc.target/i386/pr70799-2.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c trunk/gcc/testsuite/ChangeLog
[Bug target/70799] STV pass does not convert DImode shifts and rotates
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70799 --- Comment #3 from Ilya Enkovich --- Author: ienkovich Date: Tue May 10 16:08:42 2016 New Revision: 236090 URL: https://gcc.gnu.org/viewcvs?rev=236090&root=gcc&view=rev Log: gcc/ PR target/70799 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow integer constants. (dimode_scalar_chain::vector_const_cost): New. (dimode_scalar_chain::compute_convert_gain): Handle constants. (dimode_scalar_chain::convert_op): Likewise. (dimode_scalar_chain::convert_insn): Likewise. gcc/testsuite/ PR target/70799 * gcc.target/i386/pr70799-1.c: New test. Added: trunk/gcc/testsuite/gcc.target/i386/pr70799-1.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c trunk/gcc/testsuite/ChangeLog
[Bug target/70799] STV pass does not convert DImode shifts and rotates
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70799 --- Comment #2 from Uroš Bizjak --- (In reply to Jakub Jelinek from comment #1) > I've been also surprised that the STV pass punts on moves of constants into > DImode registers, if it is not 0, sure, it has higher cost, because it needs > to be loaded from memory, but in the end together with enough other DImode > operations it can be still beneficial. This is tracked in PR 70763.
[Bug target/70799] STV pass does not convert DImode shifts and rotates
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70799 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #1 from Jakub Jelinek --- I've been also surprised that the STV pass punts on moves of constants into DImode registers, if it is not 0, sure, it has higher cost, because it needs to be loaded from memory, but in the end together with enough other DImode operations it can be still beneficial.