This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/81403] New: wrong code at -O3
- From: "babokin at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 11 Jul 2017 22:39:47 +0000
- Subject: [Bug tree-optimization/81403] New: wrong code at -O3
- Auto-submitted: auto-generated
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)