------- Comment #7 from pinskia at gcc dot gnu dot org 2006-04-07 16:00 ------- grrrr, well this is why reusing the operand is not a good idea anyways this is a regression from when the builtins came in which was 4.1.0.
Well confirmed, a simple testcase is: int f(int *a, int b) { return __sync_fetch_and_add(a, b); } -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |aldyh at gcc dot gnu dot org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 GCC host triplet|x86_64-unknown-linux-gnu | GCC target triplet|powerpc-unknown-linux-gnuspe|powerpc-*-linux-gnuspe Last reconfirmed|0000-00-00 00:00:00 |2006-04-07 16:00:50 date| | Summary|Compiler generate incorrect |[4.1 Regression] Compiler |assembler |generate incorrect assembler | |for __sync_fetch-* builtins | |on e500 aka SPE Target Milestone|--- |4.1.1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27075