https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105799
--- Comment #1 from Hongtao.liu <crazylht at gmail dot com> --- ((v * A) + B) * C is handled in distribute_and_simplify_rtx. -----cut from combine.c------- 6090 case MULT: 6091 /* If we have (mult (plus A B) C), apply the distributive law and then 6092 the inverse distributive law to see if things simplify. This 6093 occurs mostly in addresses, often when unrolling loops. */ 6094 6095 if (GET_CODE (XEXP (x, 0)) == PLUS) 6096 { 6097 rtx result = distribute_and_simplify_rtx (x, 0); 6098 if (result) 6099 return result; 6100 } -----cut end-------------- Not in simplify_binary_operation.