http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47470
--- Comment #2 from Tomer Levi <Tomer.Levi at nuvoton dot com> 2011-01-26 11:43:36 UTC --- Hi, The attached assembly was produced on the following machine: taln36-Amit<1015> gcc -v Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/specs Configured with: ./configure -prefix=/usr/ : (reconfigured) ./configure : (reconfigured) ./configure : (reconfigured) ./configure Thread model: single gcc version 3.1 In specific, i'm using CR16 architecture, which is based on GCC 3.3.2 (compiler backend is not under GNU, only Binutils). However, the behavior i'm describing is not related to the backend. I have no GCC 4.* installed, hence do not know whether the described behavior is reproducible using the latest compiler. I'll appreciate if you can verify this. BTW, is my assumption regarding loop pre-header is correct? If so, is there any way to avoid it, thus to save code size? Thanks.