[Bug tree-optimization/104551] New: Wrong code with -O3 for skylake-avx512, icelake-server, and sapphirerapids

2022-02-15 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104551

Bug ID: 104551
   Summary: Wrong code with -O3 for skylake-avx512,
icelake-server, and sapphirerapids
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Reproducer (I was not able to merge it into a single file):
// func.cpp
extern unsigned var_11, var_178;
extern unsigned char arr_492[];
void test() {
  for (bool a = 0; a < (bool)var_11; a = 2)
for (unsigned b = 0; b < var_11;
 b += 1)
  var_178 = arr_492[b] ? arr_492[b] : (char) b;
}

// driver.cpp 
unsigned int var_11 = 16U;
unsigned int var_178 = 0;
unsigned char arr_492 [16];

void test();

int main() {
for (int i = 0; i < 16; ++i)
arr_492 [i] = (unsigned char)128;
test();
__builtin_printf("%u\n", var_178);
if (var_178 != 128)
__builtin_abort();
return 0;
}

Error:
>$ g++ -O0 func.cpp driver.cpp -march=skylake-avx512 && sde -skx -- ./a.out 
128
>$ g++ -O3 func.cpp driver.cpp -march=skylake-avx512 && sde -skx -- ./a.out 
4294967168
Aborted (core dumped)

g++ (git://gcc.gnu.org/git/gcc.git:master
58aeb75d4097010ad9bb72b964265b18ab284f93) 12.0.1 20220213 (experimental)

[Bug tree-optimization/103800] New: ICE in vectorizable_phi, at tree-vect-loop.c:7861 with -O3 -march=skylake-avx512

2021-12-22 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103800

Bug ID: 103800
   Summary: ICE in vectorizable_phi, at tree-vect-loop.c:7861 with
-O3 -march=skylake-avx512
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Link to the Compiler Explorer: https://godbolt.org/z/bWdof9c8s
Reproducer:
int a;
long b;
extern int c[], d[];
extern bool e[];
void f() {
  if (a)
;
  for (;;) {
for (int g = 2; g; g = a)
  d[g] = 0;
for (int h = 1; h < 13; h++)
  e[h] = b ? (short)c[4 + h - 1] : c[4 + h - 1];
  }
}


Error:
>$ g++ -O3 -march=skylake-avx512 -c func.cpp
during GIMPLE pass: slp
func.cpp: In function 'void f()':
func.cpp:5:6: internal compiler error: in vectorizable_phi, at
tree-vect-loop.c:7861
5 | void f() {
  |  ^
0x8bca05 vectorizable_phi(vec_info*, _stmt_vec_info*, gimple**, _slp_tree*,
vec*)
/testing/gcc/gcc_src_master/gcc/tree-vect-loop.c:7861
0x20abd84 vect_analyze_stmt(vec_info*, _stmt_vec_info*, bool*, _slp_tree*,
_slp_instance*, vec*)
/testing/gcc/gcc_src_master/gcc/tree-vect-stmts.c:11125
0x14a2186 vect_slp_analyze_node_operations_1
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:4481
0x14a2186 vect_slp_analyze_node_operations
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:4640
0x14a2097 vect_slp_analyze_node_operations
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:4620
0x14a2097 vect_slp_analyze_node_operations
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:4620
0x14a2097 vect_slp_analyze_node_operations
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:4620
0x14a4811 vect_slp_analyze_operations(vec_info*)
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:4879
0x14a9605 vect_slp_analyze_bb_1
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:5817
0x14a9605 vect_slp_region
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:5864
0x14aae33 vect_slp_bbs
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:6056
0x14ab22c vect_slp_function(function*)
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:6144
0x14b1c82 execute
/testing/gcc/gcc_src_master/gcc/tree-vectorizer.c:1503
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

GCC version:
gcc version 12.0.0 20211219 (fcbf94a5be9e0c1ecad92da773a6632b86b7f70a) (GCC)

[Bug tree-optimization/103517] New: ICE in as_a, at is-a.h:242 with -O2 -march=skylake-avx512

2021-12-01 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103517

Bug ID: 103517
   Summary: ICE in as_a, at is-a.h:242 with -O2
-march=skylake-avx512
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

The same error exists for Sapphire Rapids

Reproducer:
int a;
short b, c;
extern short d[];
void e() {
  for (short f = 1; f < (short)a; f += 2)
if (d[f + 1]) {
  b = d[f];
  c = d[f + 1];
}
}

Error:
>$ g++ -O2 -march=skylake-avx512 -c func.cpp
during GIMPLE pass: vect
func.cpp: In function 'void e()':
func.cpp:4:6: internal compiler error: in as_a, at is-a.h:242
4 | void e() {
  |  ^
0x8bc06a gphi const* as_a(gimple const*)
/testing/gcc/gcc_src_master/gcc/is-a.h:242
0x8bc684 gcall* as_a(gimple*)
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:991
0x8bc684 vect_build_slp_tree_1
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:1155
0x14880cc vect_build_slp_tree_2
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:1711
0x1487a0c vect_build_slp_tree
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:1544
0x144 vect_build_slp_tree_2
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:2206
0x1487a0c vect_build_slp_tree
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:1544
0x148c230 vect_build_slp_instance
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:3019
0x148d6b5 vect_analyze_slp_instance
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:3339
0x14920d4 vect_analyze_slp(vec_info*, unsigned int)
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:3422
0x146d24a vect_analyze_loop_2
/testing/gcc/gcc_src_master/gcc/tree-vect-loop.c:2331
0x146eef9 vect_analyze_loop_1
/testing/gcc/gcc_src_master/gcc/tree-vect-loop.c:2830
0x146f40a vect_analyze_loop(loop*, vec_info_shared*)
/testing/gcc/gcc_src_master/gcc/tree-vect-loop.c:2952
0x14a3359 try_vectorize_loop_1
/testing/gcc/gcc_src_master/gcc/tree-vectorizer.c:1047
0x14a3359 try_vectorize_loop
/testing/gcc/gcc_src_master/gcc/tree-vectorizer.c:1162
0x14a3fb4 execute
/testing/gcc/gcc_src_master/gcc/tree-vectorizer.c:1278

gcc version 12.0.0 20211130 (6b8ecbc6d6652d061d7c72c64352d51eca2df6ca) (GCC)

[Bug tree-optimization/103489] New: ICE with -O3 in operator[], at vec.h:889

2021-11-30 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103489

Bug ID: 103489
   Summary: ICE with -O3 in operator[], at vec.h:889
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

The same reproducer also triggers ICE for Sapphire Rapids with a different
stack trace.

Link to the Compiler Explorer: https://godbolt.org/z/nxqPhnnoe

Reproducer:
bool a[80];
short b, f;
void g(short h[][8][16]) {
  for (bool c = 0; c < b;)
for (bool d = 0; d < (bool)f; d = 1)
  for (short e = 0; e < 16; e++)
a[e] = h[b][1][e];
}

Error:
>$ g++ -O3 -c func.cpp
during GIMPLE pass: slp
func.cpp: In function 'void g(short int (*)[8][16])':
func.cpp:3:6: internal compiler error: in operator[], at vec.h:889
3 | void g(short h[][8][16]) {
  |  ^
0x8b7e0a vec::operator[](unsigned int)
/testing/gcc/gcc_src_master/gcc/vec.h:889
0x8b896f vec::operator[](unsigned int)
/testing/gcc/gcc_src_master/gcc/tree-vect-loop.c:7877
0x8b896f vec::operator[](unsigned int)
/testing/gcc/gcc_src_master/gcc/vec.h:1495
0x8b896f vectorizable_phi(vec_info*, _stmt_vec_info*, gimple**, _slp_tree*,
vec*)
/testing/gcc/gcc_src_master/gcc/tree-vect-loop.c:7869
0x2093485 vect_transform_stmt(vec_info*, _stmt_vec_info*,
gimple_stmt_iterator*, _slp_tree*, _slp_instance*)
/testing/gcc/gcc_src_master/gcc/tree-vect-stmts.c:11174
0x1485797 vect_schedule_slp_node
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:7252
0x1496756 vect_schedule_scc
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:7450
0x14964e9 vect_schedule_scc
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:7431
0x14964e9 vect_schedule_scc
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:7431
0x1496daf vect_schedule_slp(vec_info*, vec<_slp_instance*, va_heap, vl_ptr>
const&)
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:7567
0x1498573 vect_slp_region
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:5926
0x1499503 vect_slp_bbs
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:6038
0x14998fc vect_slp_function(function*)
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:6126
0x14a02f2 execute
/testing/gcc/gcc_src_master/gcc/tree-vectorizer.c:1503

Sapphire Rapids Error:
>$ g++ -O3 -c func.cpp -march=sapphirerapids
func.cpp: In function 'void g(short int (*)[8][16])':
func.cpp:3:6: error: incompatible types in 'PHI' argument 1
3 | void g(short h[][8][16]) {
  |  ^
vector(16) unsigned char

vector(16) 

vect_a_I_lsm.30_92 = PHI <_97(2), mask__28.29_93(4)>
during GIMPLE pass: slp
func.cpp:3:6: internal compiler error: verify_gimple failed
0x123e31a verify_gimple_in_cfg(function*, bool)
/testing/gcc/gcc_src_master/gcc/tree-cfg.c:5578
0x110638f execute_function_todo
/testing/gcc/gcc_src_master/gcc/passes.c:2084
0x110693b execute_todo
/testing/gcc/gcc_src_master/gcc/passes.c:2138

gcc version 12.0.0 20211129 (ca5667e867252db3c8642ee90f55427149cd92b6) (GCC)

[Bug tree-optimization/103399] New: [12 Regression] Wrong code with -O2

2021-11-23 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103399

Bug ID: 103399
   Summary: [12 Regression] Wrong code with -O2
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Link to the Compiler Explorer: https://godbolt.org/z/3GE6fKvYr

Reproducer:

#include 
char a = 0;
long long b[8][10][18];
void e(int, long long[][10][18]) __attribute__((noipa));
void e(int f, long long g[][10][18]) {
  for (int d = 0; d < f; d += 3LL)
for (int c = 0; c < ((f ? g[5][0][0] : 0) ^ g[5][0][0]) + 1; c++)
  a = 42;
}
int main() {
  for (size_t i = 0; i < 8; ++i)
for (size_t k = 0; k < 10; ++k)
  for (size_t j = 0; j < 8; ++j)
b[i][k][j] = -1311387439415292401LL;
  e(8, b);
  printf("%u\n", a);
  if (a != 42)
__builtin_abort();
}

Error:
>$ g++ -O1 driver.cpp && ./a.out
42
>$ g++ -O2 driver.cpp && ./a.out
0

gcc version 12.0.0 20211123 (721d8b9e26bf8205c1f2125c2626919a408cdbe4) (GCC)

[Bug tree-optimization/103361] New: ICE in adjust_unroll_factor, at gimple-loop-jam.c:407

2021-11-22 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103361

Bug ID: 103361
   Summary: ICE in adjust_unroll_factor, at gimple-loop-jam.c:407
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Link to the Compiler Explorer: https://godbolt.org/z/jbKEn7Tdq

Reproducer:
char a, b;
extern unsigned short c[];
extern bool d[];
const unsigned short &e(const unsigned short &f, const unsigned short &g) {
  if (g < f)
return g;
  return f;
}
void k() {
  for (int h = 0; b; h += 3)
for (unsigned long i = 0; i < 11104842004558084287ULL;
 i += -11104842004558084300ULL)
  for (bool j(e(6, e(6, c[h + i]))); j < (bool)a; j = 7)
d[7] = 0;
}

Error:
>$ g++ -O3 -c func.cpp
during GIMPLE pass: unrolljam
func.cpp: In function 'void k()':
func.cpp:9:6: internal compiler error: in adjust_unroll_factor, at
gimple-loop-jam.c:407
9 | void k() {
  |  ^
0x93ebce adjust_unroll_factor
/testing/gcc/gcc_src_master/gcc/gimple-loop-jam.c:407
0x93ebce tree_loop_unroll_and_jam
/testing/gcc/gcc_src_master/gcc/gimple-loop-jam.c:551
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

gcc version 12.0.0 20211121 (8fef6f720a5a0a056abfa986ba870bb406ab4716) (GCC)

[Bug tree-optimization/103321] [12 regression] ICE at tree-ssa.c:1211 after r12-5300

2021-11-18 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103321

Vsevolod Livinskiy  changed:

   What|Removed |Added

 CC||vsevolod.livinskij at frtk dot 
ru

--- Comment #4 from Vsevolod Livinskiy  ---
The same error can be triggered for X86.
Here is the link to the Compiler Explorer: https://godbolt.org/z/8zMhfhs5o

This reproducer was found with YARPGen.

Reproducer:
long a;
short b;
extern unsigned long d[];
const unsigned long long &e(const unsigned long long &f,
const unsigned long long &g) {
  if (f < g)
return g;
  return f;
}
const unsigned long long &h(const unsigned long long &f,
const unsigned long long &g) {
  return f < g ? f : g;
}
void j() {
  for (int i = 0;; i = 8)
d[i] = h(e(a, c[i] && b), 7);
}

Error:
>$ g++ -O2 -c func.cpp
func.cpp: In function 'void j()':
func.cpp:15:6: error: definition in block 5 does not dominate use in block 3
   15 | void j() {
  |  ^
for SSA_NAME: _23 in statement:
_6 = PHI <_4(5), _23(3), _23(4)>
PHI argument
_23
for PHI node
_6 = PHI <_4(5), _23(3), _23(4)>
during GIMPLE pass: phiopt
func.cpp:15:6: internal compiler error: verify_ssa failed
0x141284f verify_ssa(bool, bool)
/testing/gcc/gcc_src_master/gcc/tree-ssa.c:1211
0x10e86d5 execute_function_todo
/testing/gcc/gcc_src_master/gcc/passes.c:2049
0x10e901b execute_todo
/testing/gcc/gcc_src_master/gcc/passes.c:2096
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

gcc version 12.0.0 2028 (d6ec661e3931773e2f571ed4f6dd8b0402d8687d) (GCC)

[Bug tree-optimization/103122] New: [12 Regression] ICE in fill_block_cache, at gimple-range-cache.cc:1277 with -O2

2021-11-07 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103122

Bug ID: 103122
   Summary: [12 Regression] ICE in fill_block_cache, at
gimple-range-cache.cc:1277 with -O2
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Link to the Compiler Explorer: https://godbolt.org/z/GWbbq3sKK
Reproducer:
unsigned a;
int b;
short c;
void d(long) {
  for (bool e = (bool)c - 1; e < (bool)b - 1; e += 0)
;
  if (a) {
for (char f = 0; f < 7; f = 7)
  for (int g = 0; g < c; g += 10)
;
d(-!c);
  }
}

Error:
>$ g++ -O2 -c func.cpp
during GIMPLE pass: evrp
func.cpp: In function 'void d(long int)':
func.cpp:13:1: internal compiler error: in fill_block_cache, at
gimple-range-cache.cc:1277
   13 | }
  | ^
0x9e79d7 ranger_cache::fill_block_cache(tree_node*, basic_block_def*,
basic_block_def*)
/testing/gcc/gcc_src_master/gcc/gimple-range-cache.cc:1277
0x1ed1ecd ranger_cache::block_range(irange&, basic_block_def*, tree_node*,
bool)
/testing/gcc/gcc_src_master/gcc/gimple-range-cache.cc:1107
0x1ecc4f8 gimple_ranger::range_of_expr(irange&, tree_node*, gimple*)
/testing/gcc/gcc_src_master/gcc/gimple-range.cc:92
0xee7dff expr_not_equal_to(tree_node*, generic_wide_int
const&)
/testing/gcc/gcc_src_master/gcc/fold-const.c:10733
0xeec8e3 tree_single_nonzero_warnv_p(tree_node*, bool*)
/testing/gcc/gcc_src_master/gcc/fold-const.c:15244
0xeed076 tree_expr_nonzero_p(tree_node*)
/testing/gcc/gcc_src_master/gcc/fold-const.c:10706
0xefe7a8 fold_binary_loc(unsigned int, tree_code, tree_node*, tree_node*,
tree_node*)
/testing/gcc/gcc_src_master/gcc/fold-const.c:12284
0xf0254d fold_build2_loc(unsigned int, tree_code, tree_node*, tree_node*,
tree_node*)
/testing/gcc/gcc_src_master/gcc/fold-const.c:13774
0x13fe25c simplify_using_initial_conditions(loop*, tree_node*)
/testing/gcc/gcc_src_master/gcc/tree-ssa-loop-niter.c:2353
0x1404cd7 simplify_using_initial_conditions(loop*, tree_node*)
/testing/gcc/gcc_src_master/gcc/tree-ssa-loop-niter.c:2333
0x1404cd7 number_of_iterations_exit_assumptions(loop*, edge_def*,
tree_niter_desc*, gcond**, bool, basic_block_def**)
/testing/gcc/gcc_src_master/gcc/tree-ssa-loop-niter.c:2590
0x1405be2 number_of_iterations_exit_assumptions(loop*, edge_def*,
tree_niter_desc*, gcond**, bool, basic_block_def**)
/testing/gcc/gcc_src_master/gcc/tree-ssa-loop-niter.c:2825
0x1405be2 number_of_iterations_exit(loop*, edge_def*, tree_niter_desc*, bool,
bool, basic_block_def**)
/testing/gcc/gcc_src_master/gcc/tree-ssa-loop-niter.c:2812
0x135f6f0 number_of_latch_executions(loop*)
/testing/gcc/gcc_src_master/gcc/tree-scalar-evolution.c:2813
0x1405ef5 estimate_numbers_of_iterations(loop*)
/testing/gcc/gcc_src_master/gcc/tree-ssa-loop-niter.c:4356
0x1408c87 max_loop_iterations(loop*,
generic_wide_int >*)
/testing/gcc/gcc_src_master/gcc/tree-ssa-loop-niter.c:4462
0x15d2f6f bounds_of_var_in_loop(tree_node**, tree_node**, range_query*, loop*,
gimple*, tree_node*)
/testing/gcc/gcc_src_master/gcc/vr-values.c:1708
0x1ed6641 fold_using_range::range_of_ssa_name_with_loop_info(irange&,
tree_node*, loop*, gphi*, fur_source&)
/testing/gcc/gcc_src_master/gcc/gimple-range-fold.cc:1282
0x1ed6e1e fold_using_range::range_of_phi(irange&, gphi*, fur_source&)
/testing/gcc/gcc_src_master/gcc/gimple-range-fold.cc:837
0x1ed8e50 fold_using_range::fold_stmt(irange&, gimple*, fur_source&,
tree_node*)
/testing/gcc/gcc_src_master/gcc/gimple-range-fold.cc:554
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

GCC version:
gcc version 12.0.0 20211107 (9defce622893f87d954e0089e0ea79e1e388a480) (GCC)

[Bug tree-optimization/103119] New: ICE in get_imports, at gimple-range-gori.cc:230

2021-11-07 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103119

Bug ID: 103119
   Summary: ICE in get_imports, at gimple-range-gori.cc:230
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

The bug is not reproducible on the trunk anymore (the reduction process took
forever).
I don't know if it was fixed or became latent. Feel free to close it if it is
not relevant anymore.

Reproducer:
unsigned short a;
bool b;
int h, f;
extern bool d[][1];
char g;
void i() {
  for (short c = 0; c < 10; c += 3)
for (unsigned e = 0; e < a; e = (d[c][0] ? true : 5) * (6021496ULL * b) ?:
f)
  h = g;
}

Error:
>$ g++ -O2 -c func.cpp
during GIMPLE pass: vrp
func.cpp: In function 'void i()':
func.cpp:6:6: internal compiler error: in get_imports, at
gimple-range-gori.cc:230
6 | void i() {
  |  ^
0x9e98e5 range_def_chain::get_imports(tree_node*)
/testing/gcc/gcc_src_master/gcc/gimple-range-gori.cc:230
0x1edc480 range_def_chain::register_dependency(tree_node*, tree_node*,
basic_block_def*)
/testing/gcc/gcc_src_master/gcc/gimple-range-gori.cc:288
0x1edb976 range_def_chain::get_def_chain(tree_node*)
/testing/gcc/gcc_src_master/gcc/gimple-range-gori.cc:383
0x1edbf98 range_def_chain::in_chain_p(tree_node*, tree_node*)
/testing/gcc/gcc_src_master/gcc/gimple-range-gori.cc:198
0x1ede29b gori_compute::compute_operand_range(irange&, gimple*, irange const&,
tree_node*, fur_source&)
/testing/gcc/gcc_src_master/gcc/gimple-range-gori.cc:725
0x1edef21 gori_compute::compute_operand1_range(irange&, gimple*, irange const&,
tree_node*, fur_source&)
/testing/gcc/gcc_src_master/gcc/gimple-range-gori.cc:1078
0x1ede699 gori_compute::compute_operand_range(irange&, gimple*, irange const&,
tree_node*, fur_source&)
/testing/gcc/gcc_src_master/gcc/gimple-range-gori.cc:761
0x1edf989 gori_compute::outgoing_edge_range_p(irange&, edge_def*, tree_node*,
range_query&)
/testing/gcc/gcc_src_master/gcc/gimple-range-gori.cc:1259
0x1ed28c5 ranger_cache::range_on_edge(irange&, edge_def*, tree_node*)
/testing/gcc/gcc_src_master/gcc/gimple-range-cache.cc:983
0x1ed2b69 ranger_cache::propagate_cache(tree_node*)
/testing/gcc/gcc_src_master/gcc/gimple-range-cache.cc:1082
0x1ecdd9d gimple_ranger::range_of_stmt(irange&, gimple*, tree_node*)
/testing/gcc/gcc_src_master/gcc/gimple-range.cc:280
0x15d1934 simplify_using_ranges::fold_cond(gcond*)
/testing/gcc/gcc_src_master/gcc/vr-values.c:3492
0x15d1ea8 simplify_using_ranges::simplify_cond_using_ranges_1(gcond*)
/testing/gcc/gcc_src_master/gcc/vr-values.c:3568
0x15d6f87 simplify_using_ranges::simplify(gimple_stmt_iterator*)
/testing/gcc/gcc_src_master/gcc/vr-values.c:4386
0x154e3c8 rvrp_folder::fold_stmt(gimple_stmt_iterator*)
/testing/gcc/gcc_src_master/gcc/tree-vrp.c:4324
0x14434d6 substitute_and_fold_dom_walker::before_dom_children(basic_block_def*)
/testing/gcc/gcc_src_master/gcc/tree-ssa-propagate.c:870
0x1e9c847 dom_walker::walk(basic_block_def*)
/testing/gcc/gcc_src_master/gcc/domwalk.c:309
0x1442689 substitute_and_fold_engine::substitute_and_fold(basic_block_def*)
/testing/gcc/gcc_src_master/gcc/tree-ssa-propagate.c:987
0x15442c1 execute_ranger_vrp(function*, bool)
/testing/gcc/gcc_src_master/gcc/tree-vrp.c:4349
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

GCC version:
gcc version 12.0.0 20211105 (614b39757b8b61f70ac1c666edb7a01a5fc19cd4) (GCC)

[Bug ipa/103073] [12 Regression] ICE in insert_access, at ipa-modref-tree.h:578 since r12-4401-gfecd145359fc981b

2021-11-04 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103073

--- Comment #4 from Vsevolod Livinskiy  ---
(In reply to Martin Liška from comment #2)
> Started with r12-4401-gfecd145359fc981b.
> 
> @Vsevolod: Is it a yarpgen test-case?

Yes. I've added stencil support recently, but it was a surprise to trigger a
bug in IPA.

BTW, should I add new bugs to the meta-bug before or after they were confirmed?

[Bug ipa/103073] New: [12 Regression] ICE in insert_access, at ipa-modref-tree.h:578

2021-11-03 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103073

Bug ID: 103073
   Summary: [12 Regression] ICE in insert_access, at
ipa-modref-tree.h:578
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ipa
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
CC: marxin at gcc dot gnu.org
  Target Milestone: ---

I'm not sure about the component. Would you mind checking and fixing it in case
it is wrong?

Link to the Compiler Explorer: https://godbolt.org/z/K17Grnez9

Reproducer:
int a;
void b(bool c[], char d[], bool g[][55][21]) {
  for (signed e = 0; e < 11; e += 3)
for (unsigned f = c[0] + 1; f < d[0]; f += 3)
  a = g[0][e][f + 2];
}

Error:
>$ g++ -c func.cpp -O3
during GIMPLE pass: modref
func.cpp: In function 'void b(bool*, char*, bool (*)[55][21])':
func.cpp:2:6: internal compiler error: in insert_access, at
ipa-modref-tree.h:578
2 | void b(bool c[], char d[], bool g[][55][21]) {
  |  ^
0x103ae7a modref_ref_node::insert_access(modref_access_node, unsigned
long, bool)
/testing/gcc/gcc_src_master/gcc/ipa-modref-tree.h:578
0x103b16d modref_tree::insert(int, int, modref_access_node, bool)
/testing/gcc/gcc_src_master/gcc/ipa-modref-tree.h:848
0x102cafe record_access
/testing/gcc/gcc_src_master/gcc/ipa-modref.c:758
0x102d7ff analyze_load
/testing/gcc/gcc_src_master/gcc/ipa-modref.c:1262
0xf84246 walk_stmt_load_store_addr_ops(gimple*, void*, bool (*)(gimple*,
tree_node*, tree_node*, void*), bool (*)(gimple*, tree_node*, tree_node*,
void*), bool (*)(gimple*, tree_node*, tree_node*, void*))
/testing/gcc/gcc_src_master/gcc/gimple-walk.c:800
0x1034872 analyze_stmt
/testing/gcc/gcc_src_master/gcc/ipa-modref.c:1313
0x1034872 analyze_function
/testing/gcc/gcc_src_master/gcc/ipa-modref.c:2366
0x1035e21 execute
/testing/gcc/gcc_src_master/gcc/ipa-modref.c:3213
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

GCC version:
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/testing/gcc/bin_master/libexec/gcc/x86_64-pc-linux-gnu/12.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /testing/gcc/gcc_src_master/configure --enable-multilib
--prefix=/testing/gcc/bin_master --disable-bootstrap
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.0.0 20211103 (62af7d9402f551fa708125fafed2950d8912b25e) (GCC)

[Bug tree-optimization/103037] New: [11/12 Regression] Wrong code with -O2

2021-11-02 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103037

Bug ID: 103037
   Summary: [11/12 Regression] Wrong code with -O2
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Link to the Compiler Explorer: https://godbolt.org/z/eaGzsPnax

Reproducer:
#include 

short var_3 = 2;
unsigned char var_9 = 23;
unsigned short var_11;
unsigned short arr_4 [23];

void test() __attribute__((noipa));

const unsigned short &min(unsigned short &d, const unsigned short &e) {
  return e < d ? e : d;
}

void test() {
  for (int a = 0; a < var_9; a += 3)
  var_11 = min(arr_4[a], 1) / (arr_4[a] ? arr_4[a] : var_3);
}


int main() {
for (size_t i_0 = 0; i_0 < 23; ++i_0)
arr_4 [i_0] = 2;
test();
printf("%hu\n", var_11);
if (var_11 != 0)
__builtin_abort();

}

Error:
>$ g++ driver.cpp -O0 && ./a.out
0
>$ g++ driver.cpp -O2 && ./a.out
1

GCC version:
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/testing/gcc/bin_master/libexec/gcc/x86_64-pc-linux-gnu/12.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /testing/gcc/gcc_src_master/configure --enable-multilib
--prefix=/testing/gcc/bin_master --disable-bootstrap
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.0.0 20211101 (679652a77da60078392a834ed4b6b910127dbf24) (GCC)

[Bug tree-optimization/95916] [11 Regression] ICE during GIMPLE pass: slp : verify_ssa failed

2021-11-01 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95916

Richard Biener  changed:

   What|Removed |Added

 CC||dcb314 at hotmail dot com

Vsevolod Livinskiy  changed:

   What|Removed |Added

 Blocks||103035

--- Comment #6 from Richard Biener  ---
*** Bug 95987 has been marked as a duplicate of this bug. ***


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103035
[Bug 103035] [meta-bug] YARPGen bugs

[Bug tree-optimization/103035] New: [meta-bug] YARPGen bugs

2021-11-01 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103035

Bug ID: 103035
   Summary: [meta-bug] YARPGen bugs
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

This is a meta-bug that is supposed to keep track of bugs that were found with
YARPGen (https://github.com/intel/yarpgen).

YARPGen is a random program generator, which produces correct runnable C/C++.
We use it to fuzz GCC and other compilers.

Special thanks to Martin Liška for submitting some of them.

If you use YARPGen to report a bug, please add it to this meta-bug.

[Bug tree-optimization/102920] New: [12 Regression] Wrong code with -O3

2021-10-24 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102920

Bug ID: 102920
   Summary: [12 Regression] Wrong code with -O3
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

https://godbolt.org/z/qn3dsxsW8

Reproducer:
#include 

unsigned short a = 42;
unsigned short b = 1;
long long int c = 1;
unsigned char var_120;
unsigned char var_123;

void test(unsigned short a, unsigned short b, long long int c)
__attribute__((noipa));

void test(unsigned short a, unsigned short b, long long c) {
for (char i = 0; i < (char)c; i += 5)
if (!b)
var_120 = a;
else
var_123 = a;
}

int main() {
test(a, b, c);
printf("%hhu\n", var_123);
//if (var_123 != 42)
//__builtin_abort();
}

Error:
>$ g++ -O3 small.cpp && ./a.out
0
>$ g++ -O2 small.cpp && ./a.out
42

GCC version:
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/testing/gcc/bin_master/libexec/gcc/x86_64-pc-linux-gnu/12.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /testing/gcc/gcc_src_master/configure --enable-multilib
--prefix=/testing/gcc/bin_master --disable-bootstrap
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.0.0 20211023 (experimental) (GCC) 
root@abe71269b867:/testing/result/S_1635079215/reduce# cat
/testing/gcc/gcc_rev.txt 
git://gcc.gnu.org/git/gcc.git:master
e3725624ec0735996a18e1a90317e230bef899ac

[Bug tree-optimization/102788] New: Wrong code with -O3

2021-10-15 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102788

Bug ID: 102788
   Summary: Wrong code with -O3
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Link to the Compiler Explorer: https://godbolt.org/z/78ab77Env

Reproducer:
#include 

unsigned long long int var_4 = 235;
unsigned long long int var_5 = 74;
signed char var_12 = -99;
unsigned long long int var_349;
unsigned char var_645;
void test();

const unsigned long long &min(const unsigned long long &a, const unsigned long
long &b) {
  return b < a ? b : a;
}

void test() __attribute__((noipa));
void test() {
for (short c = var_12; c; c += 5)
  ; 
for (int e = 0; e < 12; e += 1) {
  var_349 = var_4 ? 235 : 74;
  var_645 = min((unsigned long long)true, var_5 ? var_12 : var_4);
}
}

int main() {
test();
printf("%d\n", (int)var_645);
//if (var_645 != 1)
//  __builtin_abort();
}

Error:
>$g++ -O2 small.cpp && ./a.out 
1
>$g++ -O3 small.cpp && ./a.out 
255

GCC version:
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/testing/gcc/bin_master/libexec/gcc/x86_64-pc-linux-gnu/12.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /testing/gcc/gcc_src_master/configure --enable-multilib
--prefix=/testing/gcc/bin_master --disable-bootstrap
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.0.0 20211011 (30cce6f65a77b8eaa22f3efff7f1ba54858106f9) (GCC)

[Bug tree-optimization/102696] New: ICE in vect_build_slp_tree, at tree-vect-slp.c:1551 for skylake-avx512 and icelake-server

2021-10-11 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102696

Bug ID: 102696
   Summary: ICE in vect_build_slp_tree, at tree-vect-slp.c:1551
for skylake-avx512 and icelake-server
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Link to the Compiler Explorer:
https://godbolt.org/z/WhYP35KKT

Reproducer:

int a;
extern bool b[][14];
char h;
void f(short g[][14]) {
for (short d = h; d < 21; d += 1)
  for (unsigned char e = 0; e < 14; e += 1) {
a = 0;
b[d][e] = g[d][e];
  }
}

Error:
>$ g++ -c -O3 -march=skylake-avx512 func.cpp
during GIMPLE pass: slp
func.cpp: In function 'void f(short int (*)[14])':
func.cpp:4:6: internal compiler error: in vect_build_slp_tree, at
tree-vect-slp.c:1551
4 | void f(short g[][14]) {
  |  ^
0x153e92a vect_build_slp_tree
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:1551
0x153ee59 vect_build_slp_tree_2
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:2199
0x153e41c vect_build_slp_tree
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:1532
0x153ee59 vect_build_slp_tree_2
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:2199
0x153e41c vect_build_slp_tree
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:1532
0x153ee59 vect_build_slp_tree_2
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:2199
0x153e41c vect_build_slp_tree
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:1532
0x153ee59 vect_build_slp_tree_2
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:2199
0x153e41c vect_build_slp_tree
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:1532
0x1543ac2 vect_build_slp_instance
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:3012
0x1544d35 vect_analyze_slp_instance
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:3332
0x1543d96 vect_build_slp_instance
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:3230
0x1544d35 vect_analyze_slp_instance
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:3332
0x1543d96 vect_build_slp_instance
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:3230
0x1544d35 vect_analyze_slp_instance
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:3332
0x154979a vect_analyze_slp(vec_info*, unsigned int)
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:3365
0x154d316 vect_slp_analyze_bb_1
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:5746
0x154d316 vect_slp_region
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:5848
0x154f495 vect_slp_bbs
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:6040
0x154f799 vect_slp_function(function*)
/testing/gcc/gcc_src_master/gcc/tree-vect-slp.c:6128
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
root@86380205c3f4:/testing/result/S_3142105512/reduce# g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/testing/gcc/bin_master/libexec/gcc/x86_64-pc-linux-gnu/12.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /testing/gcc/gcc_src_master/configure --enable-multilib
--prefix=/testing/gcc/bin_master --disable-bootstrap
Thread model: posix
Supported LTO compression algorithms: zlib

gcc version 12.0.0 20211011 (30cce6f65a77b8eaa22f3efff7f1ba54858106f9) (GCC)

[Bug tree-optimization/102622] New: Wrong code with -O3 for skylake-avx512 and icelake-server

2021-10-05 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102622

Bug ID: 102622
   Summary: Wrong code with -O3 for skylake-avx512 and
icelake-server
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Reproducer:
// func.cpp
#include 

extern int var_20, var_22;
extern short arr_32[];
extern char arr_45[];

void test(int a, unsigned b, long long *c) {
  for (short d = 0; d < 13; d++) {
for (int e = 0; e < a; e += 3)
  var_20 = 0;
if (std::max(b, unsigned((short)b))) {
  arr_32[d] = 0;
  var_22 = *c;
}
for (unsigned f = 0; f < 69; f += 4)
  arr_45[f] = 0;
  }
}

driver.cpp
#include 

unsigned long long int a = 10693271954245845448ULL;
unsigned int b = 1144022456U;
long long int c = 42;
int var_20 = 0;
long long int var_22 = 0;
unsigned short arr_32 [13];
unsigned char arr_45 [69];

void test(int a, unsigned int b, long long int* c);

int main() {
test(a, b, &c);
printf("%llu\n", var_22);
}

Error:
>$ g++ -O3 -march=skylake-avx512 func.cpp driver.cpp && sde -skx -- ./a.out 
0
>$ g++ -O2 -march=skylake-avx512 func.cpp driver.cpp && sde -skx -- ./a.out 
42

GCC version:
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/testing/gcc/bin/libexec/gcc/x86_64-pc-linux-gnu/12.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /testing/gcc/gcc_src/configure --enable-multilib
--prefix=/testing/gcc/bin --disable-bootstrap
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.0.0 20211004 (154fd0896ef22fcf5235e35e2b7953947a33) (GCC)

[Bug tree-optimization/102572] New: ICE for skx in vect_build_gather_load_calls, at tree-vect-stmts.c:2835

2021-10-02 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102572

Bug ID: 102572
   Summary: ICE for skx in vect_build_gather_load_calls, at
tree-vect-stmts.c:2835
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Reproducer:
int a, b, c, f;
void g(bool h, int d[][5]) {
  for (short i = f; i; i += 1) {
a = h && d[0][i];
for (int j = 0; j < 4; j += c)
  b = 0;
  }
}

Error:

>$ g++ -O3 -march=skylake-avx512 -c func.cpp
during GIMPLE pass: vect
func.cpp: In function 'void g(bool, int (*)[5])':
func.cpp:2:6: internal compiler error: in vect_build_gather_load_calls, at
tree-vect-stmts.c:2835
2 | void g(bool h, int d[][5]) {
  |  ^
0x906a36 vect_build_gather_load_calls
/testing/gcc/gcc_src/gcc/tree-vect-stmts.c:2835
0x906a36 vectorizable_load
/testing/gcc/gcc_src/gcc/tree-vect-stmts.c:8785
0x1500240 vect_transform_stmt(vec_info*, _stmt_vec_info*,
gimple_stmt_iterator*, _slp_tree*, _slp_instance*)
/testing/gcc/gcc_src/gcc/tree-vect-stmts.c:11060
0x1503e6a vect_transform_loop_stmt
/testing/gcc/gcc_src/gcc/tree-vect-loop.c:9362
0x151fd67 vect_transform_loop(_loop_vec_info*, gimple*)
/testing/gcc/gcc_src/gcc/tree-vect-loop.c:9798
0x1553a8f try_vectorize_loop_1
/testing/gcc/gcc_src/gcc/tree-vectorizer.c:1109
0x1554591 vectorize_loops()
/testing/gcc/gcc_src/gcc/tree-vectorizer.c:1248

GCC version:
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/testing/gcc/bin/libexec/gcc/x86_64-pc-linux-gnu/12.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /testing/gcc/gcc_src/configure --enable-multilib
--prefix=/testing/gcc/bin --disable-bootstrap
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.0.0 20211002 (d7705b0ada9e9852b580ca25a45570c82152f287) (GCC)

[Bug tree-optimization/102511] New: GCC produces incorrect code for -O3: first element of the array is skipped

2021-09-27 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102511

Bug ID: 102511
   Summary: GCC produces incorrect code for -O3: first element of
the array is skipped
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Reproducer:
//func.cpp
extern char arr_15[];
void test(signed char a, unsigned short b, unsigned long long c,
  unsigned short f) {
  for (int d = b - 8; d < b; d += 2)
for (short e = 0; e < (unsigned short)((f ? 122 : 0) ^ (a ? c : 0)) -
64055;
 e += 3)
  arr_15[d] = 42;
}

//driver.cpp 
#include 

unsigned char arr_15 [8];

void test(signed char a, unsigned short b, unsigned long long int c, unsigned
short f);

int main() {
test(37, 8, 12325048486467861044ULL, 45936);
for (size_t i_0 = 0; i_0 < 8; ++i_0)
printf("%d ", arr_15 [i_0]);
printf("\n");
}

Error:
>$ g++ -O3 driver.cpp func.cpp && ./a.out 
0 0 42 0 42 0 42 0 
>$ g++ -O2 driver.cpp func.cpp && ./a.out 
42 0 42 0 42 0 42 0 

GCC version:

Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/testing/gcc/bin/libexec/gcc/x86_64-pc-linux-gnu/12.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /testing/gcc/gcc_src/configure --enable-multilib
--prefix=/testing/gcc/bin --disable-bootstrap
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.0.0 20210927 (51018dd1395c72b3681ae5f84eceb94320472922) (GCC)

[Bug tree-optimization/99777] New: ICE in build2, at tree.c:4869 with -O3

2021-03-25 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99777

Bug ID: 99777
   Summary: ICE in build2, at tree.c:4869 with -O3
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

The error is not specific to skylake-avx512, I have a reproducer that shows it.

Reproducer:
#include 

extern int var_142;
extern int a, c;
long h;
unsigned long long e;
signed char d;
extern short arr_323[][7][5][30];

void test(long long b,
  short f[][17][25][22][20]) {
  for (char i = 0; i < 7; i += 3)
for (unsigned char l = e; l < 5; l += 2) {
  if (std::max((long long)0, std::min((long long)7, b)))
for (bool j = 0; j < 1; j = b) {
  for (unsigned k = d; k < 20; k++)
h = f[0][i][l][b][k];
  for (int m = 0; m < 5; m++)
arr_323[c][i][l][m] = 0;
}
  for (int n = 0; n < 4; n += a)
var_142 = n;
}
}

Error:
>$ g++ -O3 -march=skylake-avx512 func.cpp -c
during GIMPLE pass: lim
func.cpp: In function ‘void test(long long int, short int
(*)[17][25][22][20])’:
func.cpp:10:6: internal compiler error: in build2, at tree.c:4869
   10 | void test(long long b,
  |  ^~~~
0x85386f build2(tree_code, tree_node*, tree_node*, tree_node*)
gcc/gcc_src/gcc/tree.c:4869
0xddb96f build2_loc
gcc/gcc_src/gcc/tree.h:4407
0xddb96f fold_build2_loc(unsigned int, tree_code, tree_node*, tree_node*,
tree_node*)
gcc/gcc_src/gcc/fold-const.c:13736
0xde8de3 extract_muldiv_1
gcc/gcc_src/gcc/fold-const.c:6976
0xdea422 extract_muldiv
gcc/gcc_src/gcc/fold-const.c:6662
0xdea422 extract_muldiv
gcc/gcc_src/gcc/fold-const.c:6662
0xdea422 extract_muldiv
gcc/gcc_src/gcc/fold-const.c:6662
0xdd6bb1 fold_binary_loc(unsigned int, tree_code, tree_node*, tree_node*,
tree_node*)
gcc/gcc_src/gcc/fold-const.c:11486
0xddb94d fold_build2_loc(unsigned int, tree_code, tree_node*, tree_node*,
tree_node*)
gcc/gcc_src/gcc/fold-const.c:13734
0x1c3b096 aff_combination_add_elt(aff_tree*, tree_node*,
generic_wide_int > const&)
gcc/gcc_src/gcc/tree-affine.c:187
0x1c3b3d5 aff_combination_add(aff_tree*, aff_tree*)
gcc/gcc_src/gcc/tree-affine.c:215
0x124fc0f mem_refs_may_alias_p
gcc/gcc_src/gcc/tree-ssa-loop-im.c:1718
0x124fc83 refs_independent_p
gcc/gcc_src/gcc/tree-ssa-loop-im.c:2703
0x12502b4 ref_indep_loop_p
gcc/gcc_src/gcc/tree-ssa-loop-im.c:2764
0x1255ff4 can_sm_ref_p
gcc/gcc_src/gcc/tree-ssa-loop-im.c:2832
0x1255ff4 find_refs_for_sm
gcc/gcc_src/gcc/tree-ssa-loop-im.c:2853
0x1255ff4 store_motion_loop
gcc/gcc_src/gcc/tree-ssa-loop-im.c:2889
0x1255ddc store_motion_loop
gcc/gcc_src/gcc/tree-ssa-loop-im.c:2896
0x1255ddc store_motion_loop
gcc/gcc_src/gcc/tree-ssa-loop-im.c:2896
0x1258262 do_store_motion
gcc/gcc_src/gcc/tree-ssa-loop-im.c:2911

gcc version 11.0.1 20210323 (6b1f841ce0ccf30eda7896ba5ab0aa94c72307b2) (GCC)

[Bug tree-optimization/98694] New: GCC produces incorrect code for loops with -O3 for skylake-avx512 and icelake-server

2021-01-14 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98694

Bug ID: 98694
   Summary: GCC produces incorrect code for loops with -O3 for
skylake-avx512 and icelake-server
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

The reproducer is a bit big, but I was not able to reduce it further.
Reproducer:

// func.cpp
#include 

extern short var_1, var_29, var_89;
extern unsigned var_2, var_11;
extern bool var_4;
extern long var_6;
extern char var_7;
extern int var_8, var_10;
extern short arr_206[10][14][13][21][14] __attribute__((aligned));
extern int arr_257[];

long f(long l) { return 0 > l ? 0 : l; }

void test() {
  var_11 = var_6;
  for (char a = 0; a < (char)var_2; a = 6)
for (int b = 0; b < var_2; b = ~0)
  for (int c = 0; c < 2; c = var_1)
for (bool d = 0; d < var_4; d = 1)
  var_29 = f(~var_6);
  for (short e = 0; e < short(var_6); e = var_6) {
for (; 0 < (int)var_6;)
  ;
for (char g = 0; g < 4; g++)
  for (; std::min(var_7 / 405077347810ULL, (unsigned long long)9);
   var_7 += 2)
for (char h = 0; h < (char)var_8; h += 4)
  for (short i = 0; i < (var_4 && var_6) + 13; i++) {
arr_206[0][g][0][h][i] = var_6;
var_89 = std::min(var_4 ?: 709U, (unsigned)var_4);
  }
for (short j = 0; j < var_2; j += 4)
  for (int k = 0; k < 5U; k = var_10)
arr_257[k] = var_6;
  }
}

// driver.cpp
#include 

short var_1 = (short)7531;
unsigned int var_2 = 187158918U;
bool var_4 = (bool)1;
unsigned long long int var_6 = 10263287916162477044ULL;
signed char var_7 = 0;
long long int var_8 = 21;
unsigned int var_10 = 3309705747U;
unsigned int var_11 = 222967114U;
short var_29 = (short)-22723;
short var_89 = (short)-19017;
short arr_206 [10] [14] [13] [21] [14] __attribute__((aligned));
int arr_257 [5];

void test();

int main() {
test();
for (size_t i_0 = 0; i_0 < 5; ++i_0)
printf("%d ", arr_257 [i_0]);
printf("\n");
}

Error:

>$ g++ -march=skylake-avx512 func.cpp driver.cpp -O2 && sde -skx -- ./a.out 
-2039714828 0 0 0 0 
>$ g++ -march=skylake-avx512 func.cpp driver.cpp -O3 && sde -skx -- ./a.out 
27636 0 0 0 0

gcc version 11.0.0 20210113 (8fc183ccd0628465205b8a88c29ab69bfe74a08a)

[Bug tree-optimization/98640] New: GCC produces incorrect code with -O1 and higher

2021-01-12 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98640

Bug ID: 98640
   Summary: GCC produces incorrect code with -O1 and higher
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Reproducer:
#include 

unsigned long long int var_0 = 18128133247277979402ULL;
long long int var_14 = 6557021550272328915LL;
unsigned long long int var_83 = 10966786425750692026ULL;

void test() {
  var_14 = var_0 + (bool)7;
  var_83 = 1 + (int)var_0; // 1 + 888395530
}

int main() {
test();
printf("%llu\n", var_83);
}

https://godbolt.org/z/axYx1f

>$ g++ -O0 driver.cpp && ./a.out 
888395531
>$ g++ -O1 driver.cpp && ./a.out 
18128133247277979403

gcc version 11.0.0 20210112 (cf2ac1c30af0fa783c8d72e527904dda5d8cc330)

[Bug tree-optimization/98381] New: Wrong code with -O3 -march=skylake-avx512

2020-12-18 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98381

Bug ID: 98381
   Summary: Wrong code with -O3 -march=skylake-avx512
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Reproducer:
//func.cpp
extern bool var_22;
void test(long long a, unsigned b, unsigned long long c) {
  for (long i = 0; i < 16; i += 1ULL)
if (a)
  var_22 = 5023804122334ULL >= (char)c;
}

//driver.cpp 
#include 
long long int a = -2161098602020439353LL;
unsigned int b = 1621447385U;
unsigned long long int c = 16505450185101189749ULL;
bool var_22 = (bool)0;

void test(long long int a, unsigned int b, unsigned long long int c);

int main() {
test(a, b, c);
printf("%d\n", (int)var_22);
}

Error:
>$ g++ -O3 -march=skylake-avx512 func.cpp driver.cpp && sde -skx -- ./a.out
0
>$ g++ -O0 func.cpp driver.cpp && sde -skx -- ./a.out
1

gcc version 11.0.0 20201217 (6f8486523f61bf0aa476dfa4197d1e3b71a0a8f3) (GCC)

[Bug tree-optimization/98308] New: ICe in in vect_slp_analyze_node_operations, at tree-vect-slp.c:3764 with -O3 -march=skylake-avx512

2020-12-15 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98308

Bug ID: 98308
   Summary: ICe in in vect_slp_analyze_node_operations, at
tree-vect-slp.c:3764 with -O3 -march=skylake-avx512
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Reproducer:
extern unsigned long long int arr_86[];
extern unsigned long long int arr_87[][15];

void test(bool a, unsigned short c[][15], unsigned char d[]) {
for (short h = 0; h < 10; h++)
for (char i = 0; i < 15; i += 2) {
arr_86[0] = d[0];
arr_87[h][0] = a ? c[h][i] : 0;
}
}

Error:
>$ g++ -c -O3 -march=skylake-avx512 func.cpp
during GIMPLE pass: vect
func.cpp: In function ‘void test(bool, short unsigned int (*)[15], unsigned
char*)’:
func.cpp:4:6: internal compiler error: in vect_slp_analyze_node_operations, at
tree-vect-slp.c:3764
4 | void test(bool a, unsigned short c[][15], unsigned char d[]) {
  |  ^~~~
0x886a4d vect_slp_analyze_node_operations
gcc_src/gcc/tree-vect-slp.c:3764
0x1425a73 vect_slp_analyze_node_operations
gcc_src/gcc/tree-vect-slp.c:3719
0x1425a73 vect_slp_analyze_node_operations
gcc_src/gcc/tree-vect-slp.c:3719
0x1425a73 vect_slp_analyze_node_operations
gcc_src/gcc/tree-vect-slp.c:3719
0x1427101 vect_slp_analyze_operations(vec_info*)
gcc_src/gcc/tree-vect-slp.c:3914
0x1404939 vect_analyze_loop_2
gcc_src/gcc/tree-vect-loop.c:2391
0x1404939 vect_analyze_loop(loop*, vec_info_shared*)
gcc_src/gcc/tree-vect-loop.c:2929
0x14311f4 try_vectorize_loop_1
gcc_src/gcc/tree-vectorizer.c:1008
0x1431c59 vectorize_loops()
gcc_src/gcc/tree-vectorizer.c:1242
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

gcc version 11.0.0 20201214 (22a90217305ee8c116bbc12c8d07abe7ca0ff61d)

[Bug tree-optimization/98069] New: Miscompilation with -O3

2020-11-30 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98069

Bug ID: 98069
   Summary: Miscompilation with -O3
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Reproducer:
//func.cpp
extern long long var_3;
extern short var_8;
extern int var_17;
extern short arr_165[];
long c(long e, long f) { return f ? e : f; }
void test() {
for (int b = 0; b < 19; b = var_17)
for (int d = int(~c(-2147483647 - 1, var_3)) - 2147483647; d < 22; d++)
arr_165[d] = var_8;
}

//driver.cpp 
#include 

long long int var_3 = -166416893043554447LL;
short var_8 = (short)27092;
unsigned int var_17 = 75036300U;
short arr_165[23];

void test();

int main() {
for (size_t i_3 = 0; i_3 < 23; ++i_3)
arr_165[i_3] = (short)-8885;
test();
printf("%d\n", arr_165[0]);
}

>$ g++ -O3 func.cpp driver.cpp && ./a.out
Segmentation fault (core dumped)
>$ g++ -O2 func.cpp driver.cpp && ./a.out
27092

gcc version 11.0.0 20201126 (beb9afcaf1466996a301c778596c5df209e7913c)

[Bug tree-optimization/98064] New: ICE in check_loop_closed_ssa_def, at tree-ssa-loop-manip.c:726 with -O3

2020-11-29 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98064

Bug ID: 98064
   Summary: ICE in check_loop_closed_ssa_def, at
tree-ssa-loop-manip.c:726 with -O3
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Error:
>$ g++ -c -O3 func.cpp
during GIMPLE pass: slp
func.cpp: In function ‘void test()’:
func.cpp:8:6: internal compiler error: in check_loop_closed_ssa_def, at
tree-ssa-loop-manip.c:726
8 | void test() {
  |  ^~~~
0x84b706 check_loop_closed_ssa_def
/home/vlivinsk/workspace/gcc/gcc_src/gcc/tree-ssa-loop-manip.c:726
0x12ae78d check_loop_closed_ssa_bb
/home/vlivinsk/workspace/gcc/gcc_src/gcc/tree-ssa-loop-manip.c:752
0x12b05d6 verify_loop_closed_ssa(bool, loop*)
/home/vlivinsk/workspace/gcc/gcc_src/gcc/tree-ssa-loop-manip.c:777
0x12b05d6 verify_loop_closed_ssa(bool, loop*)
/home/vlivinsk/workspace/gcc/gcc_src/gcc/tree-ssa-loop-manip.c:761
0x1062c24 execute_function_todo
/home/vlivinsk/workspace/gcc/gcc_src/gcc/passes.c:2057
0x10638ae execute_todo
/home/vlivinsk/workspace/gcc/gcc_src/gcc/passes.c:2093
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Reproducer:
#include 
extern long var_2;
extern int var_3, var_8;
extern long long var_5;
extern unsigned short arr_353[];
extern short arr_362[];
extern int arr_518[];
void test() {
for (char d = 0; d < 013; d += 4) {
for (char e = 0; e < 11; e++)
arr_353[e] = var_2 | std::min((long long)7, var_5);
for (int f = var_5; f; f += 4)
for (short g = var_8; g; g++)
arr_362[g] = 0;
}
for (short h = 5; (short)var_2; h += 5)
arr_518[h] = 0;
}


gcc version 11.0.0 20201126 (beb9afcaf1466996a301c778596c5df209e7913c)

[Bug tree-optimization/98048] New: ICE in build_vector_from_val, at tree.c:1985

2020-11-28 Thread vsevolod.livinskij at frtk dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98048

Bug ID: 98048
   Summary: ICE in build_vector_from_val, at tree.c:1985
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Reproducer:
extern short var_0;
extern int var_3;
extern int arr_277[];
int a(int b, int c) { return b < c ? b : c; }
int e;
void test() {
  e = var_0;
  for (int d = 0; d < 9; d++)
if (var_3)
  arr_277[d] = a(var_0, -var_0);
}

Error:
>$ g++ -c -O3 func.cpp
during GIMPLE pass: veclower2
func.cpp: In function ‘void test()’:
func.cpp:6:6: internal compiler error: in build_vector_from_val, at tree.c:1985
6 | void test() {
  |  ^~~~
0x88bffd build_vector_from_val(tree_node*, tree_node*)
/home/vlivinsk/workspace/gcc/gcc_src/gcc/tree.c:1985
0x13a22cd expand_vector_operations_1
/home/vlivinsk/workspace/gcc/gcc_src/gcc/tree-vect-generic.c:2095
0x13a22cd expand_vector_operations
/home/vlivinsk/workspace/gcc/gcc_src/gcc/tree-vect-generic.c:2291
0x13a22cd execute
/home/vlivinsk/workspace/gcc/gcc_src/gcc/tree-vect-generic.c:2337
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

gcc version 11.0.0 20201126 (beb9afcaf1466996a301c778596c5df209e7913c)

[Bug rtl-optimization/96755] New: ICE in final_scan_insn_1, at final.c:3073 with -O3 -march=skylake-avx512

2020-08-23 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96755

Bug ID: 96755
   Summary: ICE in final_scan_insn_1, at final.c:3073 with -O3
-march=skylake-avx512
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

>$ g++ -O3 -march=skylake-avx512 -c func.cpp
func.cpp: In function ‘void test(short unsigned int, unsigned char, long long
int)’:
func.cpp:13:1: error: could not split insn
   13 | }
  | ^
(insn 644 21 817 50 (set (reg:DI 70 k2 [orig:83 D.4406 ] [83])
(zero_extend:DI (not:SI (reg:SI 70 k2 [orig:505 b ] [505]
"func.cpp":10:18 622 {*one_cmplsi2_1_zext}
 (nil))
during RTL pass: final
func.cpp:13:1: internal compiler error: in final_scan_insn_1, at final.c:3073
0x7cf5e7 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
/gcc/rtl-error.c:108
0x75b978 final_scan_insn_1
/gcc/final.c:3073
0xd9b5cf final_scan_insn(rtx_insn*, _IO_FILE*, int, int, int*)
/gcc/final.c:3152
0xd9b8c7 final_1
/gcc/final.c:2020
0xd9c298 rest_of_handle_final
/gcc/final.c:4658
0xd9c298 execute
/gcc/final.c:4736


Reproducer:
extern long var_22;
extern int arr_3[];
extern int arr_4[][20][9];
short a;
void test(unsigned short b, unsigned char e, long long g) {
  for (long c = 0; c < 20ULL; c = g)
for (short d = 0; d < 9; d++)
  for (char f = e; f < 8; f += 4) {
arr_3[f] = 0;
var_22 = ~(unsigned)b;
arr_4[c][d][f] = a;
  }
}

gcc version 11.0.0 20200823 (87c753ac241f25d222d46ba1ac66ceba89d6a200)

[Bug tree-optimization/96693] New: GCC produces incorrect code with -O2 for loops

2020-08-18 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96693

Bug ID: 96693
   Summary: GCC produces incorrect code with -O2 for loops
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Error:
>$ g++ -O2 driver.cpp func.cpp && ./a.out
0
>$ g++ -O0 driver.cpp func.cpp && ./a.out
42

Reproducer:
//func.cpp
extern char var_20;
extern short var_22;
void test(unsigned a,
  bool b,
  long long p12[23]) {
  for (int c = 0; c < 2;) {
if (b) {
  for (int d = 0; d < 4082; d += 2)
for (int e = 0; e < a; e = 2)
  var_20 = 0;
  var_22 = 0;
}
c = p12[c];
  }
}

//driver.cpp 
#include 

unsigned int var_4 = 140810747U;
bool var_7 = (bool)0;
unsigned char var_20 = (unsigned char)82;
unsigned short var_22 = 42;
long long int arr_9 [23] ;

void test(unsigned int var_4, bool var_7, long long int arr_9 [23]);

int main() {
for (size_t i_0 = 0; i_0 < 23; ++i_0) 
arr_9 [i_0] = -722784397873599555LL;
test(var_4, var_7, arr_9);
printf("%d\n", var_22);
}

GCC version:
11.0.0 20200816 (23747614cc8fc137c1f2ca64c8e224125a72fae5) + fix proposed in
bug 95396

[Bug target/96415] GCC produces incorrect code for loops with -O3 for skylake-avx512 and icelake-server

2020-08-03 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96415

Vsevolod Livinskiy  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #2 from Vsevolod Livinskiy  ---
You are right, it is a sde bug. It works on real hardware and a new version of
sde. Sorry to bother you and thanks for looking into this!

[Bug tree-optimization/96415] New: GCC produces incorrect code for loops with -O3 for skylake-avx512 and icelake-server

2020-08-01 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96415

Bug ID: 96415
   Summary: GCC produces incorrect code for loops with -O3 for
skylake-avx512 and icelake-server
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Error:
>$ g++ -O0 driver.cpp func.cpp && ./a.out
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 
>$ g++ -O3 driver.cpp func.cpp -march=skylake-avx512 && sde -skx -- ./a.out
1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 

Reproducer:
//driver.cpp 
#include 

unsigned short var_0 = 14;
unsigned int arr_10 [16];
void test(unsigned short var_0);

int main() {
test(var_0);
for (int i = 0; i < 16; ++i) 
printf("%u ", arr_10[i]);
printf("\n");
}

//func.cpp
extern int arr_10[16];
void test(unsigned short a) {
for (unsigned e = 0; e < 16; e += 4)
for (char f = 0; f < 6; f += 4)
for (unsigned g = 0; g < a + 1; g++)
arr_10[g] = 1;
}

GCC version:
11.0.0 (3a4a92598014d33ef2c8b8ec38d8ad917812921a)
I also applied the fix for bug #95396

[Bug tree-optimization/96022] New: ICE during GIMPLE pass: slp in operator[], at vec.h:867

2020-07-01 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96022

Bug ID: 96022
   Summary: ICE during GIMPLE pass: slp in operator[], at
vec.h:867
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

>$ g++ -c -O3 func.cpp
during GIMPLE pass: slp
func.cpp: In function ‘void test(short int, bool, int)’:
func.cpp:3:6: internal compiler error: in operator[], at vec.h:867
3 | void test(short a, bool, int p8) {
  |  ^~~~
0x850b10 vec::operator[](unsigned int)
gcc/vec.h:867
0x850b10 vec::operator[](unsigned int)
gcc/vec.h:1433
0x852d71 vec::operator[](unsigned int)
gcc/tree.h:3424
0x852d71 vectorizable_shift
gcc/tree-vect-stmts.c:5492
0x1385aa0 vect_transform_stmt(vec_info*, _stmt_vec_info*,
gimple_stmt_iterator*, _slp_tree*, _slp_instance*)
gcc/tree-vect-stmts.c:10640
0x13b08e3 vect_schedule_slp_instance
gcc/tree-vect-slp.c:4350
0x13b0904 vect_schedule_slp_instance
gcc/tree-vect-slp.c:4229
0x13b0904 vect_schedule_slp_instance
gcc/tree-vect-slp.c:4229
0x13b72a6 vect_schedule_slp(vec_info*)
gcc/tree-vect-slp.c:4465
0x13b9af0 vect_slp_bb_region
gcc/tree-vect-slp.c:3303
0x13b9af0 vect_slp_bb(basic_block_def*)
gcc/tree-vect-slp.c:3433
0x13bb466 execute
gcc/tree-vectorizer.c:1384


Reproducer:
extern int arr_6[];
extern char arr_7[] __attribute__((aligned));
void test(short a, bool, int p8) {
  for (bool b = 0; b < (bool)p8; b = 1)
for (short c = 0; c < 5; c++) {
  arr_6[c] = (long)2 << a - 30574;
  arr_7[c] = 0;
}
}

GCC version:
11.0.0 20200630 (67ef8cfc1c1d440eafa89a26710bced934a485dc) (GCC)

[Bug tree-optimization/95916] ICE during GIMPLE pass: slp : verify_ssa failed

2020-06-26 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95916

--- Comment #1 from Vsevolod Livinskiy  ---
This bug might be related to bug 95761

[Bug tree-optimization/95916] New: ICE during GIMPLE pass: slp : verify_ssa failed

2020-06-26 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95916

Bug ID: 95916
   Summary: ICE during GIMPLE pass: slp : verify_ssa failed
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Error:
>$ g++ -c -O3 func.cpp
func.cpp: In function ‘void test()’:
func.cpp:5:6: error: definition in block 3 follows the use
5 | void test() {
  |  ^~~~
for SSA_NAME: var_5.3_5 in statement:
vect__6.8_50 = vect__4.7_58 << var_5.3_5;
during GIMPLE pass: slp
func.cpp:5:6: internal compiler error: verify_ssa failed
0x1339a82 verify_ssa(bool, bool)
gcc/tree-ssa.c:1208
0x1025705 execute_function_todo
gcc/passes.c:1992
0x10263de execute_todo
gcc/passes.c:2039

Reproducer:
extern short var_3, var_8;
extern int var_5;
extern char var_10;
extern int arr_99[][16];
void test() {
  for (; 0 < var_10;)
for (long a(var_8);; a++)
  arr_99[4][a] = var_3 << var_5;
}

GCC version:
11.0.0 20200625 (77d455ee81ec3a23f8b20259a31ab963716f8e82)

[Bug tree-optimization/95717] ICE during GIMPLE pass: vect: verify_ssa failed

2020-06-17 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95717

--- Comment #1 from Vsevolod Livinskiy  ---
It might be related to bug 94443

[Bug tree-optimization/95717] New: ICE during GIMPLE pass: vect: verify_ssa failed

2020-06-17 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95717

Bug ID: 95717
   Summary: ICE during GIMPLE pass: vect: verify_ssa failed
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Error:
$ g++ -c -O3 func.cpp
func.cpp: In function ‘void g(bool)’:
func.cpp:5:6: error: definition in block 61 does not dominate use in block 59
5 | void g(bool h) {
  |  ^
for SSA_NAME: prephitmp_100 in statement:
prephitmp_100 = PHI 
PHI argument
prephitmp_100
for PHI node
prephitmp_100 = PHI 
during GIMPLE pass: vect
func.cpp:5:6: internal compiler error: verify_ssa failed
0x13368a2 verify_ssa(bool, bool)
gcc/tree-ssa.c:1208
0x10228a5 execute_function_todo
gcc/passes.c:1992
0x102357e execute_todo
gcc/passes.c:2039

Reproducer:
bool a;
extern bool b[];
long c, d;
int *f;
void g(bool h) {
  for (short e = 0; e < c; e = 4)
for (; d; d++)
  b[d] = a = f[d] ? c ? h : 0 : h;
}

GCC version:
gcc version 11.0.0 (56638b9b1853666f575928f8baf17f70e4ed3517)

[Bug tree-optimization/95649] New: ICE during GIMPLE pass: cunroll

2020-06-11 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95649

Bug ID: 95649
   Summary: ICE during GIMPLE pass: cunroll
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Error:
>$ g++ -O2 -c func.cpp
during GIMPLE pass: cunroll
func.cpp: In function ‘void test()’:
func.cpp:4:6: internal compiler error: Segmentation fault
4 | void test() {
  |  ^~~~
0x1102483 crash_signal
gcc/toplev.c:328
0x1b58f3b loop_containing_stmt
gcc/tree-ssa-loop.h:76
0x1b58f3b chrec_contains_symbols_defined_in_loop
gcc/tree-chrec.c:1009
0x1b59248 chrec_contains_symbols_defined_in_loop
gcc/tree-chrec.c:1026
0x1b59248 chrec_contains_symbols_defined_in_loop
gcc/tree-chrec.c:1026
0x1b59248 chrec_contains_symbols_defined_in_loop
gcc/tree-chrec.c:1026
0x1b593cb chrec_contains_symbols_defined_in_loop(tree_node const*, unsigned
int)
gcc/tree-chrec.c:1039
0x11dfff3 compute_overall_effect_of_inner_loop(loop*, tree_node*)
gcc/tree-scalar-evolution.c:473
0x11dfff3 compute_overall_effect_of_inner_loop(loop*, tree_node*)
gcc/tree-scalar-evolution.c:447
0x11de08c analyze_scalar_evolution_1
gcc/tree-scalar-evolution.c:1960
0x11deb9d analyze_scalar_evolution(loop*, tree_node*)
gcc/tree-scalar-evolution.c:2038
0x11df04f instantiate_scev_name
gcc/tree-scalar-evolution.c:2335
0x11df04f instantiate_scev_r
gcc/tree-scalar-evolution.c:2636
0x11df1ca instantiate_scev_binary
gcc/tree-scalar-evolution.c:2466
0x11df1ca instantiate_scev_r
gcc/tree-scalar-evolution.c:2649
0x11ded9e instantiate_scev_poly
gcc/tree-scalar-evolution.c:2409
0x11ded9e instantiate_scev_r
gcc/tree-scalar-evolution.c:2641
0x11dfde5 instantiate_scev(edge_def*, loop*, tree_node*)
gcc/tree-scalar-evolution.c:2718
0x127743a instantiate_parameters
gcc/tree-scalar-evolution.h:63
0x127743a idx_infer_loop_bounds
gcc/tree-ssa-loop-niter.c:3612
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Reproducer:
extern unsigned short var_5;
extern int var_8, var_9;
extern short arr_7[];
void test() {
  for (; 0 < (char)var_5;)
for (int a(var_9 ? var_5 : 0); a < 3002972621U + 1291994699;
 a += 19499 - 19497)
  for (long b(var_8); b; b += 4)
arr_7[a * b] = 0;
}

GCC version:
11.0.0 (87af4f40453a9c84363bde5d9a58466de7fbee2e)

[Bug tree-optimization/95487] New: ICE: verify_gimple failed (error: invalid vector types in nop conversion) with -O3 -march=skylake-avx512

2020-06-02 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95487

Bug ID: 95487
   Summary: ICE: verify_gimple failed (error: invalid vector types
in nop conversion) with -O3 -march=skylake-avx512
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Error:
>$ g++ -O3 -march=skylake-avx512 -c func.cpp
func.cpp: In function ‘void h()’:
func.cpp:7:6: error: invalid vector types in nop conversion
7 | void h() {
  |  ^
char
vector(32) unsigned char
stmp_117 = (char) stmp_116;
func.cpp:7:6: error: invalid vector types in nop conversion
char
vector(32) unsigned char
stmp_120 = (char) stmp_119;
during GIMPLE pass: vect
func.cpp:7:6: internal compiler error: verify_gimple failed
0x1141df1 verify_gimple_in_cfg(function*, bool)
/gcc/tree-cfg.c:5461
0x10152af execute_function_todo
/gcc/passes.c:1985
0x101608e execute_todo
/gcc/passes.c:2039

Reproducer:
int a;
bool d;
char e;
extern short f[];
extern int g[];
short j;
void h() {
  for (short b = j; b < 0; b += 2) {
f[b] = 0;
if (d) {
  for (char c = 0; c < a; c += 3)
e = 0;
  g[b] = 0;
}
  }
}

GCC version:
11.0.0 (4b68cb38ddca37a14a6f2f43de3a6d396ee1bc79)

bug 92741 might be related

[Bug tree-optimization/95401] New: GCC produces incorrect instruction with -O3 for skylake-avx512

2020-05-28 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95401

Bug ID: 95401
   Summary: GCC produces incorrect instruction with -O3 for
skylake-avx512
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

GCC produces incorrect instruction with -O3 for skylake-avx512 (also for
icelake-server and tigerlake).

Error:
>$ g++ -O3 func.cpp driver.cpp -march=skylake-avx512 && sde -skx -- ./a.out 
SDE ERROR:  TID: 0 executed instruction with an unaligned memory reference to
address 0x404064 INSTR: 0x000401201: IFORM: VMOVDQA_MEMdq_XMMdq :: vmovdqa
xmmword ptr [rcx*4+0x404060], xmm0
IMAGE:   
/home/vlivinsk/workspace/yarpgen/bugs/may-28/gcc-miscompile/reduce/a.out
FUNCTION: _Z4testv
FUNCTION ADDR: 0x000401120

Reproducer:
driver.cpp
int var_9 = 1693986256, var_14;
int arr_16[11];
void test();
int main() { test(); }

func.cpp
extern int var_9;
extern unsigned var_14;
extern int arr_16[];
#include 
void test() {
  for (short a = 0; a < (short)var_9; a += 12140)
for (short b = 0; b < 8; b++)
  if (std::max(var_14, 1U))
arr_16[a + b] = 0;
}

GCC version: 11.0.0 (5c715e6a2990cfb6c15acc1ee14219523534ec69)

[Bug tree-optimization/95396] New: GCC produces incorrect code with -O3 for loops

2020-05-28 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95396

Bug ID: 95396
   Summary: GCC produces incorrect code with -O3 for loops
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Error:
>$ g++ -O0 small.cpp && ./a.out 
42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 0 0 0 
>$ g++ -O3 small.cpp && ./a.out 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 42 0 0 0 

Reproducer:
>$ cat small.cpp 
#include 

unsigned short arr_26 [20];
signed char arr_25 [2000];

unsigned char b;

int c(int d, int f) { return d > f ? d : f; }

void test() { 
for (char e = c(b, 241) + 15; e < 17; e += 1)
arr_26[e] = 42;
}

int main() {
test();
for (size_t i_0 = 0; i_0 < 20; ++i_0)
printf("%d ", arr_26 [i_0]);
printf("\n");
}

GCC version:
11.0.0 (1852a26b925970f64f8d31518ba732fe9c3ade23)

[Bug tree-optimization/95295] g++ produces incorrect code with -O3 for loops

2020-05-26 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95295

--- Comment #6 from Vsevolod Livinskiy  ---
Thank you for such a quick fix!

Sorry about duplicates, I saw different assert messages and thought that they
were different bugs.

I still can see ICE in hoist_memory_references (bug 95283) on trunk. I've
attached the reproducer below.

Please let me know if it is a different bug, and I'll create another bug
report.

Error:
>$ g++ -c -O3 func.cpp
during GIMPLE pass: lim
func.cpp: In function ‘void test()’:
func.cpp:5:6: internal compiler error: in hoist_memory_references, at
tree-ssa-loop-im.c:2615
5 | void test() {
  |  ^~~~
0x82318c hoist_memory_references
gcc_src/gcc/tree-ssa-loop-im.c:2615
0x82318c store_motion_loop
gcc_src/gcc/tree-ssa-loop-im.c:2912
0x123853a do_store_motion
gcc_src/gcc/tree-ssa-loop-im.c:2937
0x123853a tree_ssa_lim
gcc_src/gcc/tree-ssa-loop-im.c:3156
0x123853a execute
gcc_src/gcc/tree-ssa-loop-im.c:3206

Reproducer:
extern short var_15, var_20;
extern int var_18, var_21, var_23;
extern bool arr_2[];
extern long arr_3[];
void test() {
  var_20 = 1;
  for (int a = 0; a < 12; a += 2)
for (short b = 0; b < 8; b += 2) {
  arr_2[b] = var_21 = var_18 ? var_15 : 0;
  arr_3[b] = 8569;
}
  var_23 = -1096835496;
}

GCC version:
11.0.0 (adad99eb906164af7d2b398ad7e430aebe3adeb4)

[Bug tree-optimization/95308] ICE: in maybe_canonicalize_mem_ref_addr with -O3 -march=skylake-avx512

2020-05-24 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95308

--- Comment #1 from Vsevolod Livinskiy  ---
bug 94216 might be related to this one

[Bug tree-optimization/95308] New: ICE: in maybe_canonicalize_mem_ref_addr with -O3 -march=skylake-avx512

2020-05-24 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95308

Bug ID: 95308
   Summary: ICE: in maybe_canonicalize_mem_ref_addr with -O3
-march=skylake-avx512
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Error:
>$ g++ -O3 -march=skylake-avx512 -c func.cpp
during GIMPLE pass: forwprop
func.cpp: In function ‘void i(char, long int (*)[100][100][100])’:
func.cpp:5:6: internal compiler error: in maybe_canonicalize_mem_ref_addr, at
gimple-fold.c:4912
5 | void i(char f, long g[][100][100][100]) {
  |  ^
0x76db2a maybe_canonicalize_mem_ref_addr
gcc_src/gcc/gimple-fold.c:4912
0xdfdd97 fold_stmt_1
gcc_src/gcc/gimple-fold.c:5014
0x1226b41 execute
gcc_src/gcc/tree-ssa-forwprop.c:3095

Reproducer:
extern int a[][18];
extern short b[], c[];
extern char d[][18];
int e;
void i(char f, long g[][100][100][100]) {
  for (int h = 0;; h += 2)
for (char j = 0; j < 17; j++) {
  if (e ? f : 0) {
a[h][j] = 5;
for (int k = 0; k < 12; k += 4)
  for (short l = 0; l < 015; l += 2)
b[k * 3 + l] = bool(g[2][j][k][l]);
  } else
d[h][j] = 0;
  c[j] = 3;
}
}

GCC version:
11.0.0 (a57aa11191617754c8d43b3eb6a2576e970a0668)

[Bug tree-optimization/95297] New: ICE: Segmentation fault

2020-05-23 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95297

Bug ID: 95297
   Summary: ICE: Segmentation fault
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Error:
>g++ -c func.c -O3
during GIMPLE pass: slp
func.cpp: In function ‘void test()’:
func.cpp:7:6: internal compiler error: Segmentation fault
7 | void test() {
  |  ^~~~
0x10f44e3 crash_signal
gcc/gcc_src/gcc/toplev.c:328
0xde7f80 useless_type_conversion_p(tree_node*, tree_node*)
gcc/gcc_src/gcc/gimple-expr.c:71
0x134427f types_compatible_p
gcc/gcc_src/gcc/gimple-expr.h:67
0x134427f vect_maybe_update_slp_op_vectype(_slp_tree*, tree_node*)
gcc/gcc_src/gcc/tree-vect-stmts.c:11854
0x135236f vect_maybe_update_slp_op_vectype(_slp_tree*, tree_node*)
gcc/gcc_src/gcc/tree-vect-stmts.c:11851
0x135236f vectorizable_shift
gcc/gcc_src/gcc/tree-vect-stmts.c:5777
0x13684c3 vect_analyze_stmt(vec_info*, _stmt_vec_info*, bool*, _slp_tree*,
_slp_instance*, vec*)
gcc/gcc_src/gcc/tree-vect-stmts.c:11086
0x139a5e9 vect_slp_analyze_node_operations_1
gcc/gcc_src/gcc/tree-vect-slp.c:2677
0x139a5e9 vect_slp_analyze_node_operations
gcc/gcc_src/gcc/tree-vect-slp.c:2844
0x139a50b vect_slp_analyze_node_operations
gcc/gcc_src/gcc/tree-vect-slp.c:2802
0x139b34b vect_slp_analyze_operations(vec_info*)
gcc/gcc_src/gcc/tree-vect-slp.c:2898
0x139d443 vect_slp_analyze_bb_1
gcc/gcc_src/gcc/tree-vect-slp.c:3225
0x139d443 vect_slp_bb_region
gcc/gcc_src/gcc/tree-vect-slp.c:3286
0x139d443 vect_slp_bb(basic_block_def*)
gcc/gcc_src/gcc/tree-vect-slp.c:3421
0x139ebc7 execute
gcc/gcc_src/gcc/tree-vectorizer.c:1320

Reproducer:
#include 

extern bool var_10;
extern int var_16;
extern short var_17;
extern long var_18;
extern int arr_3[][13];

void test() {
  for (short a = 0; a < 010; a++)
for (char b = 0; b < 012; b++)
  arr_3[a][b] = std::min(-var_10, 0) + 2147483647 >> var_10;
  var_16 = (bool)4;
  var_17 = 0;
  var_18 = -1594153176;
}

GCC version:
11.0.0 (a57aa11191617754c8d43b3eb6a2576e970a0668)

[Bug tree-optimization/95295] New: g++ produces incorrect code with -O3 for loops

2020-05-23 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95295

Bug ID: 95295
   Summary: g++ produces incorrect code with -O3 for loops
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Error:
>$ g++ func.cpp driver.cpp -O0 && ./a.out 
1
>$ g++ func.cpp driver.cpp -O3 && ./a.out 
0

Reproducer:
func.cpp
extern int var_4, a;
extern unsigned var_9;
extern short arr_272[];
void test() {
  for (int b = 0; b < 9; b++)
for (int c = 0; c < 9; c += 4) {
  arr_272[c] = var_9 ? var_4 : 0;
  a = 0;
}
}

driver.cpp
#include 
unsigned long long a;
int var_4 = 1;
short var_9 = 8;
short arr_272[20];
void test();
int main() {
  test();
  printf("%d\n", arr_272[4]);
}

GCC version:
11.0.0 (bcb63eb2cbd3caf212b9cf42d8c218c09dc6ff8b)

[Bug tree-optimization/95284] New: ICE: verify_gimple failed

2020-05-22 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95284

Bug ID: 95284
   Summary: ICE: verify_gimple failed
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Reproducer:
#include 

short a;
unsigned long long c;
char d;
unsigned e;

void f() {
  for (;;)
for (char b = 0; b < 19; b += 2)
  a = std::min((1 ? d : 0) ? e : c, (unsigned long long)72252803048);
}

Error:
>$ g++ -O3 func.cpp -c
func.cpp: In function ‘void f()’:
func.cpp:8:6: error: invalid ‘PHI’ argument
8 | void f() {
  |  ^
{CLOBBER}
_26 = PHI <72252803048(8), {CLOBBER}(5)>
during GIMPLE pass: sink
func.cpp:8:6: internal compiler error: verify_gimple failed
0x113fc71 verify_gimple_in_cfg(function*, bool)
gcc_src/gcc/tree-cfg.c:5461
0x10132af execute_function_todo
gcc_src/gcc/passes.c:1985
0x101408e execute_todo
gcc_src/gcc/passes.c:2039

GCC version:
11.0.0 (bcb63eb2cbd3caf212b9cf42d8c218c09dc6ff8b)

[Bug tree-optimization/95283] New: ICE: in hoist_memory_references, at tree-ssa-loop-im.c:2607

2020-05-22 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95283

Bug ID: 95283
   Summary: ICE: in hoist_memory_references, at
tree-ssa-loop-im.c:2607
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Reproducer:
short c;
bool d;
unsigned e, f;
char g, h;
extern bool i[];
void j() {
  for (char a = 0; a < 100; a++)
for (char b = 0; b < 20; b += 2) {
  if (e)
d = f = 0;
  else
g = i[8] = 0;
  h = c;
}
}

Error:
>$ g++ -O3 func.cpp -c
during GIMPLE pass: lim
func.cpp: In function ‘void j()’:
func.cpp:6:6: internal compiler error: in hoist_memory_references, at
tree-ssa-loop-im.c:2607
6 | void j() {
  |  ^
0x822f8a hoist_memory_references
gcc_src/gcc/tree-ssa-loop-im.c:2607
0x822f8a store_motion_loop
gcc_src/gcc/tree-ssa-loop-im.c:2904
0x12381da do_store_motion
gcc_src/gcc/tree-ssa-loop-im.c:2929
0x12381da tree_ssa_lim
gcc_src/gcc/tree-ssa-loop-im.c:3148
0x12381da execute
gcc_src/gcc/tree-ssa-loop-im.c:3198

GCC version:
11.0.0 (bcb63eb2cbd3caf212b9cf42d8c218c09dc6ff8b)

[Bug tree-optimization/95281] New: ICE: in compute_live_loop_exits, at tree-ssa-loop-manip.c:247

2020-05-22 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95281

Bug ID: 95281
   Summary: ICE: in compute_live_loop_exits, at
tree-ssa-loop-manip.c:247
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Error:
>$g++ -O3 -c func.cpp
during GIMPLE pass: lim
func.cpp: In function ‘void c(bool, unsigned int*)’:
func.cpp:5:6: internal compiler error: in compute_live_loop_exits, at
tree-ssa-loop-manip.c:247
5 | void c(bool d, unsigned e[]) {
  |  ^
0x827f56 compute_live_loop_exits
gcc_src/gcc/tree-ssa-loop-manip.c:247
0x827f56 add_exit_phis_var
gcc_src/gcc/tree-ssa-loop-manip.c:334
0x827f56 add_exit_phis
gcc_src/gcc/tree-ssa-loop-manip.c:356
0x827f56 rewrite_into_loop_closed_ssa_1(bitmap_head*, unsigned int, int, loop*)
gcc_src/gcc/tree-ssa-loop-manip.c:678
0x827f56 rewrite_into_loop_closed_ssa_1(bitmap_head*, unsigned int, int, loop*)
gcc_src/gcc/tree-ssa-loop-manip.c:631
0x1238f8b move_computations
gcc_src/gcc/tree-ssa-loop-im.c:1309
0x1238f8b tree_ssa_lim
gcc_src/gcc/tree-ssa-loop-im.c:3151
0x1238f8b execute
gcc_src/gcc/tree-ssa-loop-im.c:3198


Reproducer:
#include 

short a;
extern short b[];
void c(bool d, unsigned e[]) {
  for (short f = 0; f < 20; f += 4)
for (int g = 0; g < 23; g++) {
  a = std::max(e[f], (unsigned)d);
  b[g] = 5;
}
}

GCC version:
11.0.0 (bcb63eb2cbd3caf212b9cf42d8c218c09dc6ff8b)

[Bug tree-optimization/95268] New: ICE: invalid ‘PHI’ argument

2020-05-21 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95268

Bug ID: 95268
   Summary: ICE: invalid ‘PHI’ argument
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

GCC fails with "invalid ‘PHI’ argument"

Error:
>$ g++ -O3 func.cpp -w
func.cpp: In function ‘void test()’:
func.cpp:10:6: error: invalid ‘PHI’ argument
   10 | void test() {
  |  ^~~~
{CLOBBER}
_98 = PHI <{CLOBBER}(5), _17(7)>
during GIMPLE pass: sink
func.cpp:10:6: internal compiler error: verify_gimple failed
0x113ea11 verify_gimple_in_cfg(function*, bool)
gcc_src/gcc/tree-cfg.c:5461
0x101204f execute_function_todo
gcc_src/gcc/passes.c:1985
0x1012e2e execute_todo
gcc_src/gcc/passes.c:2039

Reproducer:
#include 

extern short var_0, var_2, var_3, var_9, var_11, var_13, var_14, var_19,
var_22,
var_32, var_37, var_44, var_57, var_59, var_63, var_70;
extern unsigned var_5;
extern char var_6, var_12, var_18, var_38, var_39, var_43, var_55, var_64,
arr_35;
extern long var_7, var_8, var_10, var_15, var_25, var_56;
extern int var_21, var_36, var_51, var_65, var_68, arr_7;
extern bool var_46, var_58, var_67;

void test() {
  var_12 = 0 >= 0;
  var_13 = arr_7;
  var_14 = (unsigned long)var_7 >> -564810131 + 564810189;
  var_15 = var_5;
  var_18 = -602739307623583391;
  var_19 = -~0;
  var_21 = var_10 >> var_8 - 17101301574577641170ULL;
  var_22 = var_5;
  var_25 = var_9;
  var_32 = std::max((unsigned)var_2, var_5);
  var_36 = 9557;
  var_37 = 394545925;
  var_38 = 0 >= 0;
  var_39 = var_5;
  var_43 = 0;
  var_44 = arr_35;
  var_46 = var_7;
  for (short a = 0; a < 9; a = 021)
for (short b = 0; b < 024; b += 4)
  var_51 = std::min((long long)(var_2 ?: var_9), (long long)var_9);
  var_55 = var_0;
  var_56 = 3896150587;
  var_57 = var_11;
  var_58 = var_59 = var_11;
  var_63 = 73;
  var_64 = 10393232284806619711ULL;
  var_65 = var_3;
  var_67 = var_6;
  var_68 = var_70 = 0;
}

GCC version:
11.0.0 (149c8c7c27a17a2941d07e2f76b1e1c823e2fa80)

[Bug tree-optimization/95248] New: GCC produces incorrect code with -O3 for loops

2020-05-20 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95248

Bug ID: 95248
   Summary: GCC produces incorrect code with -O3 for loops
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

GCC produces incorrect code with -O3 for loops

Error:
>$ gcc -O0 driver.cpp func.cpp && ./a.out
1
>$ gcc -O3 driver.cpp func.cpp && ./a.out
0

Reproducer:
>$ cat driver.cpp
#include 

int var_2 = -2013646301;
int var_3 = -1126567434;
unsigned int var_12 = 1;
unsigned int var_19;
unsigned int arr_25 [24] [21] [15] [17] [15] ;

void test();

int main() {
test();
printf("%u\n", var_19);
}

>$ cat func.cpp
extern int var_2;
extern int var_3;
extern unsigned int var_12;
extern unsigned int var_19;
extern unsigned int arr_25 [24] [21] [15] [17] [15] ;

void test() {
  for (int a = 0; a < 3; a = 42)
for (int b = 0; b < 20; b++)
  for (int c = 0; c < 4; c = 4)
for (int d = 0; d < 6; d += 4)
  for (int e = 0; e < 4; e += 2) {
arr_25[a][b][c][d][e] = var_2 || var_3;
var_19 = var_12;
  }
}

GCC version:
gcc version 11.0.0 (ed63c387aa0bc1846082524455a6ff1fcec40f9d)

[Bug tree-optimization/94727] New: GCC produces incorrect code with -O3

2020-04-22 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94727

Bug ID: 94727
   Summary: GCC produces incorrect code with -O3
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

GCC produces incorrect code with -O3.

Reproducer:
>$ cat func.cpp 
extern bool var_3;
extern unsigned long long int var_11;
extern unsigned char arr_41 [14] [14] [19] [16] [18] ;
extern long long int arr_42 [14] [14] [19] [16] [18] ;

void test() {
  for (int a = 0; a < 3; a++)
for (char b = 0; b < 3; b = 4)
  for (int c = 0; c < 8; c++)
for (short d = 0; d < 5; d += 4)
  for (char e = 0; e < 17; e++)
arr_42[a][b][c][d][e] = (arr_41[a][b][c][d][e] < var_11) > var_3;
}

>$ cat driver.cpp 
#include 

bool var_3 = (bool)0;
unsigned long long int var_11 = 14035841137156193017ULL;
unsigned char arr_41 [14] [14] [19] [16] [18] ;
long long int arr_42 [14] [14] [19] [16] [18] ;
void test();

int main() {
for (size_t i_0 = 0; i_0 < 14; ++i_0)
for (size_t i_1 = 0; i_1 < 14; ++i_1)
for (size_t i_2 = 0; i_2 < 19; ++i_2)
for (size_t i_3 = 0; i_3 < 16; ++i_3)
for (size_t i_4 = 0; i_4 < 18; ++i_4)
arr_41 [i_0] [i_1] [i_2] [i_3] [i_4] = (unsigned
char)226;
for (size_t i_0 = 0; i_0 < 14; ++i_0)  
for (size_t i_1 = 0; i_1 < 14; ++i_1)
for (size_t i_2 = 0; i_2 < 19; ++i_2)
for (size_t i_3 = 0; i_3 < 16; ++i_3)
for (size_t i_4 = 0; i_4 < 18; ++i_4)
arr_42 [i_0] [i_1] [i_2] [i_3] [i_4] =
-5577957210778461327LL;
test();
printf("%lld\n", arr_42[0][0][0][0][0]);
}

Error:
>$ g++ func.cpp driver.cpp -O0 && ./a.out 
1
>$ g++ func.cpp driver.cpp -O3 && ./a.out 
0

GCC version:
10.0.1 (87841658d4fa5174d1797ee0abc73b3b3f11cad4)

[Bug tree-optimization/91403] New: GCC fails with ICE.

2019-08-08 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91403

Bug ID: 91403
   Summary: GCC fails with ICE.
   Product: gcc
   Version: tree-ssa
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

GCC fails with an internal compiler error. Sometimes the compilation takes
about 12 minutes before it fails. Originally the bug was reported in r91178.

Reproducer:
extern int a[][1240092];
int b;
void c() {
  for (int d = 2; d <= 9; d++)
for (int e = 32; e <= 41; e++)
  b += a[d][5];
}

Error:
>$ gcc -march=skylake-avx512 -c -O3 small.c
gcc: internal compiler error: Segmentation fault signal terminated program cc1

GCC version:
gcc version 10.0.0 (rev. 274155)

[Bug tree-optimization/91178] [9 Regression] Infinite recursion in split_constant_offset in slp after r260289

2019-08-08 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91178

--- Comment #17 from Vsevolod Livinskiy  ---
(In reply to Serge Belyshev from comment #16)
> (In reply to Vsevolod Livinskiy from comment #15)
> > I don't know if it is the same error or not, but the reproducer looks
> > similar.
> 
> This one is different.  It does not fail for me with -O3
> -march=skylake-avx512, just slow and consumes over 1G of memory.
> 
> But with just "-O3" it blows up the stack during predictive commoning pass
> via  follow_ssa_edge tree-scalar-evolution.c:1350 --> follow_ssa_edge_in_rhs
> tree-scalar-evolution.c:1135 -->  follow_ssa_edge_binary
> tree-scalar-evolution.c:947 --> follow_ssa_edge tree-scalar-evolution.c:1350
> recursion.
> 
> Git bisect points at r256634.

Thank you! I'll open a new bug to keep them separated.

[Bug tree-optimization/91178] [9 Regression] Infinite recursion in split_constant_offset in slp after r260289

2019-08-07 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91178

--- Comment #15 from Vsevolod Livinskiy  ---
I don't know if it is the same error or not, but the reproducer looks similar.
It takes about 11 minutes before GCC fails.

Reproducer:
extern int a[][1240092];
int b;
void c() {
  for (int d = 2; d <= 9; d++)
for (int e = 32; e <= 41; e++)
  b += a[d][5];
}

Error:
>$ gcc -march=skylake-avx512 -c -O3 small.c
gcc: internal compiler error: Segmentation fault signal terminated program cc1

GCC version:
gcc version 10.0.0 (rev. 274155)

[Bug tree-optimization/91293] New: Wrong code with -O3

2019-07-29 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91293

Bug ID: 91293
   Summary: Wrong code with -O3
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

GCC produces wrong code with -O3 option.

Reproducer:
#include 

long long a;
unsigned b, c;
int d = 62;

void e(long long *f, int p2) { *f = p2; }
int main() {
  for (int g = 2; g <= d; g++) {
c += 5 - g;
b += g + 4;
  }
  e(&a, b);
  printf("%llu\n", a);
}

Error:
>$ gcc -march=skylake-avx512 -O3 small.c ; ./a.out
18446744073709550508
>$ gcc -march=skylake-avx512 -O0 small.c ; ./a.out
2196

GCC version: 10.0.0 (rev. 273839)

[Bug tree-optimization/91178] [9 Regression] Infinite recursion in split_constant_offset in slp after r260289

2019-07-26 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91178

--- Comment #8 from Vsevolod Livinskiy  ---
It looks like the fix doesn't handle all of the cases. I still can see similar
bugs on the trunk.

Reproducer:
int a[100][70304];
int b[100];
void c() {
  for (int d = 2; d < 4; d++)
for (int e = 2; e <= 50; e++)
  for (int f = 32; f <= 38; f++)
b[d + f] -= a[e][5];
}

Error"
>$ gcc -O3 -march=skylake-avx512 repr.c
gcc: internal compiler error: Segmentation fault signal terminated program cc1

GCC version 10.0.0 (revision: 273743)

[Bug tree-optimization/91240] New: Wrong code with -O3

2019-07-23 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91240

Bug ID: 91240
   Summary: Wrong code with -O3
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

GCC produces wrong code with -O3.

Reproducer:

#include 

long long a;
int b[96][76];
int c[81];

void d(long long *e, int p2) { *e ^= p2; }

int main() {
  for (int f = 0; f < 80; ++f)
for (int g = 0; g < 76; ++g)
  b[f][g] = c[f] = 9094;

  for (int f = 6; f <= 9; f++)
for (int g = 6; g <= 75; g++)
  if (b[0][g])
c[f + 1] *= f + (unsigned)c[f];

  printf("%d\n", c[8]);
}

Error:
>$ gcc -O3 small.c ; ./a.out
1637288310
>$ gcc -O0 small.c ; ./a.out
-2106497818

GCC version is 10.0.0 (Rev: 273743)

[Bug tree-optimization/91207] New: Wrong code with -O3

2019-07-18 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91207

Bug ID: 91207
   Summary: Wrong code with -O3
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

GCC produces wrong code with -O3.

Reproducer:

#include 

long long a;
int b[92][32];
unsigned int c, d;

void e(long long *f, int p2) { *f = p2; }

int main() {
  for (int i = 6; i <= 20; d = i++)
for (int j = 6; j <= 91; j++) {
  for (int k = 16; k <= 31;k++)
b[j][k] ^= 7;
  c *= d;
}

  for (int i = 0; i < 21; ++i)
for (int j = 0; j < 32; ++j)
  e(&a, b[i][j]);

  printf("%llu\n", a);
}

Error:
>$ gcc -O0 repr.c ; ./a.out
7
>$ gcc -O3 repr.c ; ./a.out
0

GCC version is 10.0.0 (Revision: 273580)

[Bug tree-optimization/91204] New: ICE in expand_expr_real_2, at expr.c:9215 with -O3

2019-07-18 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91204

Bug ID: 91204
   Summary: ICE in expand_expr_real_2, at expr.c:9215 with -O3
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

GCC fails with ICE in expand_expr_real_2, at expr.c:9215.

Reproducer:

int a, b;
extern int c[];
void d() {
  for (int e = 6; e <= a; e++)
c[e] &= b ^ c[e] ^ c[e - 2];
}

Error:
>$ gcc -c -O3 small.c
during RTL pass: expand
small.c: In function ‘d’:
small.c:5:10: internal compiler error: in expand_expr_real_2, at expr.c:9215
5 | c[e] &= b ^ c[e] ^ c[e - 2];
  |  ^~
0x8c9408 expand_expr_real_2(separate_ops*, rtx_def*, machine_mode,
expand_modifier)
/gcc/expr.c:9215
0x8d0532 expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
/gcc/expr.c:9948
0x8dac5e expand_expr
/gcc/expr.h:281
0x8dac5e expand_operands(tree_node*, tree_node*, rtx_def*, rtx_def**,
rtx_def**, expand_modifier)
/gcc/expr.c:7878
0x8c829d expand_expr_real_2(separate_ops*, rtx_def*, machine_mode,
expand_modifier)
/gcc/expr.c:9738
0x796a60 expand_gimple_stmt_1
/gcc/cfgexpand.c:3814
0x796a60 expand_gimple_stmt
/gcc/cfgexpand.c:3875
0x79da4f expand_gimple_basic_block
/gcc/cfgexpand.c:5915
0x7a027e execute
/gcc/cfgexpand.c:6538

GCC version is 10.0.0 (rev. 273556)

[Bug tree-optimization/91178] New: GCC fails with internal compiler error.

2019-07-15 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91178

Bug ID: 91178
   Summary: GCC fails with internal compiler error.
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

GCC fails with an internal compiler error. Sometimes the compilation takes
about 5 minutes before it fails. Everything works fine with -O2.

Reproducer:
int a;
extern int f[10][91125];
int b[50];
void c() {
  for (int d = 6; d <= a; d++)
for (int e = 16; e <= 24; e++)
  b[e] -= f[d][d];
}

Error:
>$ gcc -c -O3 small.c
gcc: internal compiler error: Segmentation fault signal terminated program cc1

GCC version:
gcc version 10.0.0 (revision: 273474)

[Bug tree-optimization/91145] New: ICE: in vect_build_slp_tree_2, at tree-vect-slp.c:1143 with -march=skylake-avx512 -O3

2019-07-11 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91145

Bug ID: 91145
   Summary: ICE: in vect_build_slp_tree_2, at tree-vect-slp.c:1143
with -march=skylake-avx512 -O3
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

GCC fails with ICE with -march=skylake-avx512 -O3 options.

Reproducer:

int a, c;
unsigned b, e;
extern unsigned d[100];

void f() {
  for (int g = 0; g < 70; g++) {
b += d[g] - c;
e -= g ^ a;
  }
}


Error:
>$ gcc -march=skylake-avx512 -O3 -c small.c
during GIMPLE pass: vect
small.c: In function ‘f’:
small.c:5:6: internal compiler error: in vect_build_slp_tree_2, at
tree-vect-slp.c:1143
5 | void f() {
  |  ^
0xf13128 vect_build_slp_tree_2
  /gcc/tree-vect-slp.c:1143
0xf0ffac vect_build_slp_tree
  /gcc/tree-vect-slp.c:1073
0xf119a3 vect_build_slp_tree_2
  /gcc/tree-vect-slp.c:1218
0xf0ffac vect_build_slp_tree
  /gcc/tree-vect-slp.c:1073
0xf16744 vect_analyze_slp_instance
  /gcc/tree-vect-slp.c:1985
0xf18158 vect_analyze_slp(vec_info*, unsigned int)
  /gcc/tree-vect-slp.c:2212
0xf000ce vect_analyze_loop_2
  /gcc/tree-vect-loop.c:1985
0xf000ce vect_analyze_loop(loop*, _loop_vec_info*, vec_info_shared*)
  /gcc/tree-vect-loop.c:2379
0xf1d847 try_vectorize_loop_1
  /gcc/tree-vectorizer.c:886
0xf1e5c9 vectorize_loops()
  /gcc/tree-vectorizer.c:1114

GCC version:
gcc version 10.0.0 (Rev: 273261)

[Bug tree-optimization/91137] New: Wrong code with -O3

2019-07-10 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91137

Bug ID: 91137
   Summary: Wrong code with -O3
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

GCC produces wrong code with –O3.

Reproducer:

#include 

long long a;
unsigned b;
int c[70];
int d[70][70];
int e;

void f(long long *g, int p2) { *g = p2; }

void fn2() {
  for (int j = 0; j < 70; j++) {
for (int i = 0; i < 70; i++) {
  if (b)
c[i] = 0;
  for (int l = 0; l < 70; l++)
d[i][1] = d[l][i];
}
for (int k = 0; k < 70; k++)
  e = c[0];
  }
}

int main() {
  b = 5;
  for (int j = 0; j < 70; ++j)
c[j] = 2075593088;
  fn2();
  f(&a, e);
  printf("%lld\n", a);
}

Error:
>$ gcc -O3 repr.c ; ./a.out
2075593088
>$ gcc -O0 repr.c ; ./a.out
0

GCC version:
gcc version 10.0.0 (Rev: 273261)
This error can also be reproduced with gcc version 7.3.1

[Bug tree-optimization/82192] gcc produces incorrect code with -O2 and bit-field

2017-09-12 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82192

--- Comment #4 from Vsevolod Livinskiy  ---
(In reply to jos...@codesourcery.com from comment #3)
> On Tue, 12 Sep 2017, vsevolod.livinskij at frtk dot ru wrote:
> 
> > struct struct_t {
> > unsigned int memb : 13;
> > };
> > 
> > extern struct_t b;
> 
> > printf("%llu\n", b.memb);
> 
> unsigned int : 13 (promoted to int - I think C++ promotes 
> narrower-than-int bit-fields to int, though for C++ the bit-field width is 
> not considered part of the type) is not valid for printf %llu.  You need 
> to explicitly cast to unsigned long long.

printf("%llu\n", (unsigned long long int)b.memb)
doesn't eliminate the error

[Bug tree-optimization/82192] gcc produces incorrect code with -O2 and bit-field

2017-09-12 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82192

--- Comment #2 from Vsevolod Livinskiy  ---
(In reply to Andrew Pinski from comment #1)
> Does -fsantize=undefined show anything?
> 
> I am suspecting you have undefined behavior with respect to the shift.

Test doesn't contain undefined behavior, and sanitizer verifies it.
(7227976781724269559 | a & ~3739384568U) gives 7227976781724531703, and
(7227976781724269559 | a & ~3739384568U) - 7227976781724531672 gives 31, 
so shift is OK.

[Bug tree-optimization/82192] New: gcc produces incorrect code with -O2 and bit-field

2017-09-12 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82192

Bug ID: 82192
   Summary: gcc produces incorrect code with -O2 and bit-field
   Product: gcc
   Version: 8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

gcc produces incorrect code with -O2 and higher and unsigned int : 13 bit-field

>$ g++ -O2 driver.cpp func.cpp ; ./a.out 
6930

>$ g++ -O0 driver.cpp func.cpp ; ./a.out 
0

>$ cat init.h 
extern const unsigned long int a;

struct struct_t {
unsigned int memb : 13;
};

extern struct_t b;

>$ cat driver.cpp 
#include 
#include "init.h"

const unsigned long int a = 10798855141994013410UL;

struct_t b;

extern void foo ();

int main () {
foo ();
printf("%llu\n", b.memb);
return 0;
}

>$ cat func.cpp 
#include "init.h"
void foo() {
  b.memb = unsigned(a) >> (7227976781724269559 | a & ~3739384568U) -
7227976781724531672;
}

>$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/gcc-dev/bin-trunk/libexec/gcc/x86_64-pc-linux-gnu/8.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /gcc-dev/trunk/configure --prefix=/gcc-dev/bin-trunk
--disable-bootstrap
Thread model: posix
gcc version 8.0.0 20170912 (Rev. 252003) (GCC)

[Bug tree-optimization/82073] internal compiler error: in pop_to_marker, at tree-ssa-scopedtables.c

2017-09-05 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82073

--- Comment #2 from Vsevolod Livinskiy  ---
(In reply to Eric Gallager from comment #1)
> Could you post the output of g++ -v so we have version and target info
> please?
Revision is 251589

>$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/gcc/x86_64-pc-linux-gnu/8.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /gcc-dev/bin-trunk --disable-bootstrap
Thread model: posix
gcc version 8.0.0 20170901 (experimental) (GCC)

[Bug tree-optimization/82073] New: internal compiler error: in pop_to_marker, at tree-ssa-scopedtables.c

2017-09-01 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82073

Bug ID: 82073
   Summary: internal compiler error: in pop_to_marker, at
tree-ssa-scopedtables.c
   Product: gcc
   Version: 8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Created attachment 42099
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=42099&action=edit
Reproducer.

The testcase is huge and weird, but it seems to be key to this ICE. Also
Creduce has failed to reduce it even further.

>$ g++ -std=c++11 -w -c -O2 repr.cpp 
during GIMPLE pass: dom
repr.cpp: In function ‘void foo()’:
repr.cpp:176:6: internal compiler error: in pop_to_marker, at
tree-ssa-scopedtables.c:71
 void foo() {
  ^~~
0x104bc3e avail_exprs_stack::pop_to_marker()
/home/vsevolod/workspace/gcc-dev/trunk/gcc/tree-ssa-scopedtables.c:71
0xf9cbb3 dom_opt_dom_walker::after_dom_children(basic_block_def*)
/home/vsevolod/workspace/gcc-dev/trunk/gcc/tree-ssa-dom.c:1379
0x15716e7 dom_walker::walk(basic_block_def*)
/home/vsevolod/workspace/gcc-dev/trunk/gcc/domwalk.c:325
0xfa0dc8 execute
/home/vsevolod/workspace/gcc-dev/trunk/gcc/tree-ssa-dom.c:691
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

[Bug tree-optimization/81987] New: ICE in verify_ssa with -O3 -march=skylake-avx512

2017-08-25 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81987

Bug ID: 81987
   Summary: ICE in verify_ssa with -O3 -march=skylake-avx512
   Product: gcc
   Version: 8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

g++ -O3 -march=skylake-avx512 fails with ICE in verify_ssa with error:
definition in block 11 does not dominate use in block 2

There are several trackers with the same error message, but some of them fails
only with -O2 -floop-nest-optimize option (69675, 79483), other were fixed
(71252). So i don't know, if this bug is duplicate or not.

>$ cat repr.cpp
extern short var_1;
extern const short var_3;
extern unsigned long int var_9;
extern short var_13;
extern const unsigned long int var_15;
extern const unsigned long int var_37;
extern unsigned long int var_40;
extern long long int var_47;
extern short var_48;
extern const short var_54;
extern long long int var_79;
extern long long int var_81;
extern long long int var_94;
extern long long int var_95;
extern long long int var_701;
extern unsigned long int var_786;
extern short var_788;
extern long long int var_844;

struct struct_1 {
short member_1_2 : 30;
static long long int member_1_3;
};

extern struct_1 struct_obj_6;
extern struct_1 struct_obj_8;

void foo() {
  int a = var_3 <= 602154393864UL;
  if (var_81 ? 0 : var_3 && var_9)
;
  else {
var_94 = 0;
if (var_3 && var_48 || var_13) {
  if (var_48)
var_95 = 0;
  short b((236446151776511UL + var_3) * (2 ? var_13 : 0) || var_1);
  struct_obj_8.member_1_2 = b;
  if (var_15) {
if (var_81)
  if (var_47)
;
  else if (var_40)
var_701 = 0;
  } else {
if (var_40)
  var_79 = 0;
if (var_54) {
  if (var_37)
var_786 = 0;
  else
var_788 = 0;
  struct_obj_6.member_1_3 =
  (236446151776511UL + var_3) * (2 ? var_13 : 0);
}
  }
  if ((236446151776511UL + var_3) * (2 ? var_13 : 0))
var_844 = 0;
}
  }
}

Error:
>g++ -O3 -march=skylake-avx512 -c repr.cpp
repr.cpp: In function ‘void foo()’:
repr.cpp:28:6: error: definition in block 11 does not dominate use in block 2
 void foo() {
  ^~~
for SSA_NAME: _10 in statement:
slsr_104 = _10 * 236446151776511;
during GIMPLE pass: slsr
repr.cpp:28:6: internal compiler error: verify_ssa failed
0x1095c1b verify_ssa(bool, bool)
/home/vsevolod/workspace/gcc-dev/trunk/gcc/tree-ssa.c:1188
0xd7ad1d execute_function_todo
/home/vsevolod/workspace/gcc-dev/trunk/gcc/passes.c:1999
0xd7b619 execute_todo
/home/vsevolod/workspace/gcc-dev/trunk/gcc/passes.c:2046

GCC version is 251301

[Bug c++/80630] gcc fails to compile constexpr with -O0/-O1

2017-05-04 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80630

Vsevolod Livinskiy  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from Vsevolod Livinskiy  ---
Missed out-of-line definition for A::debug_typeid:

constexpr uint32_t A::debug_typeid;

[Bug c++/80630] New: gcc fails to compile constexpr with -O0/-O1

2017-05-04 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80630

Bug ID: 80630
   Summary: gcc fails to compile constexpr with -O0/-O1
   Product: gcc
   Version: 8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Created attachment 41318
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41318&action=edit
Reproducer.

gcc fails to compile constexpr at -O0 and -O2 with -std=c++11 and -std=c++14.
Everything works fine with -std=c++17.

Reproducer:
>$ cat repr.cpp 
#include 
#include 

template
void foo() {
std::cout << T::debug_typeid << std::endl;
std::make_pair(T::debug_typeid, T::debug_typeid);
}

struct A {
static constexpr uint32_t debug_typeid = 1;
}; 

int main () {
foo();
}

Error:
>$ g++ -std=c++11 repr.cpp -O0 ; ./a.out
/tmp/cckPqG1z.o: In function `void foo()':
repr.cpp:(.text._Z3fooI1AEvv[_Z3fooI1AEvv]+0x21): undefined reference to
`A::debug_typeid'
repr.cpp:(.text._Z3fooI1AEvv[_Z3fooI1AEvv]+0x26): undefined reference to
`A::debug_typeid'
collect2: error: ld returned 1 exit status

GCC revision:247564

[Bug tree-optimization/80620] New: gcc produces wrong code with -O3

2017-05-03 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80620

Bug ID: 80620
   Summary: gcc produces wrong code with -O3
   Product: gcc
   Version: 7.0.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Created attachment 41311
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41311&action=edit
Reproducer.

gcc produces wrong code with -O3. It fails on multiple architectures (knl,
skylake-avx512 and others)

Reproducer:
>$ cat func.c 
extern const long int var_10;
extern int var_43;
extern int var_732;
extern int var_743;
extern int var_748;
extern int var_999;
extern unsigned long int var_751;

void foo() {
  if (!var_10 - var_10)
var_732 = var_43 = 0;
  else
var_743 = 3UL * var_10 == 0;
  if (var_999 / var_10)
var_748 = 0 < -var_10 + 500849970701012771 + (unsigned long)-var_10;
  else
var_751 = 4081116982543369 & var_10;
}

>$ cat driver.c 
#include 

const long int var_10 = -465274079317386463L;
int var_43 = 856872806;
int var_732 = -1940894202;
int var_743 = 1718449211;
int var_748 = -392681565;
unsigned long int var_751 = 13521452247506316486UL;
int var_999 = -13194608;

extern void foo ();

int main () {
foo ();
printf("%lu\n", var_751);
return 0;
}

Error:
>$ gcc -O3 driver.c func.c ; ./a.out 
17981469994392165153
>$ gcc -O0 driver.c func.c ; ./a.out 
2818598057803777

GCC revision: 247564

[Bug middle-end/80362] New: gcc miscompiles arithmetic with signed char

2017-04-07 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80362

Bug ID: 80362
   Summary: gcc miscompiles arithmetic with signed char
   Product: gcc
   Version: 7.0.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Created attachment 41156
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41156&action=edit
Reproducer.

GCC produces wrong code for a bunch of different architectures.
Reproducer:
#include 

signed char var_0 = 0;
signed char var_1 = 128; 

void foo () {
//(signed char)(-(signed char)(128)) / 3 should be equal to (signed
char)(-var_1) / 3;
var_0 = (signed char)(-var_1) / 3;
}

int main () {
foo ();
printf("%d\n", var_0);
return 0;
}
Error:
>$ g++ -O0 -march=broadwell repr.c ; ./a.out
-42
>$ g++ -O3 -march=broadwell repr.c ; ./a.out 
42

GCC version:
rev. 246778
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/home/vsevolod/workspace/gcc-dev/bin-trunk/libexec/gcc/x86_64-pc-linux-gnu/7.0.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /home/vsevolod/workspace/gcc-dev/trunk/configure
--prefix=/home/vsevolod/workspace/gcc-dev/bin-trunk --disable-bootstrap
Thread model: posix
gcc version 7.0.1 20170407 (experimental) (GCC)

[Bug c/80341] New: gcc miscompiles division of signed char

2017-04-06 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80341

Bug ID: 80341
   Summary: gcc miscompiles division of signed char
   Product: gcc
   Version: 7.0.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Created attachment 41140
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41140&action=edit
Reproducer.

GCC generates incorrect code. Correct result is 90.

Reproducer:
>$ cat foo.c
extern const signed char var_25;
extern signed char var_465;

void foo() { 
var_465 = (unsigned short) var_25 / -55; 
} 
>$ cat main.c
#include 

extern void foo ();

const signed char var_25 = -84;
signed char var_465 = 0;

int main () {
foo ();
printf("%d\n", (int) var_465);
return 0;
}

Run:
>$ gcc main.c foo.c ; ./a.out 
1

GCC version:
Rev. 246681
>$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/home/vsevolod/workspace/gcc-dev/bin-trunk/libexec/gcc/x86_64-pc-linux-gnu/7.0.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /home/vsevolod/workspace/gcc-dev/trunk/configure
--prefix=/home/vsevolod/workspace/gcc-dev/bin-trunk --disable-bootstrap
Thread model: posix
gcc version 7.0.1 20170404 (experimental) (GCC)

[Bug tree-optimization/80072] New: ICE in gimple_build_assign_1 with -O3 -march=broadwell/skylake-avx512

2017-03-16 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80072

Bug ID: 80072
   Summary: ICE in gimple_build_assign_1 with -O3
-march=broadwell/skylake-avx512
   Product: gcc
   Version: 7.0.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Created attachment 40988
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40988&action=edit
Reproducer.

GCC fails with ICE with -O3 -march=broadwell/skylake-avx512 options.

Error:
>$ g++ -O3 -c -w -march=broadwell repr.cpp
internal compiler error: in gimple_build_assign_1, at gimple.c:422
 void foo () {
  ^~~
0xabf24b gimple_build_assign_1
/home/vsevolod/workspace/gcc-dev/trunk/gcc/gimple.c:422
0xabf24b gimple_build_assign(tree_node*, tree_code, tree_node*, tree_node*)
/home/vsevolod/workspace/gcc-dev/trunk/gcc/gimple.c:453
0xf1af6d rewrite_expr_tree
/home/vsevolod/workspace/gcc-dev/trunk/gcc/tree-ssa-reassoc.c:4242
0xf1abb8 rewrite_expr_tree
/home/vsevolod/workspace/gcc-dev/trunk/gcc/tree-ssa-reassoc.c:4287
(.)

GCC version:
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/home/vsevolod/workspace/gcc-dev/bin-trunk/libexec/gcc/x86_64-pc-linux-gnu/7.0.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /home/vsevolod/workspace/gcc-dev/trunk/configure
--prefix=/home/vsevolod/workspace/gcc-dev/bin-trunk
Thread model: posix
gcc version 7.0.1 20170315 (experimental) (GCC)

Test case is huge and creduce has failed to reduce it further.

[Bug sanitizer/80067] New: ICE in fold_comparison with -fsanitize=undefined

2017-03-16 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80067

Bug ID: 80067
   Summary: ICE in fold_comparison with -fsanitize=undefined
   Product: gcc
   Version: 7.0.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: sanitizer
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org,
jakub at gcc dot gnu.org, kcc at gcc dot gnu.org
  Target Milestone: ---

Created attachment 40984
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40984&action=edit
Reproducer.

GCC crashes with with -fsanitize=undefined option.

Reproducer:
extern signed char a;
void foo () { 
0 << ((647 > a) - 1); 
}

Error:
>$ g++ -fsanitize=undefined -c repr.cpp 
repr.cpp: In function ‘void foo()’:
repr.cpp:3:24: internal compiler error: tree check: expected class
‘expression’, have ‘constant’ (integer_cst) in fold_comparison, at
fold-const.c:8707
 0 << ((647 > a) - 1);
^
0x10100b7 tree_class_check_failed(tree_node const*, tree_code_class, char
const*, int, char const*)
/home/vsevolod/workspace/gcc-dev/trunk/gcc/tree.c:9867
0xa94317 expr_check(tree_node*, char const*, int, char const*)
/home/vsevolod/workspace/gcc-dev/trunk/gcc/tree.h:3233
0xa94317 fold_comparison
(...)

GCC version:
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/home/vsevolod/workspace/gcc-dev/bin-trunk/libexec/gcc/x86_64-pc-linux-gnu/7.0.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /home/vsevolod/workspace/gcc-dev/trunk/configure
--prefix=/home/vsevolod/workspace/gcc-dev/bin-trunk
Thread model: posix
gcc version 7.0.1 20170315 (experimental) (GCC)

[Bug tree-optimization/80054] New: ICE in verify_ssa with -O3 -march=broadwell/skylake-avx512

2017-03-15 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80054

Bug ID: 80054
   Summary: ICE in verify_ssa with -O3
-march=broadwell/skylake-avx512
   Product: gcc
   Version: 7.0.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Created attachment 40978
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40978&action=edit
Reproducer.

ICE with -O3 -march=broadwell (and skylake-avx512). Everything works fine with
other optimization levels.

Error:
>$ g++ -O3 -march=broadwell -c repr.cpp
repr.cpp: In function ‘void foo()’:
repr.cpp:17:6: error: definition in block 7 does not dominate use in block 6
 void foo() {
  ^~~
for SSA_NAME: _133 in statement:
slsr_142 = PHI <_133(6), _133(16)>
PHI argument
_133
for PHI node
slsr_142 = PHI <_133(6), _133(16)>
repr.cpp:17:6: internal compiler error: verify_ssa failed
0xf84ad3 verify_ssa(bool, bool)
/home/vsevolod/workspace/gcc-dev/trunk/gcc/tree-ssa.c:1184
0xc98ea7 execute_function_todo
/home/vsevolod/workspace/gcc-dev/trunk/gcc/passes.c:1973
0xc99e0b execute_todo
/home/vsevolod/workspace/gcc-dev/trunk/gcc/passes.c:2016

Reproducer:
extern short var_2;
extern short var_4;
extern const bool var_32;
extern short var_36;
extern const bool var_37;
extern bool var_46;
extern unsigned int var_47;
extern short var_49;
extern unsigned int var_56;
extern unsigned int var_62;
extern unsigned int var_65;
extern bool var_831;
extern unsigned int var_843;
extern short var_846;
extern short var_889;

void foo() {
if (var_36 * var_37)
var_831 = var_56 = 0;
else
var_65 = 0;

if (var_46)
var_843 = 0;

var_846 = 0;

if ((var_4 == 0) >> (var_32 | -(var_37 < var_46 || var_36)) + 8)
var_49 = 2032651381 * bool(var_2 * var_37);
else {
var_62 = 0;
var_47 = (var_46 || var_36) * (var_2 * var_37);
}

var_889 = bool(var_2 * var_37);
}

GCC version:
gcc version 7.0.1 (today's trunk)

[Bug target/78132] New: GCC produces invalid instruction (kmovd and kmovq) for KNL.

2016-10-27 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78132

Bug ID: 78132
   Summary: GCC produces invalid instruction (kmovd and kmovq) for
KNL.
   Product: gcc
   Version: 7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Created attachment 39909
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=39909&action=edit
Reproducer.

GCC produces invalid instruction (kmovd and kmovq) for KNL. The reproducer for
kmovq was attached, but I there is exist similar error for kmovd.

Reproducer:
unsigned short c;
char a, d, f, b;
short e;
long g;
int main() {
  g = c;
  f = c & e;
  d = c & a | e;
  if (a)
b = c;
}

GCC version:
>$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/home/vlivinsk/workspace/gcc-dev/bin-trunk/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /home/vlivinsk/workspace/gcc-dev/trunk/configure
--prefix=/home/vlivinsk/workspace/gcc-dev/bin-trunk
Thread model: posix
gcc version 7.0.0 20161026 (experimental) (GCC)

Error:
>$ g++ -O3 -march=knl small.cpp
>$ sde -knl -- ./a.out
TID 0 SDE-ERROR: Executed instruction not valid for specified chip (KNL):
0x400436: kmovq k0, rax
Image: a.out+0x436 (in multi-region image, region# 0)
Function: main
Instruction bytes are: c4 e1 fb 92 c0

[Bug target/70941] New: [5/6/7 Regression] Test miscompiled with -O2.

2016-05-04 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70941

Bug ID: 70941
   Summary: [5/6/7 Regression] Test miscompiled with -O2.
   Product: gcc
   Version: 7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Created attachment 38409
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38409&action=edit
Reproducer.

Test case produces incorrect result with -O2 option.

Output:
> g++ -O0 repr.cpp; ./a.out
-109
> g++ -O3 repr.cpp; ./a.out
-110

GCC version:
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/export/users/vlivinsk/gcc-trunk/bin/bin/../libexec/gcc/x86_64-pc-linux-gnu/7.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /export/users/gnutester/stability/svn/trunk/configure
--prefix=/export/users/gnutester/stability/work/trunk/64/install
--enable-bootstrap=no --enable-languages=c,c++,fortran
Thread model: posix
gcc version 7.0.0 20160430 (experimental) (GCC)

Testcase:
#include 
#include 

char a = 0, b = 0, c = 0, d = 0;
int main() {
a = -(b - 405418259) - ((d && c) ^ 2040097152);
if (a != -109)
abort();
}

[Bug target/70733] Wrong code with nested structs and bit field.

2016-04-20 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70733

--- Comment #1 from Vsevolod Livinskiy  ---
(In reply to Vsevolod Livinskiy from comment #0)
> Created attachment 38314 [details]
> Reproducer.
> 
> Test case produces incorrect result.
> 
> Output:
> > clang++ repr.cpp; ./a.out
> -4
> > g++ repr.cpp; ./a.out
> 137438953468
> 
> GCC version:
> > g++ -v
> Using built-in specs.
> COLLECT_GCC=g++
> COLLECT_LTO_WRAPPER=/export/users/vlivinsk/gcc-trunk/bin/libexec/gcc/x86_64-
> pc-linux-gnu/7.0.0/lto-wrapper
> Target: x86_64-pc-linux-gnu
> Configured with: /export/users/vlivinsk/gcc-trunk/gcc/configure
> --with-arch=corei7 --with-cpu=corei7 --enable-clocale=gnu --with-system-zlib
> --enable-shared --with-demangler-in-ld --enable-cloog-backend=isl
> --with-fpmath=sse --enable-checking=release --enable-languages=c,c++,lto
> --with-gmp=/export/users/vlivinsk/gcc-trunk/gmp-6.1.0/bin
> --with-mpfr=/export/users/vlivinsk/gcc-trunk/mpfr-3.1.3/bin
> --with-mpc=/export/users/vlivinsk/gcc-trunk/mpc-1.0.3/bin
> --prefix=/export/users/vlivinsk/gcc-trunk/bin
> Thread model: posix
> gcc version 7.0.0 20160418 (experimental) (Revision=235129)
> 
> Test:
> #include 
> 
> struct A {
> unsigned long member : 37;
> };
> 
> struct B {
> A member;
> } b;
> 
> long a;
> 
> int main() {
> b.member.member = 4;
> a = -b.member.member;
> if (a != 4)
> abort();
> }

Typo. Should be
if (a != -4)
abort();

[Bug target/70733] New: Wrong code with nested structs and bit field.

2016-04-20 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70733

Bug ID: 70733
   Summary: Wrong code with nested structs and bit field.
   Product: gcc
   Version: 7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Created attachment 38314
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38314&action=edit
Reproducer.

Test case produces incorrect result.

Output:
> clang++ repr.cpp; ./a.out
-4
> g++ repr.cpp; ./a.out
137438953468

GCC version:
> g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/export/users/vlivinsk/gcc-trunk/bin/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /export/users/vlivinsk/gcc-trunk/gcc/configure
--with-arch=corei7 --with-cpu=corei7 --enable-clocale=gnu --with-system-zlib
--enable-shared --with-demangler-in-ld --enable-cloog-backend=isl
--with-fpmath=sse --enable-checking=release --enable-languages=c,c++,lto
--with-gmp=/export/users/vlivinsk/gcc-trunk/gmp-6.1.0/bin
--with-mpfr=/export/users/vlivinsk/gcc-trunk/mpfr-3.1.3/bin
--with-mpc=/export/users/vlivinsk/gcc-trunk/mpc-1.0.3/bin
--prefix=/export/users/vlivinsk/gcc-trunk/bin
Thread model: posix
gcc version 7.0.0 20160418 (experimental) (Revision=235129)

Test:
#include 

struct A {
unsigned long member : 37;
};

struct B {
A member;
} b;

long a;

int main() {
b.member.member = 4;
a = -b.member.member;
if (a != 4)
abort();
}

[Bug target/70542] [6 Regression] Wrong code with -O3 -mavx2.

2016-04-05 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70542

Vsevolod Livinskiy  changed:

   What|Removed |Added

  Attachment #38187|0   |1
is obsolete||

--- Comment #1 from Vsevolod Livinskiy  ---
Created attachment 38188
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38188&action=edit
Correct reproducer.

I've mixed up reproducers.

[Bug target/70542] New: [6 Regression] Wrong code with -O3 -mavx2.

2016-04-05 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70542

Bug ID: 70542
   Summary: [6 Regression] Wrong code with -O3 -mavx2.
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Created attachment 38187
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38187&action=edit
Reproducer.

Test case produces incorrect result with -O3 -mavx2 (and -march=knl and
-march=skylake-avx512. Everything works fine with gcc version 4.9.4 20160401
(prerelease) (Revision=234686) and gcc version 5.3.1 20160401
(Revision=234686).

Output:
g++ -O2 -mavx2 repr.cpp; ./a.out
1540
> g++ -O3 -mavx2 repr.cpp; ./a.out
1204

GCC version:
> g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/export/users/vlivinsk/gcc-trunk/bin/libexec/gcc/x86_64-pc-linux-gnu/6.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /export/users/vlivinsk/gcc-trunk/gcc/configure
--with-arch=corei7 --with-cpu=corei7 --enable-clocale=gnu --with-system-zlib
--enable-shared --with-demangler-in-ld --enable-cloog-backend=isl
--with-fpmath=sse --enable-checking=release --enable-languages=c,c++,lto
--with-gmp=/export/users/vlivinsk/gcc-trunk/gmp-6.1.0/bin
--with-mpfr=/export/users/vlivinsk/gcc-trunk/mpfr-3.1.3/bin
--with-mpc=/export/users/vlivinsk/gcc-trunk/mpc-1.0.3/bin
--prefix=/export/users/vlivinsk/gcc-trunk/bin
Thread model: posix
gcc version 6.0.0 20160404 (experimental) (Revision=234705)

Test:
#include 

int a[520];
short b[482];
short c[480];
int d[963];
short e[320];

int main() {
for (int i = 0; i < 520; ++i)
a[i] = -636544305;

for (int i = 0; i < 386; ++i)
b[i] = -31804;

for (long i = 1; i <= 112; ++i) {
c[i] = b[i] >> ((a[i] & 1587842570) - 1510214139);
if (a[i])
d[i] = i;
e[i] = 7 << ((2312631697 - b[i]) - 2312663500);
}

unsigned long long g = 0;
for (int i = 0; i < 111; ++i) {
g = e[i] + g;
}

if (g != 1540)
abort();
}

[Bug target/70450] New: [6 Regression] Wrong code with -O0 and -O1.

2016-03-29 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70450

Bug ID: 70450
   Summary: [6 Regression] Wrong code with -O0 and -O1.
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Created attachment 38127
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38127&action=edit
Reproducer.

Test case produces incorrect result with -O0 and -O1 on all x86 arch.
Everything works fine with gcc version 4.9.4 20160325 (prerelease)
(Revision=234483) and gcc version 5.3.1 20160325 (Revision=234483).

Output:
> g++ repr.cpp -o out -O2 -mavx2; ./out
18446744073709551584
> g++ repr.cpp -o out -O0 -mavx2; ./out
68719476704

GCC version:
> g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/export/users/vlivinsk/gcc-trunk/bin/libexec/gcc/x86_64-pc-linux-gnu/6.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /export/users/vlivinsk/gcc-trunk/gcc/configure
--with-arch=corei7 --with-cpu=corei7 --enable-clocale=gnu --with-system-zlib
--enable-shared --with-demangler-in-ld --enable-cloog-backend=isl
--with-fpmath=sse --enable-checking=release --enable-languages=c,c++,lto
--with-gmp=/export/users/vlivinsk/gcc-trunk/gmp-6.1.0/bin
--with-mpfr=/export/users/vlivinsk/gcc-trunk/mpfr-3.1.3/bin
--with-mpc=/export/users/vlivinsk/gcc-trunk/mpc-1.0.3/bin
--prefix=/export/users/vlivinsk/gcc-trunk/bin
Thread model: posix
gcc version 6.0.0 20160330 (experimental) (Revision=234545)

Testcase:
#include 

unsigned long int a = 2UL;
int b = 2;
unsigned long int c = 2UL;

void foo () {
c = 2 * ((2 * a) * (2 * (-b)));
}

int main () {
foo();
if (c != 18446744073709551584UL)
abort();
return 0;
}

[Bug target/70429] New: Wrong code with -O1.

2016-03-28 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70429

Bug ID: 70429
   Summary: Wrong code with -O1.
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Created attachment 38111
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38111&action=edit
Reproducer.

Test case produces incorrect result with -O1 and all x86 arch. Everything works
fine with -O0 option.

Output:
> g++ -O0 repr.cpp -mavx2; ./a.out
4119272
> g++ -O1 repr.cpp -mavx2; ./a.out
272554728

GCC version:
 > g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/export/users/vlivinsk/gcc-trunk/bin/libexec/gcc/x86_64-pc-linux-gnu/6.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /export/users/vlivinsk/gcc-trunk/gcc/configure
--with-arch=corei7 --with-cpu=corei7 --enable-clocale=gnu --with-system-zlib
--enable-shared --with-demangler-in-ld --enable-cloog-backend=isl
--with-fpmath=sse --enable-checking=release --enable-languages=c,c++,lto
--with-gmp=/export/users/vlivinsk/gcc-trunk/gmp-6.1.0/bin
--with-mpfr=/export/users/vlivinsk/gcc-trunk/mpfr-3.1.3/bin
--with-mpc=/export/users/vlivinsk/gcc-trunk/mpc-1.0.3/bin
--prefix=/export/users/vlivinsk/gcc-trunk/bin
Thread model: posix
gcc version 6.0.0 20160327 (experimental) (Revision=234496)

Test:
#include 
#include 

bool a = 1;
int b = 612010083;

void foo () {
b = (int)((~7710322944595239647L + 9223372036854775807L) >> a) >> 4;
}

int main () {
foo ();
if (b != 4119272)
abort();
return 0;
}

[Bug target/70354] New: [6 Regression] Wrong code with -O3 -march=broadwell and -march=skylake-avx512.

2016-03-22 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70354

Bug ID: 70354
   Summary: [6 Regression] Wrong code with -O3 -march=broadwell
and -march=skylake-avx512.
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Created attachment 38055
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38055&action=edit
Reproducer.

Test case produces incorrect result with -O3 -march=broadwell. Also it fails
with -march=skylake-avx512, but with different result. Everything works fine
with gcc version 4.9.4 20160318 (prerelease) (Revision=234347) and gcc version
5.3.1 20160318 (Revision=234347).

Output:
> g++ -std=c++11 -O0 -march=broadwell -o out repr.cpp; ./out
6060289626626340782
> g++ -std=c++11 -O3 -march=broadwell -o out repr.cpp; ./out
7868099280905707034
> g++ -std=c++11 -O3 -march=skylake-avx512 -o out repr.cpp; sde -skx -- ./out
2358867323763884526

GCC version:
> g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/export/users/vlivinsk/gcc-trunk/bin/libexec/gcc/x86_64-pc-linux-gnu/6.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /export/users/vlivinsk/gcc-trunk/gcc/configure
--with-arch=corei7 --with-cpu=corei7 --enable-clocale=gnu --with-system-zlib
--enable-shared --with-demangler-in-ld --enable-cloog-backend=isl
--with-fpmath=sse --enable-checking=release --enable-languages=c,c++,lto
--with-gmp=/export/users/vlivinsk/gcc-trunk/gmp-6.1.0/bin
--with-mpfr=/export/users/vlivinsk/gcc-trunk/mpfr-3.1.3/bin
--with-mpc=/export/users/vlivinsk/gcc-trunk/mpc-1.0.3/bin
--prefix=/export/users/vlivinsk/gcc-trunk/bin
Thread model: posix
gcc version 6.0.0 20160319 (experimental) (Revision=234350)

Test (unfortunately, I failed to reduce it further):
#include 

void hash(unsigned long long int &seed, unsigned long long int const &v) {
seed ^= v + 0x9e3779b9 + (seed<<6) + (seed>>2);
}

unsigned long long int a [1000];
long int b [1000];
long int c [1000];
unsigned long int d [1000];
unsigned long int e [1000];
unsigned long long int f [1000];
long int g [1000];
long int h [1000];

void init () {
for (int i = 0; i < 1000; ++i) {
a [i] = 14694295297531861425ULL;
b [i] = -1725558902283030715L;
c [i] = 4402992416302558097L;
d [i] = 2890788459207692227UL;
e [i] = 6297173129107286501UL;
f [i] = 13865724171235650855ULL;
g [i] = 982871027473857427L;
h [i] = 8193845517487445944L;
}
}

void foo () {
for (int i = 449; i < 768; i = ((i) + (3))) {
d [i] = h [i] << (unsigned long int)b [i] * e [i]) << (-a [i] -
3752448776177690134ULL)) - 8214565720323784703UL) - 1UL);
e [i] = (bool)(f [i] + (unsigned long long int)g [i]);
g [i] = c [i];
}
}

unsigned long long int checksum () {
unsigned long long int seed = 0ULL;
for (int i = 0; i < 1000; ++i) {
hash(seed, d [i]);
hash(seed, e [i]);
hash(seed, f [i]);
hash(seed, g [i]);
hash(seed, h [i]);
}
return seed;
}
int main () {
init ();
foo ();
std::cout << checksum () << std::endl;
return 0;
}

[Bug target/70333] New: [5/6 Regression] Test miscompiled with -O0.

2016-03-20 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70333

Bug ID: 70333
   Summary: [5/6 Regression] Test miscompiled with -O0.
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Created attachment 38042
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38042&action=edit
Reproducer.

Test case produces incorrect result with -O0. It also fails with gcc version
5.3.1 20160318 (Revision=234347) and works fine with gcc version 4.9.4 20160318
(prerelease) (Revision=234347)

GCC version:
> g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/export/users/vlivinsk/gcc-trunk/bin/libexec/gcc/x86_64-pc-linux-gnu/6.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /export/users/vlivinsk/gcc-trunk/gcc/configure
--with-arch=corei7 --with-cpu=corei7 --enable-clocale=gnu --with-system-zlib
--enable-shared --with-demangler-in-ld --enable-cloog-backend=isl
--with-fpmath=sse --enable-checking=release --enable-languages=c,c++,lto
--with-gmp=/export/users/vlivinsk/gcc-trunk/gmp-6.1.0/bin
--with-mpfr=/export/users/vlivinsk/gcc-trunk/mpfr-3.1.3/bin
--with-mpc=/export/users/vlivinsk/gcc-trunk/mpc-1.0.3/bin
--prefix=/export/users/vlivinsk/gcc-trunk/bin
Thread model: posix
gcc version 6.0.0 20160319 (experimental) (Revision=234350)

Test:
#include 

signed char a = -33;
signed char b = -60;
signed char c = 70;
long int d = 8591990532774389055L;

void foo () {
signed char e = ((unsigned long int)a < (unsigned long int)8) == (a > c);
d = ((2UL * b) * (e * 13)) * (32 << 24);
}

int main () {
foo ();
if (d != -837518622720)
abort();
return 0;
}

[Bug c++/70252] New: ICE in vect_get_vec_def_for_stmt_copy with -O3 -march=skylake-avx512.

2016-03-16 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70252

Bug ID: 70252
   Summary: ICE in vect_get_vec_def_for_stmt_copy with -O3
-march=skylake-avx512.
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Created attachment 37986
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37986&action=edit
Reproducer.

Testcase produces ICE with -O3 -march=skylake-avx512. Everything works fine
with -O2.

Error:
> g++ -O3 -march=skylake-avx512 -S repr.cpp
repr.cpp: In function ‘void foo()’:
repr.cpp:7:6: internal compiler error: in vect_get_vec_def_for_stmt_copy, at
tree-vect-stmts.c:1490
 void foo () {
  ^~~
0xc50433 vect_get_vec_def_for_stmt_copy(vect_def_type, tree_node*)
../.././gcc/tree-vect-stmts.c:1490
0xc55e8c vectorizable_condition(gimple*, gimple_stmt_iterator*, gimple**,
tree_node*, int, _slp_tree*)
../.././gcc/tree-vect-stmts.c:7640
0xc65c26 vect_transform_stmt(gimple*, gimple_stmt_iterator*, bool*, _slp_tree*,
_slp_instance*)
../.././gcc/tree-vect-stmts.c:8212
0xc6960a vect_transform_loop(_loop_vec_info*)
../.././gcc/tree-vect-loop.c:6885
0xc843bc vectorize_loops()
../.././gcc/tree-vectorizer.c:554
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

GCC version:
> g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/export/users/vlivinsk/gcc-trunk/bin/libexec/gcc/x86_64-pc-linux-gnu/6.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /export/users/vlivinsk/gcc-trunk/gcc/configure
--with-arch=corei7 --with-cpu=corei7 --enable-clocale=gnu --with-system-zlib
--enable-shared --with-demangler-in-ld --enable-cloog-backend=isl
--with-fpmath=sse --enable-checking=release --enable-languages=c,c++,lto
--with-gmp=/export/users/vlivinsk/gcc-trunk/gmp-6.1.0/bin
--with-mpfr=/export/users/vlivinsk/gcc-trunk/mpfr-3.1.3/bin
--with-mpc=/export/users/vlivinsk/gcc-trunk/mpc-1.0.3/bin
--prefix=/export/users/vlivinsk/gcc-trunk/bin
Thread model: posix
gcc version 6.0.0 20160315 (experimental) (Revision=234226)

Test:

extern unsigned char a [150];
extern unsigned char b [150];
extern unsigned char c [150];
extern unsigned char d [150];
extern unsigned char e [150];

void foo () {
for (int i = 92; i <= 141; i += 2) {
int tmp = (d [i] && b [i]) <= (a [i] > c [i]);
e [i] = tmp >> b [i];
}
}

[Bug c++/70251] New: Wrong code with -O3 -march=skylake-avx512.

2016-03-15 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70251

Bug ID: 70251
   Summary: Wrong code with -O3 -march=skylake-avx512.
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Created attachment 37985
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37985&action=edit
Reproducer.

Test case produces incorrect result with -O3 -march=skylake-avx512. It gives
different result for every launch. Everything works fine with -O2 option.

Output:
> g++ repr.cpp -o out -O3 -march=skylake-avx512; sde -skx -- ./out
12033857864019976279
> g++ repr.cpp -o out -O2 -march=skylake-avx512; sde -skx -- ./out
5785906989299578598

GCC version:
> g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/export/users/vlivinsk/gcc-trunk/bin/libexec/gcc/x86_64-pc-linux-gnu/6.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /export/users/vlivinsk/gcc-trunk/gcc/configure
--with-arch=corei7 --with-cpu=corei7 --enable-clocale=gnu --with-system-zlib
--enable-shared --with-demangler-in-ld --enable-cloog-backend=isl
--with-fpmath=sse --enable-checking=release --enable-languages=c,c++,lto
--with-gmp=/export/users/vlivinsk/gcc-trunk/gmp-6.1.0/bin
--with-mpfr=/export/users/vlivinsk/gcc-trunk/mpfr-3.1.3/bin
--with-mpc=/export/users/vlivinsk/gcc-trunk/mpc-1.0.3/bin
--prefix=/export/users/vlivinsk/gcc-trunk/bin
Thread model: posix
gcc version 6.0.0 20160315 (experimental) (Revision=234226)

Test:
#include 

void hash(unsigned long long int &seed, unsigned long long int const &v) {
seed ^= v + 0x9e3779b9 + (seed<<6) + (seed>>2);
}

unsigned int a [100];
signed char b [100];
signed char c [100];

void init () {
for (int i = 0; i < 100; ++i) {
a [i] = 1000L;
b [i] = 10;
c [i] = 5;
}
}

void foo () {
for (int i = 0; i < 100; ++i)
b [i] = (!b [i] ^ (a [i] >= b [i])) + c [i];
}

unsigned long long int checksum () {
unsigned long long int seed = 0ULL;
for (int i = 0; i < 100; ++i)
hash(seed, b [i]);
return seed;
}

int main () {
init ();
foo ();
std::cout << checksum () << std::endl;
return 0;
}

[Bug c++/70222] New: Test miscompiled with -O1

2016-03-14 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70222

Bug ID: 70222
   Summary: Test miscompiled with -O1
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Created attachment 37954
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37954&action=edit
Reproducer.

Test case produces incorrect result starting with -O1 optimization level. Test
case fails with -march=nehalem, haswell, knl and skylake-avx512 options and
with gcc version 4.8.5 (Revision=226194), gcc version 4.9.4 20160311
(prerelease) (Revision=234148) and gcc version 5.3.1 20160311
(Revision=234148).

Output:
>  g++ repr.cpp -o out -O1 -march=haswell; ./out
-262143
>  g++ repr.cpp -o out -O0 -march=haswell; ./out
-1

GCC version:
> g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/export/users/vlivinsk/gcc-trunk/bin/libexec/gcc/x86_64-pc-linux-gnu/6.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /export/users/vlivinsk/gcc-trunk/gcc/configure
--with-arch=corei7 --with-cpu=corei7 --enable-clocale=gnu --with-system-zlib
--enable-shared --with-demangler-in-ld --enable-cloog-backend=isl
--with-fpmath=sse --enable-checking=release --enable-languages=c,c++,lto
--with-gmp=/export/users/vlivinsk/gcc-trunk/gmp-6.1.0/bin
--with-mpfr=/export/users/vlivinsk/gcc-trunk/mpfr-3.1.3/bin
--with-mpc=/export/users/vlivinsk/gcc-trunk/mpc-1.0.3/bin
--prefix=/export/users/vlivinsk/gcc-trunk/bin
Thread model: posix
gcc version 6.0.0 20160314 (experimental) (Revision=234175)

[Bug c++/70153] New: [6 Regression] ICE on valid C++ code

2016-03-09 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70153

Bug ID: 70153
   Summary: [6 Regression] ICE on valid C++ code
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Created attachment 37903
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37903&action=edit
Reproducer.

Testcase produces ICE with -O0. Everything works fine with gcc version 4.9.4
(Revision=233979) and gcc version 5.3.1 (Revision=233979). Tested with
-march=core-avx2, -march=corei7-avx and -march=knl.

Error:
> g++ -O0 repr.cpp -S
g++: internal compiler error: Segmentation fault (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

GCC version:
> g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/export/users/vlivinsk/gcc-trunk/bin/libexec/gcc/x86_64-pc-linux-gnu/6.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /export/users/vlivinsk/gcc-trunk/gcc/configure
--with-arch=corei7 --with-cpu=corei7 --enable-clocale=gnu --with-system-zlib
--enable-shared --with-demangler-in-ld --enable-cloog-backend=isl
--with-fpmath=sse --enable-checking=release --enable-languages=c,c++,lto
--with-gmp=/export/users/vlivinsk/gcc-trunk/gmp-6.1.0/bin
--with-mpfr=/export/users/vlivinsk/gcc-trunk/mpfr-3.1.3/bin
--with-mpc=/export/users/vlivinsk/gcc-trunk/mpc-1.0.3/bin
--prefix=/export/users/vlivinsk/gcc-trunk/bin
Thread model: posix
gcc version 6.0.0 20160309 (experimental) (Revision=234075)

[Bug c++/70026] New: [6 Regression] ICE in expand_expr_real_2 with -O1 -ftree-vectorize

2016-03-01 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70026

Bug ID: 70026
   Summary: [6 Regression] ICE in expand_expr_real_2 with -O1
-ftree-vectorize
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Created attachment 37830
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37830&action=edit
Reproducer.

Testcase produces ICE with -O1 -ftree-vectorize. Everything works fine with gcc
version 4.9.4 (Revision=233763) and gcc version 5.3.1 (Revision=233763). Tested
with -march=core-avx2, -march=corei7-avx and -march=knl.

Error:
> g++ repr.cpp -o out -O1 -ftree-vectorize -std=c++11 -march=core-avx2
repr.cpp: In function ‘void foo()’:
repr.cpp:29:6: internal compiler error: in expand_expr_real_2, at expr.c:9376
 void foo () {
  ^~~
0x867298 expand_expr_real_2(separate_ops*, rtx_def*, machine_mode,
expand_modifier)
../../gcc/expr.c:9376
0x85758a expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
../../gcc/expr.c:9577
0x9fe024 expand_normal
../../gcc/expr.h:262
0x9fe024 expand_vec_cond_mask_expr(tree_node*, tree_node*, tree_node*,
tree_node*, rtx_def*)
../../gcc/optabs.c:5563
0x9fe3a4 expand_vec_cond_expr(tree_node*, tree_node*, tree_node*, tree_node*,
rtx_def*)
../../gcc/optabs.c:5607
0x864809 expand_expr_real_2(separate_ops*, rtx_def*, machine_mode,
expand_modifier)
../../gcc/expr.c:9358
0x78194e expand_gimple_stmt_1
../../gcc/cfgexpand.c:3653
0x78194e expand_gimple_stmt
../../gcc/cfgexpand.c:3714
0x782d85 expand_gimple_basic_block
../../gcc/cfgexpand.c:5720
0x787c96 execute
../../gcc/cfgexpand.c:6335
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

GCC version:
> g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/gcc-trunk/bin/libexec/gcc/x86_64-pc-linux-gnu/6.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../configure --with-arch=corei7 --with-cpu=corei7
--enable-clocale=gnu --with-system-zlib --enable-shared --with-demangler-in-ld
--enable-cloog-backend=isl --with-fpmath=sse --enable-checking=release
--with-pkgversion=Revision=233809 --enable-languages=c,c++,lto
--with-gmp=/gcc-trunk/gmp-6.1.0/bin --with-mpfr=/gcc-trunk/mpfr-3.1.3/bin
--with-mpc=/gcc-trunk/mpc-1.0.3/bin --prefix=/gcc-trunk/bin
Thread model: posix
gcc version 6.0.0 20160229 (experimental) (Revision=233809)

[Bug c++/70021] New: Test miscompiled with -O3 option for -march=core-avx2.

2016-02-29 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70021

Bug ID: 70021
   Summary: Test miscompiled with -O3 option for -march=core-avx2.
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Created attachment 37826
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37826&action=edit
Reproducer.

Test case produces incorrect result with -O3 option for -march=core-avx2.
Everything works fine with other march (-march=corei7-avx and -march=knl). Also
gcc version 4.9.4 (Revision=233763) and gcc version 5.3.1 (Revision=233763)
generate correct code.

Output:
> g++ small.cpp -o out -O3 -std=c++11 -march=core-avx2; ./out
13370567410841507191
> g++ small.cpp -o out -O2 -std=c++11 -march=core-avx2; ./out
16372995556503316667

GCC version:
> g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/gcc-trunk/bin/libexec/gcc/x86_64-pc-linux-gnu/6.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../configure --with-arch=corei7 --with-cpu=corei7
--enable-clocale=gnu --with-system-zlib --enable-shared --with-demangler-in-ld
--enable-cloog-backend=isl --with-fpmath=sse --enable-checking=release
--with-pkgversion=Revision=233809 --enable-languages=c,c++,lto
--with-gmp=/gcc-trunk/gmp-6.1.0/bin --with-mpfr=/gcc-trunk/mpfr-3.1.3/bin
--with-mpc=/gcc-trunk/mpc-1.0.3/bin --prefix=/gcc-trunk/bin
Thread model: posix
gcc version 6.0.0 20160229 (experimental) (Revision=233809)

[Bug tree-optimization/69820] [6 Regression] Test miscompiled with -O3 option

2016-02-15 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69820

--- Comment #4 from Vsevolod Livinskiy  ---
Test case also cause internal compiler error when it is compiled for knl.

> g++ -march=knl -O3 repr.cpp
repr.cpp: In function ‘void foo()’:
repr.cpp:23:45: internal compiler error: in ix86_expand_sse_cmp, at
config/i386/i386.c:22702
 out_1 [i] = in_1 [i] * (out_4 [i] * (bool)out_4 [i]);
 ^~~
0xd0461e ix86_expand_sse_cmp
   
/export/users/gnutester/stability/svn/trunk/gcc/config/i386/i386.c:22702
0xd37344 ix86_expand_int_vcond(rtx_def**)
   
/export/users/gnutester/stability/svn/trunk/gcc/config/i386/i386.c:23398
0xee89d9 gen_vconduv32hiv32hi(rtx_def*, rtx_def*, rtx_def*, rtx_def*, rtx_def*,
rtx_def*)
   
/export/users/gnutester/stability/svn/trunk/gcc/config/i386/sse.md:11065
0x9fdf58 maybe_expand_insn(insn_code, unsigned int, expand_operand*)
/export/users/gnutester/stability/svn/trunk/gcc/optabs.c:7015
0x9fdf58 expand_insn(insn_code, unsigned int, expand_operand*)
/export/users/gnutester/stability/svn/trunk/gcc/optabs.c:7046
0x9fe700 expand_vec_cond_expr(tree_node*, tree_node*, tree_node*, tree_node*,
rtx_def*)
/export/users/gnutester/stability/svn/trunk/gcc/optabs.c:5622
0x863bc9 expand_expr_real_2(separate_ops*, rtx_def*, machine_mode,
expand_modifier)
/export/users/gnutester/stability/svn/trunk/gcc/expr.c:9343
0x78035e expand_gimple_stmt_1
/export/users/gnutester/stability/svn/trunk/gcc/cfgexpand.c:3641
0x78035e expand_gimple_stmt
/export/users/gnutester/stability/svn/trunk/gcc/cfgexpand.c:3702
0x7816ff expand_gimple_basic_block
/export/users/gnutester/stability/svn/trunk/gcc/cfgexpand.c:5708
0x786606 execute
/export/users/gnutester/stability/svn/trunk/gcc/cfgexpand.c:6323

[Bug c++/69820] Test was miss compiled with -O3 option.

2016-02-14 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69820

--- Comment #1 from Vsevolod Livinskiy  ---
Created attachment 37690
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37690&action=edit
Preprocessed testcase.

[Bug c++/69820] New: Test was miss compiled with -O3 option.

2016-02-14 Thread vsevolod.livinskij at frtk dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69820

Bug ID: 69820
   Summary: Test was miss compiled with -O3 option.
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Created attachment 37689
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37689&action=edit
Reproducer.

Test case produces incorrect result with -O3 option. Everything works fine with
gcc version 5.3.1 20160212 (Revision=233387) and gcc version 4.9.4 20160212
(prerelease) (Revision=233387).

Output: 
> g++ -march=core-avx2 -O3 repr.cpp ; ./a.out
7540928331148314342
> g++ -march=core-avx2 -O2 repr.cpp ; ./a.out
18084857435860378664

GCC version:
> g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/export/users/vlivinsk/gcc-trunk/bin/../libexec/gcc/x86_64-pc-linux-gnu/6.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /export/users/gnutester/stability/svn/trunk/configure
--with-arch=corei7 --with-cpu=corei7 --enable-clocale=gnu --with-system-zlib
--enable-shared --with-demangler-in-ld --enable-cloog-backend=isl
--with-fpmath=sse --enable-checking=release --with-pkgversion=Revision=233012
--prefix=/export/users/gnutester/stability/work/trunk/64/install
--enable-languages=c,c++,fortran,java,lto
Thread model: posix
gcc version 6.0.0 20160130 (experimental) (Revision=233012)