I'm committing this cleanup patch to my PR 57134,57586 changes as obvious. That it is obvious can be seen from an assert in tree-ssa-operands.c get_asm_expr_operands().
/* This should have been split in gimplify_asm_expr. */ gcc_assert (!allows_reg || !is_inout); Bootstrapped, etc. powerpc64-linux. * stmt.c (expand_asm_operands): Revert part of 2013-09-24 special casing inout operands. Index: gcc/stmt.c =================================================================== --- gcc/stmt.c (revision 203053) +++ gcc/stmt.c (working copy) @@ -807,9 +807,7 @@ expand_asm_operands (tree string, tree outputs, tr || is_inout) { op = expand_expr (val, NULL_RTX, VOIDmode, - !allows_reg ? EXPAND_MEMORY - : !is_inout ? EXPAND_WRITE - : EXPAND_NORMAL); + !allows_reg ? EXPAND_MEMORY : EXPAND_WRITE); if (MEM_P (op)) op = validize_mem (op); -- Alan Modra Australia Development Lab, IBM