On Tue, Dec 15, 2015 at 10:32:08AM +0000, Wilco Dijkstra wrote: > ping > > This patch series generalizes CCMP by adding FCCMP support and enabling more > optimizations. > The first patch simplifies the representation of CCMP patterns by using > if-then-else which closely > matches real instruction semantics. As a result the existing special CC modes > and functions are no > longer required. The condition of the CCMP is the if condition which compares > the previously set > CC register. The then part does the compare like a normal compare. The else > part contains the > integer value of the AArch64 condition that must be set if the if condition > is false. > > ChangeLog: > 2015-11-12 Wilco Dijkstra <wdijk...@arm.com> > > * gcc/target.def (gen_ccmp_first): Update documentation. > (gen_ccmp_next): Likewise. > * gcc/doc/tm.texi (gen_ccmp_first): Update documentation. > (gen_ccmp_next): Likewise. > * gcc/ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of > expand_ccmp_expr_1. Improve comments. > * gcc/config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp. > (ccmp_ior<mode>): Remove pattern. > (cmp<mode>): Remove expand. > (cmp): Globalize pattern. > (cstorecc4): Use cc_register. > (mov<mode>cc): Remove ccmp_cc_register check. > * gcc/config/aarch64/aarch64.c (aarch64_get_condition_code_1): > Simplify after removal of CC_DNE/* modes. > (aarch64_ccmp_mode_to_code): Remove. > (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases. > In 'k' case use integer as condition. > (aarch64_nzcv_codes): Remove inverted cases. > (aarch64_code_to_ccmode): Remove. > (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct > comparison with CC register to be used in folowing CCMP/branch/CSEL. > (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP > pattern. Return the comparison with CC register. Invert conditions > when bitcode is OR. > * gcc/config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes. > * gcc/config/aarch64/predicates.md (ccmp_cc_register): Remove.
The AArch64 parts of this are OK. Thanks, James