Hi, When calling get_shiftadd_cost, the mult_op is stripped at caller places. We should look into unnecessary conversion in op1 before checking equality, otherwise it computes wrong shiftadd cost. This patch picks this small issue up. Bootstrap and test on x86_64 and aarch64 along with other patches. Is it OK? Thanks, bin 2015-08-31 Bin Cheng * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Look into unnecessary type conversion for OP1.