https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71676
--- Comment #2 from Georg-Johann Lay <gjl at gcc dot gnu.org> --- Author: gjl Date: Tue Oct 25 08:35:17 2016 New Revision: 241504 URL: https://gcc.gnu.org/viewcvs?rev=241504&root=gcc&view=rev Log: gcc/ New avt target pass to work around performance loss by PR fix. PR target/71676 PR target/71678 * config/avr/avr.md (casesi_<mode>_sequence) [qi,hi]: New insn. (*cmp<mode>) [qi,qq,uqq,hi,hq,uhq,ha,uha]: Rename to cmp<mode>3. * config/avr/predicates.md (extend_operator): New. * config/avr/avr-passes.def (avr_pass_casesi): Register new pass. * config/avr/avr-protos.h (avr_casei_sequence_check_operands) (make_avr_pass_casesi): New prototypes. * config/avr/avr.c (print-rtl.h): Include it. (pass_data avr_pass_data_casesi): Data for new pass. (avr_pass_casesi): New class implementing rtl_opt_pass .avr-casesi. (make_avr_pass_casesi, avr_parallel_insn_from_insns) (avr_is_casesi_sequence, avr_casei_sequence_check_operands) (avr_optimize_casesi): New functions. gcc/testsuite/ PR target/71676 PR target/71678 * gcc.target/avr/pr71676-2.c: New test. Added: trunk/gcc/testsuite/gcc.target/avr/pr71676-2.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/avr/avr-passes.def trunk/gcc/config/avr/avr-protos.h trunk/gcc/config/avr/avr.c trunk/gcc/config/avr/avr.md trunk/gcc/config/avr/predicates.md trunk/gcc/testsuite/ChangeLog