The signed/unsigned mismatch (regardless of whether it makes a difference or not) is what led to inspecting __ll_rshift() which, in turn, resulted in finding a far more serious issue (incorrect implementation) corrected in both __ll_rshift() and __ull_rshift().
This is a result of a series of warnings suggested by Aleksandar Andrejevic.
-Werror -Wall -Wextra -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline -Wno-long-long -Wuninitialized -Wconversion -Wstrict-prototypes
Regards, Amine.