[Bug middle-end/93512] Introduce rotate_truncation_mask

2020-02-14 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93512 Bug 93512 depends on bug 93505, which changed state. Bug 93505 Summary: [8 Regression] wrong code or ICE with __builtin_bswap64() and rotation at -Og https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93505 What|Removed

[Bug middle-end/93512] Introduce rotate_truncation_mask

2020-02-06 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93512 --- Comment #4 from Segher Boessenkool --- I said (or I meant, at least) that as far as I see and know, all rotate instructions on all machines do this truncation. It is of course possible for targets to write it in RTL that only works for a

[Bug middle-end/93512] Introduce rotate_truncation_mask

2020-01-31 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93512 Jakub Jelinek changed: What|Removed |Added CC||law at gcc dot gnu.org --- Comment #3

[Bug middle-end/93512] Introduce rotate_truncation_mask

2020-01-31 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93512 --- Comment #2 from Jakub Jelinek --- Segher said he thinks that ROTATE/ROTATERT on all targets will do the truncation, so it is just a matter of proving that. Sure, one can add explictly patterns like (define_insn "rotl3_cntmask" [(set

[Bug middle-end/93512] Introduce rotate_truncation_mask

2020-01-31 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93512 --- Comment #1 from Richard Biener --- Please do not introduce ROTATE_COUNT_TRUNCATED. RTL should always be well-defined and semantics _not_ depend on the recognized instruction (see all the hassle with SHIFT_COUNT_TRUNCATED and targets having