[Bug middle-end/62263] New: Good codegen for bitwise rotate requires code that is technically undefined behavior

2014-08-25 Thread oneill+gccbugs at cs dot hmc.edu
Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: oneill+gccbugs at cs dot hmc.edu LLVM lacks an intrinsic for performing bitwise rotation, relying instead on spotting the classic C idioms for specifying

[Bug middle-end/62263] Good codegen for bitwise rotate requires code that is technically undefined behavior

2014-08-25 Thread oneill+gccbugs at cs dot hmc.edu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62263 --- Comment #1 from M.E. O'Neill --- Possibly this should have been filed as a tree-level bug? Also, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=17886 which mostly is about issues with wider types, but may also cover this bug.

[Bug middle-end/62263] Good codegen for bitwise rotate requires code that is technically undefined behavior

2014-08-26 Thread oneill+gccbugs at cs dot hmc.edu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62263 --- Comment #6 from M.E. O'Neill --- (In reply to Marek Polacek from comment #3) > We handle at least > (x << n) | (x >> ((-n) & 31)) > (N can be 0 here) since PR57157. Although this code does work with LLVM, testing with GCC 4.9.0, and this im

[Bug c++/63265] New: Constexpr variables can trigger spurious compiler warnings

2014-09-14 Thread oneill+gccbugs at cs dot hmc.edu
Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: oneill+gccbugs at cs dot hmc.edu This code defines two constexpr values that are equivalent. But one of them produces a spurious warning template struct DoesntWarn { static constexpr