public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/110838] New: [14 Regression] wrong code on x265-3.5, -O3, sign extraction
@ 2023-07-28  7:33 slyfox at gcc dot gnu.org
  2023-07-28  7:55 ` [Bug target/110838] [14 Regression] wrong code on x365-3.5, " pinskia at gcc dot gnu.org
                   ` (16 more replies)
  0 siblings, 17 replies; 18+ messages in thread
From: slyfox at gcc dot gnu.org @ 2023-07-28  7:33 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110838

            Bug ID: 110838
           Summary: [14 Regression] wrong code on x265-3.5, -O3, sign
                    extraction
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: slyfox at gcc dot gnu.org
  Target Milestone: ---

Initially observed as SSE4 test failures on x365-3.5 on gcc
r14-2829-g31d18ff44244d1.

Extracted self-contained reproducer:

// $ cat bug.cc
typedef unsigned  int uint32_t;
typedef unsigned char uint8_t;
typedef   signed char  int8_t;
typedef uint8_t pixel;

/* get the sign of input variable (TODO: this is a dup, make common) */
inline int8_t signOf(int x)
{
    return (x >> 31) | ((int)((((uint32_t)-x)) >> 31));
}

__attribute__((noipa))
static void calSign_bug(int8_t *dst, const pixel *src1, const pixel *src2,
const int endX)
{
    for (int x = 0; x < endX; x++)
        dst[x] = signOf(src1[x] - src2[x]);
}

__attribute__((noipa, optimize(0)))
static void calSign_ok(int8_t *dst, const pixel *src1, const pixel *src2, const
int endX)
{
    for (int x = 0; x < endX; x++)
        dst[x] = signOf(src1[x] - src2[x]);
}

__attribute__((noipa, optimize(0)))
int main(void)
{
    const pixel s1[9] = { 0xcd, 0x33, 0xd4, 0x3e, 0xb0, 0xfb, 0x95, 0x64, 0x70,
};
    const pixel s2[9] = { 0xba, 0x9f, 0xab, 0xa1, 0x3b, 0x29, 0xb1, 0xbd, 0x64,
};
    int endX = 9;
    int8_t dst[9];
    int8_t dst_ok[9];

    calSign_bug(dst, s1, s2, endX);
    calSign_ok(dst_ok, s1, s2, endX);

    if (__builtin_memcmp(dst, dst_ok, endX) != 0) __builtin_trap();
}

Triggering:

$ g++ bug.cc -o bug -O2 && ./bug
# ok
$ g++ bug.cc -o bug -O3 && ./bug
Illegal instruction (core dumped)

$ g++ -v
Using built-in specs.
COLLECT_GCC=/<<NIX>>/gcc-14.0.0/bin/g++
COLLECT_LTO_WRAPPER=/<<NIX>>/gcc-14.0.0/libexec/gcc/x86_64-unknown-linux-gnu/14.0.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../source/configure --prefix=/<<NIX>>/gcc-14.0.0
--with-gmp-include=/<<NIX>>/gmp-6.2.1-dev/include
--with-gmp-lib=/<<NIX>>/gmp-6.2.1/lib
--with-mpfr-include=/<<NIX>>/mpfr-4.2.0-dev/include
--with-mpfr-lib=/<<NIX>>/mpfr-4.2.0/lib --with-mpc=/<<NIX>>/libmpc-1.3.1
--with-native-system-header-dir=/<<NIX>>/glibc-2.37-8-dev/include
--with-build-sysroot=/ --program-prefix= --enable-lto --disable-libstdcxx-pch
--without-included-gettext --with-system-zlib --enable-checking=release
--enable-static --enable-languages=c,c++ --disable-multilib --enable-plugin
--disable-libcc1 --with-isl=/<<NIX>>/isl-0.20 --disable-bootstrap
--build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu
--target=x86_64-unknown-linux-gnu
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 14.0.0 99999999 (experimental) (GCC)

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug target/110838] [14 Regression] wrong code on x365-3.5, -O3, sign extraction
  2023-07-28  7:33 [Bug target/110838] New: [14 Regression] wrong code on x265-3.5, -O3, sign extraction slyfox at gcc dot gnu.org
@ 2023-07-28  7:55 ` pinskia at gcc dot gnu.org
  2023-07-28  7:59 ` [Bug tree-optimization/110838] " slyfox at gcc dot gnu.org
                   ` (15 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: pinskia at gcc dot gnu.org @ 2023-07-28  7:55 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110838

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |14.0
           Keywords|                            |wrong-code

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/110838] [14 Regression] wrong code on x365-3.5, -O3, sign extraction
  2023-07-28  7:33 [Bug target/110838] New: [14 Regression] wrong code on x265-3.5, -O3, sign extraction slyfox at gcc dot gnu.org
  2023-07-28  7:55 ` [Bug target/110838] [14 Regression] wrong code on x365-3.5, " pinskia at gcc dot gnu.org
@ 2023-07-28  7:59 ` slyfox at gcc dot gnu.org
  2023-07-28  7:59 ` rguenth at gcc dot gnu.org
                   ` (14 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: slyfox at gcc dot gnu.org @ 2023-07-28  7:59 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110838

Sergei Trofimovich <slyfox at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rguenth at gcc dot gnu.org

--- Comment #1 from Sergei Trofimovich <slyfox at gcc dot gnu.org> ---
Bisect claims it's r14-2821-gd1c072a1c3411a

commit d1c072a1c3411a6fe29900750b38210af8451eeb
Date:   Thu Jul 27 13:08:32 2023 +0200

    tree-optimization/91838 - fix FAIL of g++.dg/opt/pr91838.C

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/110838] [14 Regression] wrong code on x365-3.5, -O3, sign extraction
  2023-07-28  7:33 [Bug target/110838] New: [14 Regression] wrong code on x265-3.5, -O3, sign extraction slyfox at gcc dot gnu.org
  2023-07-28  7:55 ` [Bug target/110838] [14 Regression] wrong code on x365-3.5, " pinskia at gcc dot gnu.org
  2023-07-28  7:59 ` [Bug tree-optimization/110838] " slyfox at gcc dot gnu.org
@ 2023-07-28  7:59 ` rguenth at gcc dot gnu.org
  2023-07-28  8:01 ` rguenth at gcc dot gnu.org
                   ` (13 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-07-28  7:59 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110838

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
=> 0x00000000004009ae <+126>:   ud2    

confirmed.

(gdb) p dst_ok
$1 = "\001\377\001\377\001\001\377\377\001"
(gdb) p dst
$2 = "\001\000\001\000\001\001\000\000\001"

I think we have a bug somewhere about a bug in pattern matching with a widening
op.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/110838] [14 Regression] wrong code on x365-3.5, -O3, sign extraction
  2023-07-28  7:33 [Bug target/110838] New: [14 Regression] wrong code on x265-3.5, -O3, sign extraction slyfox at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2023-07-28  7:59 ` rguenth at gcc dot gnu.org
@ 2023-07-28  8:01 ` rguenth at gcc dot gnu.org
  2023-07-28  8:08 ` rguenth at gcc dot gnu.org
                   ` (12 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-07-28  8:01 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110838

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2023-07-28
     Ever confirmed|0                           |1
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot gnu.org

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
I will have a look.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/110838] [14 Regression] wrong code on x365-3.5, -O3, sign extraction
  2023-07-28  7:33 [Bug target/110838] New: [14 Regression] wrong code on x265-3.5, -O3, sign extraction slyfox at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2023-07-28  8:01 ` rguenth at gcc dot gnu.org
@ 2023-07-28  8:08 ` rguenth at gcc dot gnu.org
  2023-07-28 12:04 ` rguenth at gcc dot gnu.org
                   ` (11 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-07-28  8:08 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110838

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
Indeed we have

vector(8) signed short << 31

here, so it looks like a bug in the vectorizer to me, now only find the dup...

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/110838] [14 Regression] wrong code on x365-3.5, -O3, sign extraction
  2023-07-28  7:33 [Bug target/110838] New: [14 Regression] wrong code on x265-3.5, -O3, sign extraction slyfox at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2023-07-28  8:08 ` rguenth at gcc dot gnu.org
@ 2023-07-28 12:04 ` rguenth at gcc dot gnu.org
  2023-07-28 12:05 ` rguenth at gcc dot gnu.org
                   ` (10 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-07-28 12:04 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110838

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           See Also|                            |https://gcc.gnu.org/bugzill
                   |                            |a/show_bug.cgi?id=109964

--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
t.c:15:23: note:   can narrow to signed:9 without loss of precision: _17 = _8
>> 31;
t.c:15:23: note:   only the low 9 bits of _8 are significant

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/110838] [14 Regression] wrong code on x365-3.5, -O3, sign extraction
  2023-07-28  7:33 [Bug target/110838] New: [14 Regression] wrong code on x265-3.5, -O3, sign extraction slyfox at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2023-07-28 12:04 ` rguenth at gcc dot gnu.org
@ 2023-07-28 12:05 ` rguenth at gcc dot gnu.org
  2023-07-31 11:58 ` rguenth at gcc dot gnu.org
                   ` (9 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-07-28 12:05 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110838

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|rguenth at gcc dot gnu.org         |unassigned at gcc dot gnu.org
             Status|ASSIGNED                    |NEW

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/110838] [14 Regression] wrong code on x365-3.5, -O3, sign extraction
  2023-07-28  7:33 [Bug target/110838] New: [14 Regression] wrong code on x265-3.5, -O3, sign extraction slyfox at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2023-07-28 12:05 ` rguenth at gcc dot gnu.org
@ 2023-07-31 11:58 ` rguenth at gcc dot gnu.org
  2023-08-01  8:37 ` slyfox at gcc dot gnu.org
                   ` (8 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-07-31 11:58 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110838

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot gnu.org
             Status|NEW                         |ASSIGNED

--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
I have a patch.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/110838] [14 Regression] wrong code on x365-3.5, -O3, sign extraction
  2023-07-28  7:33 [Bug target/110838] New: [14 Regression] wrong code on x265-3.5, -O3, sign extraction slyfox at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2023-07-31 11:58 ` rguenth at gcc dot gnu.org
@ 2023-08-01  8:37 ` slyfox at gcc dot gnu.org
  2023-08-03 12:53 ` cvs-commit at gcc dot gnu.org
                   ` (7 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: slyfox at gcc dot gnu.org @ 2023-08-01  8:37 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110838

--- Comment #7 from Sergei Trofimovich <slyfox at gcc dot gnu.org> ---
Tested https://gcc.gnu.org/pipermail/gcc-patches/2023-July/625868.html against
x265-3.5 test suite. All passes.

Thank you!

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/110838] [14 Regression] wrong code on x365-3.5, -O3, sign extraction
  2023-07-28  7:33 [Bug target/110838] New: [14 Regression] wrong code on x265-3.5, -O3, sign extraction slyfox at gcc dot gnu.org
                   ` (8 preceding siblings ...)
  2023-08-01  8:37 ` slyfox at gcc dot gnu.org
@ 2023-08-03 12:53 ` cvs-commit at gcc dot gnu.org
  2023-08-03 13:01 ` rguenth at gcc dot gnu.org
                   ` (6 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-08-03 12:53 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110838

--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Biener <rguenth@gcc.gnu.org>:

https://gcc.gnu.org/g:29370f1387274ad5a35a020db6a5d06c0324e6c1

commit r14-2952-g29370f1387274ad5a35a020db6a5d06c0324e6c1
Author: Richard Biener <rguenther@suse.de>
Date:   Mon Jul 31 14:44:52 2023 +0200

    tree-optimization/110838 - vectorization of widened shifts

    The following makes sure to limit the shift operand when vectorizing
    (short)((int)x >> 31) via (short)x >> 31 as the out of bounds shift
    operand otherwise invokes undefined behavior.  When we determine
    whether we can demote the operand we know we at most shift in the
    sign bit so we can adjust the shift amount.

    Note this has the possibility of un-CSEing common shift operands
    as there's no good way to share pattern stmts between patterns.
    We'd have to separately pattern recognize the definition.

            PR tree-optimization/110838
            * tree-vect-patterns.cc (vect_recog_over_widening_pattern):
            Adjust the shift operand of RSHIFT_EXPRs.

            * gcc.dg/torture/pr110838.c: New testcase.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/110838] [14 Regression] wrong code on x365-3.5, -O3, sign extraction
  2023-07-28  7:33 [Bug target/110838] New: [14 Regression] wrong code on x265-3.5, -O3, sign extraction slyfox at gcc dot gnu.org
                   ` (9 preceding siblings ...)
  2023-08-03 12:53 ` cvs-commit at gcc dot gnu.org
@ 2023-08-03 13:01 ` rguenth at gcc dot gnu.org
  2023-08-04 10:16 ` cvs-commit at gcc dot gnu.org
                   ` (5 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-08-03 13:01 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110838

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to work|                            |14.0

--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> ---
Fixed on trunk.  I think the issue is present on the branches as well in that
we generate

  vect_patt_48.21_145 = VIEW_CONVERT_EXPR<vector(8) signed
short>(vect_patt_49.20_143);
  vect_patt_48.21_146 = VIEW_CONVERT_EXPR<vector(8) signed
short>(vect_patt_49.20_144);
  vect_patt_46.22_147 = vect_patt_48.21_145 >> 31;
  vect_patt_46.22_148 = vect_patt_48.21_146 >> 31;

and

        psraw   $31, %xmm3
        psraw   $31, %xmm2

so we have out-of-bound arithmetic vector shifts here which might or might
not cause issues on other targets than x86.  psraw documents
"If the value specified by the count operand is greater than 15 (for words)
[...], each destination data element is fille with the initial value of
the sign bit of the element." which is what we intended to compute.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/110838] [14 Regression] wrong code on x365-3.5, -O3, sign extraction
  2023-07-28  7:33 [Bug target/110838] New: [14 Regression] wrong code on x265-3.5, -O3, sign extraction slyfox at gcc dot gnu.org
                   ` (10 preceding siblings ...)
  2023-08-03 13:01 ` rguenth at gcc dot gnu.org
@ 2023-08-04 10:16 ` cvs-commit at gcc dot gnu.org
  2023-08-04 11:15 ` cvs-commit at gcc dot gnu.org
                   ` (4 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-08-04 10:16 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110838

--- Comment #10 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Biener <rguenth@gcc.gnu.org>:

https://gcc.gnu.org/g:04aa0edcace22a7815cfc57575f1f7b1f166ac10

commit r14-2985-g04aa0edcace22a7815cfc57575f1f7b1f166ac10
Author: Richard Biener <rguenther@suse.de>
Date:   Fri Aug 4 11:24:49 2023 +0200

    tree-optimization/110838 - less aggressively fold out-of-bound shifts

    The following adjusts the shift simplification patterns to avoid
    touching out-of-bound shift value arithmetic right shifts of
    possibly negative values.  While simplifying those to zero isn't
    wrong it's violating the principle of least surprise.

            PR tree-optimization/110838
            * match.pd (([rl]shift @0 out-of-bounds) -> zero): Restrict
            the arithmetic right-shift case to non-negative operands.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/110838] [14 Regression] wrong code on x365-3.5, -O3, sign extraction
  2023-07-28  7:33 [Bug target/110838] New: [14 Regression] wrong code on x265-3.5, -O3, sign extraction slyfox at gcc dot gnu.org
                   ` (11 preceding siblings ...)
  2023-08-04 10:16 ` cvs-commit at gcc dot gnu.org
@ 2023-08-04 11:15 ` cvs-commit at gcc dot gnu.org
  2023-08-24  9:01 ` rguenth at gcc dot gnu.org
                   ` (3 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-08-04 11:15 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110838

--- Comment #11 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Biener <rguenth@gcc.gnu.org>:

https://gcc.gnu.org/g:1a599caab86464006ea8c9501aff6c6638e891eb

commit r14-2987-g1a599caab86464006ea8c9501aff6c6638e891eb
Author: Richard Biener <rguenther@suse.de>
Date:   Fri Aug 4 12:11:45 2023 +0200

    tree-optimization/110838 - vectorization of widened right shifts

    The following fixes a problem with my last attempt of avoiding
    out-of-bound shift values for vectorized right shifts of widened
    operands.  Instead of truncating the shift amount with a bitwise
    and we actually need to saturate it to the target precision.

    The following does that and adds test coverage for the constant
    and invariant but variable case that would previously have failed.

            PR tree-optimization/110838
            * tree-vect-patterns.cc (vect_recog_over_widening_pattern):
            Fix right-shift value sanitizing.  Properly emit external
            def mangling in the preheader rather than in the pattern
            def sequence where it will fail vectorizing.

            * gcc.dg/vect/pr110838.c: New testcase.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/110838] [14 Regression] wrong code on x365-3.5, -O3, sign extraction
  2023-07-28  7:33 [Bug target/110838] New: [14 Regression] wrong code on x265-3.5, -O3, sign extraction slyfox at gcc dot gnu.org
                   ` (12 preceding siblings ...)
  2023-08-04 11:15 ` cvs-commit at gcc dot gnu.org
@ 2023-08-24  9:01 ` rguenth at gcc dot gnu.org
  2023-10-17 12:21 ` rguenth at gcc dot gnu.org
                   ` (2 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-08-24  9:01 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110838
Bug 110838 depends on bug 111128, which changed state.

Bug 111128 Summary: [14 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in useless_type_conversion_p, at gimple-expr.cc:85
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111128

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/110838] [14 Regression] wrong code on x365-3.5, -O3, sign extraction
  2023-07-28  7:33 [Bug target/110838] New: [14 Regression] wrong code on x265-3.5, -O3, sign extraction slyfox at gcc dot gnu.org
                   ` (13 preceding siblings ...)
  2023-08-24  9:01 ` rguenth at gcc dot gnu.org
@ 2023-10-17 12:21 ` rguenth at gcc dot gnu.org
  2024-03-26 14:58 ` cvs-commit at gcc dot gnu.org
  2024-03-26 15:05 ` cvs-commit at gcc dot gnu.org
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-10-17 12:21 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110838

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #12 from Richard Biener <rguenth at gcc dot gnu.org> ---
Fixed.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/110838] [14 Regression] wrong code on x365-3.5, -O3, sign extraction
  2023-07-28  7:33 [Bug target/110838] New: [14 Regression] wrong code on x265-3.5, -O3, sign extraction slyfox at gcc dot gnu.org
                   ` (14 preceding siblings ...)
  2023-10-17 12:21 ` rguenth at gcc dot gnu.org
@ 2024-03-26 14:58 ` cvs-commit at gcc dot gnu.org
  2024-03-26 15:05 ` cvs-commit at gcc dot gnu.org
  16 siblings, 0 replies; 18+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2024-03-26 14:58 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110838

--- Comment #13 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-13 branch has been updated by Andre Simoes Dias Vieira
<avieira@gcc.gnu.org>:

https://gcc.gnu.org/g:b170ab1d051dc97b2e5c03984dbe406939364adc

commit r13-8499-gb170ab1d051dc97b2e5c03984dbe406939364adc
Author: Richard Biener <rguenther@suse.de>
Date:   Fri Aug 4 11:24:49 2023 +0200

    tree-optimization/110838 - less aggressively fold out-of-bound shifts

    The following adjusts the shift simplification patterns to avoid
    touching out-of-bound shift value arithmetic right shifts of
    possibly negative values.  While simplifying those to zero isn't
    wrong it's violating the principle of least surprise.

            PR tree-optimization/110838
            * match.pd (([rl]shift @0 out-of-bounds) -> zero): Restrict
            the arithmetic right-shift case to non-negative operands.

    (cherry picked from commit 04aa0edcace22a7815cfc57575f1f7b1f166ac10)

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/110838] [14 Regression] wrong code on x365-3.5, -O3, sign extraction
  2023-07-28  7:33 [Bug target/110838] New: [14 Regression] wrong code on x265-3.5, -O3, sign extraction slyfox at gcc dot gnu.org
                   ` (15 preceding siblings ...)
  2024-03-26 14:58 ` cvs-commit at gcc dot gnu.org
@ 2024-03-26 15:05 ` cvs-commit at gcc dot gnu.org
  16 siblings, 0 replies; 18+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2024-03-26 15:05 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110838

--- Comment #14 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-12 branch has been updated by Andre Simoes Dias Vieira
<avieira@gcc.gnu.org>:

https://gcc.gnu.org/g:d0eed43ff39a0bad4a02f8af7a4795e06aea6f80

commit r12-10294-gd0eed43ff39a0bad4a02f8af7a4795e06aea6f80
Author: Richard Biener <rguenther@suse.de>
Date:   Fri Aug 4 11:24:49 2023 +0200

    tree-optimization/110838 - less aggressively fold out-of-bound shifts

    The following adjusts the shift simplification patterns to avoid
    touching out-of-bound shift value arithmetic right shifts of
    possibly negative values.  While simplifying those to zero isn't
    wrong it's violating the principle of least surprise.

            PR tree-optimization/110838
            * match.pd (([rl]shift @0 out-of-bounds) -> zero): Restrict
            the arithmetic right-shift case to non-negative operands.

    (cherry picked from commit 04aa0edcace22a7815cfc57575f1f7b1f166ac10)

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2024-03-26 15:05 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-28  7:33 [Bug target/110838] New: [14 Regression] wrong code on x265-3.5, -O3, sign extraction slyfox at gcc dot gnu.org
2023-07-28  7:55 ` [Bug target/110838] [14 Regression] wrong code on x365-3.5, " pinskia at gcc dot gnu.org
2023-07-28  7:59 ` [Bug tree-optimization/110838] " slyfox at gcc dot gnu.org
2023-07-28  7:59 ` rguenth at gcc dot gnu.org
2023-07-28  8:01 ` rguenth at gcc dot gnu.org
2023-07-28  8:08 ` rguenth at gcc dot gnu.org
2023-07-28 12:04 ` rguenth at gcc dot gnu.org
2023-07-28 12:05 ` rguenth at gcc dot gnu.org
2023-07-31 11:58 ` rguenth at gcc dot gnu.org
2023-08-01  8:37 ` slyfox at gcc dot gnu.org
2023-08-03 12:53 ` cvs-commit at gcc dot gnu.org
2023-08-03 13:01 ` rguenth at gcc dot gnu.org
2023-08-04 10:16 ` cvs-commit at gcc dot gnu.org
2023-08-04 11:15 ` cvs-commit at gcc dot gnu.org
2023-08-24  9:01 ` rguenth at gcc dot gnu.org
2023-10-17 12:21 ` rguenth at gcc dot gnu.org
2024-03-26 14:58 ` cvs-commit at gcc dot gnu.org
2024-03-26 15:05 ` cvs-commit at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).