https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67028
Bug ID: 67028 Summary: combine bug. Different assumptions about subreg in different places. Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: renlin at gcc dot gnu.org Target Milestone: --- Created attachment 36067 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36067&action=edit test case This is a combine bug manifest on arm target. A test case is attached. The expected output of the test case should be: checksum = 1 However, with the following command line: arm-none-eabi-gcc -march=armv7-a -O3 test.c -specs=rdimon.specs -o a.out the output is: checksum = 0 It generates wrong code when the optimization level is: -O2, -O3, -Os -O0, -O1 works fine.