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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|middle-end                  |tree-optimization
           Severity|normal                      |enhancement
   Last reconfirmed|2019-09-25 00:00:00         |2021-8-1

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Confirmed.

unsigned long long sample2(unsigned long long m) {
    if (((unsigned int)m) != m) __builtin_unreachable();
    m <<= 4;
    return m >> 3;
}


unsigned long long sample1(unsigned long long m) {
    if (((unsigned int)m) != m) __builtin_unreachable();
    unsigned long t = -1;
    t <<= 1;
    m <<= 4;
    return (m >> 3) & t;
}


unsigned long long sample(unsigned long long m) {
    if (m >= 100) __builtin_unreachable();
    return m << 1;
}

Reply via email to