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


Reply via email to