http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55073
--- Comment #5 from Eric Batut <eric.batut at allegorithmic dot com> 2012-11-30 10:14:00 UTC --- Since this comes from several hours of stripping down a texture generation engine to the single function that provided different results, I must admit I have no idea what the correct return values are. What worries me more is that I still get two different set of values on a Tegra3 (Cortex-A9) after rebuilding pr55073.C with the build.sh script in the attached zipfile (and replacing the if-abort by printfs) : root@android:/data # ./repro_ko ./repro_ko [0] = 00000002 [1] = 00020000 [2] = FFFBFFFB [3] = FFFBFFFB root@android:/data # ./repro_ok ./repro_ok [0] = 00030003 [1] = 00030003 [2] = FFFAFFFA [3] = FFFAFFFA Were you directly targeting A15 when building the testcase? Can this enable/disable some optimization codepaths that would explain why we have different results ?