https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101885
--- Comment #13 from CVS Commits ---
The master branch has been updated by Roger Sayle :
https://gcc.gnu.org/g:49365d511ac9b64009b1de11ef8a941f59407f67
commit r12-7046-g49365d511ac9b64009b1de11ef8a941f59407f67
Author: Roger Sayle
Date: Fri
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101885
--- Comment #12 from Segher Boessenkool ---
(In reply to Jakub Jelinek from comment #8)> The failed match attempt
> (parallel [
> (set (reg:QI 82 [ b_lsm_flag.26 ])
> (and:QI (reg:QI 143)
> (reg:QI 145)))
>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101885
Roger Sayle changed:
What|Removed |Added
Assignee|unassigned at gcc dot gnu.org |roger at
nextmovesoftware dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101885
--- Comment #10 from Jakub Jelinek ---
For instructions that inherently set a condition code register, the
@code{compare} operator is always written as the first RTL expression of
the @code{parallel} instruction pattern. For example,
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101885
--- Comment #9 from Jakub Jelinek ---
And the:
Successfully matched this instruction:
(set (reg:CCZ 17 flags)
(compare:CCZ (and:QI (reg:QI 143)
(reg:QI 145))
(const_int 0 [0])))
Successfully matched this instruction:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101885
--- Comment #8 from Jakub Jelinek ---
We have:
Trying 17 -> 130:
17: {r124:QI=r143:QI:QI;clobber flags:CC;}
REG_DEAD r145:QI
REG_DEAD r143:QI
REG_UNUSED flags:CC
130: flags:CCZ=cmp(r124:QI,0)
Successfully matched this
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101885
--- Comment #7 from Jakub Jelinek ---
Seems it goes wrong during combine, before combine we have:
(insn 17 16 131 2 (parallel [
(set (reg:QI 124 [ _199 ])
(and:QI (reg:QI 143)
(reg:QI 145)))
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101885
--- Comment #6 from Jakub Jelinek ---
setne %sil
andl%esi, %edx
xorl%esi, %esi
cmovne %edi, %ecx
cmovne %esi, %eax
looks wrong, xorl will always set ZF.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101885
--- Comment #5 from Jakub Jelinek ---
And even
int a = 3, c;
short b = 5, d, f;
volatile short e;
__attribute__((noipa)) void
foo (void)
{
}
int
main ()
{
for (f = 0; f != 2; f++)
{
int g = a;
if (b)
if (a)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101885
Jakub Jelinek changed:
What|Removed |Added
CC||jakub at gcc dot gnu.org
--- Comment
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101885
Richard Biener changed:
What|Removed |Added
Priority|P3 |P2
CC|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101885
--- Comment #3 from Andrew Pinski ---
(In reply to Qirun Zhang from comment #1)
> My bisection points to g:529ea7d9596b26ba103578eeab448e9862a2d2c5
r10-7268
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101885
Andrew Pinski changed:
What|Removed |Added
Last reconfirmed||2021-08-12
Ever confirmed|0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101885
Andrew Pinski changed:
What|Removed |Added
Target Milestone|--- |10.4
Summary|wrong code at
14 matches
Mail list logo