[Bug tree-optimization/110817] [14 Regression] wrong code with vector compares and vector lowering

2023-10-17 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817 Andrew Pinski changed: What|Removed |Added Resolution|--- |FIXED Status|ASSIGNED

[Bug tree-optimization/110817] [14 Regression] wrong code with vector compares and vector lowering

2023-10-17 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817 --- Comment #23 from CVS Commits --- The trunk branch has been updated by Andrew Pinski : https://gcc.gnu.org/g:5e4abf4233cd34212680cca700d6438445e6a16a commit r14-4695-g5e4abf4233cd34212680cca700d6438445e6a16a Author: Andrew Pinski Date: F

[Bug tree-optimization/110817] [14 Regression] wrong code with vector compares and vector lowering

2023-10-17 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817 Richard Biener changed: What|Removed |Added Priority|P3 |P1 --- Comment #22 from Richard Biener

[Bug tree-optimization/110817] [14 Regression] wrong code with vector compares and vector lowering

2023-09-21 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817 --- Comment #21 from Andrew Pinski --- *** Bug 111534 has been marked as a duplicate of this bug. ***

[Bug tree-optimization/110817] [14 Regression] wrong code with vector compares and vector lowering

2023-09-01 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817 Andrew Pinski changed: What|Removed |Added URL||https://gcc.gnu.org/piperma

[Bug tree-optimization/110817] [14 Regression] wrong code with vector compares and vector lowering

2023-09-01 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817 --- Comment #19 from Andrew Pinski --- (In reply to Andrew Pinski from comment #14) > So I suspecting it is this pattern: > /* -(type)!A -> (type)A - 1. */ > (simplify > (negate (convert?:s (logical_inverted_value:s @0))) > (if (INTEGRAL_TYPE

[Bug tree-optimization/110817] [14 Regression] wrong code with vector compares and vector lowering

2023-09-01 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817 --- Comment #18 from Andrew Pinski --- (In reply to Andrew Pinski from comment #17) > (In reply to Andrew Pinski from comment #16) > > Or just change ssa_name_has_boolean_range to use gimple_zero_one_valued_p > > instead: > > > > extern bool gi

[Bug tree-optimization/110817] [14 Regression] wrong code with vector compares and vector lowering

2023-09-01 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817 --- Comment #17 from Andrew Pinski --- (In reply to Andrew Pinski from comment #16) > Or just change ssa_name_has_boolean_range to use gimple_zero_one_valued_p > instead: > > extern bool gimple_zero_one_valued_p (tree t, tree (*valueize)(tree))

[Bug tree-optimization/110817] [14 Regression] wrong code with vector compares and vector lowering

2023-09-01 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817 --- Comment #16 from Andrew Pinski --- Or just change ssa_name_has_boolean_range to use gimple_zero_one_valued_p instead: extern bool gimple_zero_one_valued_p (tree t, tree (*valueize)(tree)); bool ssa_name_has_boolean_range (tree op) { gcc_a

[Bug tree-optimization/110817] [14 Regression] wrong code with vector compares and vector lowering

2023-09-01 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817 --- Comment #15 from Andrew Pinski --- (In reply to Andrew Pinski from comment #14) > Even more: > bool > ssa_name_has_boolean_range (tree op) > { > gcc_assert (TREE_CODE (op) == SSA_NAME); > > /* Boolean types always have a range [0..1].

[Bug tree-optimization/110817] [14 Regression] wrong code with vector compares and vector lowering

2023-09-01 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817 Andrew Pinski changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned

[Bug tree-optimization/110817] [14 Regression] wrong code with vector compares and vector lowering

2023-09-01 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817 --- Comment #13 from Andrew Pinski --- (In reply to Zdenek Sojka from comment #12) > Interesting, all the gcc's starting from gcc-6 up to gcc-13 at -O0 to -O3 > (including 32bit and 64bit targets) seem to "PASS" on this testcase. > > ... wait,

[Bug tree-optimization/110817] [14 Regression] wrong code with vector compares and vector lowering

2023-09-01 Thread zsojka at seznam dot cz via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817 --- Comment #12 from Zdenek Sojka --- (In reply to Andrew Pinski from comment #11) > (In reply to Zdenek Sojka from comment #10) > > Probably related, even simpler testcase, failing everywhere at -O0: > > > > $ cat testcase.c > > typedef unsign

[Bug tree-optimization/110817] [14 Regression] wrong code with vector compares and vector lowering

2023-09-01 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817 --- Comment #11 from Andrew Pinski --- (In reply to Zdenek Sojka from comment #10) > Probably related, even simpler testcase, failing everywhere at -O0: > > $ cat testcase.c > typedef unsigned long __attribute__((__vector_size__ (8))) V; > > i

[Bug tree-optimization/110817] [14 Regression] wrong code with vector compares and vector lowering

2023-09-01 Thread zsojka at seznam dot cz via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817 --- Comment #10 from Zdenek Sojka --- Probably related, even simpler testcase, failing everywhere at -O0: $ cat testcase.c typedef unsigned long __attribute__((__vector_size__ (8))) V; int main (void) { V v = ~((V) { } <=0); if (v[0])

[Bug tree-optimization/110817] [14 Regression] wrong code with vector compares and vector lowering

2023-07-27 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817 --- Comment #9 from Andrew Pinski --- Here is a reduced testcase that does not need -mno-sse or any other option but fails everywhere: ``` typedef unsigned __attribute__((__vector_size__ (1*sizeof(unsigned V; V v; unsigned char c; int main

[Bug tree-optimization/110817] [14 Regression] wrong code with vector compares and vector lowering

2023-07-27 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817 --- Comment #8 from Andrew Pinski --- The problem is: _37 = _36 != 0; is not being used but I can't see how though.

[Bug tree-optimization/110817] [14 Regression] wrong code with vector compares and vector lowering

2023-07-27 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817 --- Comment #7 from Andrew Pinski --- (In reply to Andrew Pinski from comment #6) > _5 = VEC_COND_EXPR <_9, { 0, 0 }, { -1, -1 }>; > _6 = VIEW_CONVERT_EXPR(_5); > > From that veclower produces: >_36; ... > _38 = _36 == 0; > _40 = (s

[Bug tree-optimization/110817] [14 Regression] wrong code with vector compares and vector lowering

2023-07-27 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817 --- Comment #6 from Andrew Pinski --- _5 = VEC_COND_EXPR <_9, { 0, 0 }, { -1, -1 }>; _6 = VIEW_CONVERT_EXPR(_5); >From that veclower produces: _36; _36 = BIT_FIELD_REF <_9, 32, 0>; _37 = _36 != 0; _38 = _36 == 0; _39 = (signed i

[Bug tree-optimization/110817] [14 Regression] wrong code with vector compares and vector lowering

2023-07-27 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817 --- Comment #5 from Andrew Pinski --- veclower produces: _36 = BIT_FIELD_REF <_9, 32, 0>; _37 = _36 != 0; _38 = _36 == 0; _39 = (signed int) _38; _40 = (signed int) _36; _41 = _40 + -1; _42 = BIT_FIELD_REF <_9, 32, 32>; _43 = _42

[Bug tree-optimization/110817] [14 Regression] wrong code with vector compares and vector lowering

2023-07-27 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817 --- Comment #4 from Andrew Pinski --- >that's v != 0 | v == c, I don't think that's equal to the original expression. It is. Here is the proof there: ((v > 0) ? -1 : 0) > ((v != c) ? -1 : 0) v is unsigned char: ((v != 0) ? -1 : 0) > ((v != c)

[Bug tree-optimization/110817] [14 Regression] wrong code with vector compares and vector lowering

2023-07-27 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817 --- Comment #3 from Richard Biener --- Hmm, we lower from v.0_1 = v; _2 = v.0_1 != { 0, 0 }; c.1_8 = c; _4 = (unsigned int) c.1_8; _3 = {_4, _4}; _10 = v.0_1 == _3; _9 = _2 | _10; _5 = VEC_COND_EXPR <_9, { 0, 0 }, { -1, -1 }>;

[Bug tree-optimization/110817] [14 Regression] wrong code with vector compares and vector lowering

2023-07-26 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817 Andrew Pinski changed: What|Removed |Added Ever confirmed|0 |1 Last reconfirmed|