------- Comment #8 from froydnj at gcc dot gnu dot org 2009-08-26 15:50 ------- Even if the problems in expand are fixed, reassoc is still going to cause problems with the original testcase. From the dse1 dump:
D.2474_14 = (long long int) vLo_11; D.2475_15 = (long long int) c1_6; D.2476_16 = D.2474_14 * D.2475_15; D.2477_19 = (long long int) c2_8; D.2478_20 = D.2474_14 * D.2477_19; >From the reassoc1 dump right after: D.2474_14 = (long long int) vLo_11; D.2475_15 = (long long int) c1_6; D.2477_19 = (long long int) c2_8; D.2495_16 = D.2477_19 + D.2475_15; D.2495_20 = D.2495_16 * D.2474_14; So we've traded a multiplication for an addition, but we've also made it difficult to see that we could have used mulsidi3. -- froydnj at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |froydnj at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29274