[Bug tree-optimization/81403] New: wrong code at -O3
babokin at gmail dot com
gcc-bugzilla@gcc.gnu.org
Tue Jul 11 22:39:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81403
Bug ID: 81403
Summary: wrong code at -O3
Product: gcc
Version: 8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: babokin at gmail dot com
Target Milestone: ---
gcc rev250140, x86_64.
> cat f.cpp
#include <iostream>
short var_9 = 19581;
unsigned char var_33 = 21;
long int var_55 = 286697804684061197L;
long int var_59 = -1962393262513510540L;
long int var_71 = 4731868609112929952L;
long int var_773 = -4784633456247777769L;
short var_776 = 5894;
long int var_1321 = 7573221950916697355L;
unsigned char uc = 217;
void foo() {
if (var_55)
var_71 = 0;
if (var_9 != ~(0 < uc))
var_773 = 0;
else
var_776 = 1 / ~var_9 * -1;
if (var_33)
var_59 = ~var_9 & 10393;
var_1321 = ~var_9;
}
int main() {
foo();
std::cout << "var_59 = " << var_59 << " (8320 expected)\n";
return 0;
}
> g++ -w -O3 -o out f.cpp; ./out
var_59 = -19582 (8320 expected)
> g++ -w -O2 -o out f.cpp; ./out
var_59 = 8320 (8320 expected)
> g++ -w -O0 -o out f.cpp; ./out
var_59 = 8320 (8320 expected)
More information about the Gcc-bugs
mailing list