$ cat ./decimal64.c
_Decimal64 x = 1;
if (x != x)
$ gcc -Wall -std=gnu99 -m32 -mpowerpc64 decimal64.c -o decimal64 -O
$ gcc -Wall -std=gnu99 -m32 -mpowerpc64 decimal64.c -o decimal64
(The lack of error with -O is due to obvious optimization; a "volatile" on the variable makes the error appear in every case.)
The problem doesn't appear with -m32 alone or -mpowerpc64 alone. Both are needed to make it appear.
$ gcc --version
gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8)
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.