[Bug translation/57722] New: Floating point problems when building with no-sse and no-mmx
boris at dolgov dot name
gcc-bugzilla@gcc.gnu.org
Wed Jun 26 10:27:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57722
Bug ID: 57722
Summary: Floating point problems when building with no-sse and
no-mmx
Product: gcc
Version: 4.7.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: translation
Assignee: unassigned at gcc dot gnu.org
Reporter: boris at dolgov dot name
Hi!
I want to prevent gcc from generating code with xmm registers on 64bit system.
I use -mno-sse and -mno-mmx flags to achieve this.
But when the program is compiled using these flags, some strange problems
appear:
$ cat vect.c
#include <stdio.h>
int main()
{
double x1, y1, x2, y2, r0;
scanf("%lf%lf%lf%lf", &x1, &y1, &x2, &y2);
r0 = x1*y2 - x2*y1;
printf("%.10lf %d\n", r0, (int)(r0 == 0));
return 0;
}
$ gcc -o vect0 vect.c -Wall -Wextra
$ gcc -mno-mmx -mno-sse -o vect1 vect.c -Wall -Wextra
$ echo "1 0 0 1" | ./vect0
1.0000000000 0
$ echo "1 0 0 1" | ./vect1
0.0000000000 0
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.7.2/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ./configure
Thread model: posix
gcc version 4.7.2 (GCC)
What is the problem?
More information about the Gcc-bugs
mailing list