Created attachment 23275 [details] Test case in C Consider the following snippet compiled with -O3: int lsl_short(int f) { return f << 1; } gcc 4.3.3 is copying the value from r25:r24 (first parameter) to r19:r18, then moving back to r25:r24 (return value). Same for longs but with 4 registers. Expected: The lsl and rol should happen directly on r25:r24, just as they did in 4.2
Created attachment 23276 [details] gcc 4.3.3 assembler
Created attachment 23277 [details] gcc 4.2 assembler
Duplicate of PR52278 *** This bug has been marked as a duplicate of bug 52278 ***