Hi all, As part of investigating the codegen effects of a fix for PR 65932 I found we assign too high a cost for the sign-extending multiply instruction SMULBB. This is because we add the cost of a multiply-extend but then also recurse into the SIGN_EXTEND sub-expressions rather than the registers (or subregs) being sign-extended. This patch is a simple fix. The fix is right by itself, but in combination with patch 3 fix the gcc.target/arm/wmul-2.c testcase. Bootstrapped and tested on arm-none-linux-gnueabihf. Ok for trunk? Thanks, Kyrill 2016-01-22 Kyrylo Tkachov * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.