[Bug target/106562] PRU: Inefficient code for zero check of 64-bit (boolean) AND result

2023-08-30 Thread dimitar at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106562 Dimitar Dimitrov changed: What|Removed |Added Resolution|--- |FIXED Status|ASSIGNED

[Bug target/106562] PRU: Inefficient code for zero check of 64-bit (boolean) AND result

2023-08-30 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106562 --- Comment #7 from CVS Commits --- The master branch has been updated by Dimitar Dimitrov : https://gcc.gnu.org/g:ee077d0c5793e1d4ad8d3b033ef2f0225ba6bd59 commit r14-3578-gee077d0c5793e1d4ad8d3b033ef2f0225ba6bd59 Author: Dimitar Dimitrov

[Bug target/106562] PRU: Inefficient code for zero check of 64-bit (boolean) AND result

2023-08-29 Thread dimitar at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106562 --- Comment #6 from Dimitar Dimitrov --- https://gcc.gnu.org/pipermail/gcc-patches/2022-August/599276.html gives a good analysis why deferring expansion decisions to the backend is preferred. Most backends already define cstore patterns, so it

[Bug target/106562] PRU: Inefficient code for zero check of 64-bit (boolean) AND result

2023-06-07 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106562 Andrew Pinski changed: What|Removed |Added See Also||https://gcc.gnu.org/bugzill

[Bug target/106562] PRU: Inefficient code for zero check of 64-bit (boolean) AND result

2023-06-07 Thread dimitar at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106562 --- Comment #4 from Dimitar Dimitrov --- The ideal PRU code sequence for the snippet would be: char test(uint64_t a, uint64_t b) { return a && b; } or r14, r14, r15 or r16, r16, r17 uminr14, r14, 1

[Bug target/106562] PRU: Inefficient code for zero check of 64-bit (boolean) AND result

2022-10-09 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106562 --- Comment #3 from CVS Commits --- The master branch has been updated by Dimitar Dimitrov : https://gcc.gnu.org/g:e95e91eccd022a4a3a86da2749809fbad9afd20e commit r13-3180-ge95e91eccd022a4a3a86da2749809fbad9afd20e Author: Dimitar Dimitrov

[Bug target/106562] PRU: Inefficient code for zero check of 64-bit (boolean) AND result

2022-10-05 Thread dimitar at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106562 --- Comment #2 from Dimitar Dimitrov --- With cbranchdi4 defined, the generated code is now 10 instructions: test: qbne.L5, r15, 0 qbeq.L4, r14, 0 .L5: rsb r0, r16, 0 rsc r1, r17, 0 or

[Bug target/106562] PRU: Inefficient code for zero check of 64-bit (boolean) AND result

2022-09-18 Thread dimitar at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106562 --- Comment #1 from Dimitar Dimitrov --- I explored setting REGMODE_NATURAL_SIZE=4 for PRU. This required adjustments in many places in middle end to use REGMODE_NATURAL_SIZE instead of word_mode. That however proved too intrusive. And I don't