http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47013
--- Comment #6 from revital eres <eres at il dot ibm.com> 2010-12-27 14:00:54 UTC --- Looking more closely at sms-6.c it seems there is another issue which causes SMS to FAIL in the loop in foo function: Although the restrict keyword is attached to the pointers dependence edges are created between the write and read. (Please see the SMS dump file) The edges were not created in -r146278. I used -O2 -fmodulo-sched -fdump-rtl-sms -fno-auto-inc-dec -mno-update to compile on PowerPC.