I noticed that
#ifdef __INT56_TYPE__
typedef __INT56_TYPE__ int56_t;
typedef __UINT56_TYPE__ uint56_t;
typedef int56_t int_least56_t;
typedef uint56_t uint_least56_t;
typedef int56_t int_fast56_t;
typedef uint56_t uint_fast56_t;
I searched google but find nothing. And it's even my first time to notice these types.
The comment in that header file before those types (link to GitHub commit adding these) explains:
To accomodate targets that are missing types that are exactly 8, 16, 32, or 64 bits wide, this implementation takes an approach of cascading redefintions, redefining __int_leastN_t to successively smaller exact-width types. It is therefore important that the types are defined in order of descending widths.
Whether such machines exist (anymore?) in the wild is a good question, but LLVM/clang would support them.
In short, to answer "how to use them":
You don't, unless you have an esoteric machine that defines __INT56_TYPE__
.