Hi, This is a short patch set to remove duplication across the ldp/stp generation code. In both cases there is no functional change, just a refactor of common sequences out to their own function, and a replacement of repeated work with loops. I think it makes for a cleanup, but I realise this is subjective. I've bootstrapped the two patches on aarch64-none-linux-gnu with no issues. OK? Thanks, James --- [AArch64 1/2] Refactor aarch64_operands_ok_for_ldpstp, aarch64_operands_adjust_ok_for_ldpstp 2016-05-17 James Greenhalgh * config/aarch64/aarch64.c (aarch64_extract_ldpstp_operands): New. (aarch64_ldpstp_ops_same_reg_class_p): Likewise. (aarch64_ldpstp_load_regs_clobber_base_p): Likewise. (aarch64_ldpstp_offsets_consecutive_p): Likewise. (aarch64_operands_ok_for_ldpstp_1): Likewise. (aarch64_operands_ok_for_ldpstp): Refactor to aarch64_operands_ok_for_ldpstp_1. (aarch64_operands_adjust_ok_for_ldpstp): Likewise. [Patch AArch64 2/2] Some more cleanup of ldp/stp generation 2016-05-17 James Greenhalgh * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Refactor.