/* { dg-require-effective-target int32plus } */

int f(unsigned int a) __attribute__((noipa));
int f(unsigned int a) {
    return ((__builtin_bswap32(a)) >> 24) & 0x3;
}


int g(unsigned int a) __attribute__((noipa));
int g(unsigned int a) {
    return a & 0x3;
}

int main(void) {
    for (int b = 0; b <= 0xF; b++) {
        if (f(b) != g(b))
            __builtin_abort();
    }
    return 0;
}
