8要素のソート
static void bi_sort( int* a, int* b ) {
        int d = ( *a ^ *b ) & -( ((unsigned int)*b - *a) >> 31 );
        *a ^= d;
        *b ^= d;
}
#define BI(x,y) bi_sort( a+x, a+y );
void oct_sort( int* a ) {
        BI( 0, 1 ) BI( 2, 3 ) BI( 4, 5 ) BI( 6, 7 )
        BI( 0, 2 ) BI( 1, 3 ) BI( 4, 6 ) BI( 5, 7 )
        BI( 0, 4 ) BI( 3, 7 )

        BI( 1, 2 ) BI( 3, 4 ) BI( 5, 6 )
        BI( 1, 3 ) BI( 2, 4 )
        BI( 1, 5 ) BI( 4, 6 )

        BI( 2, 3 ) BI( 4, 5 )
        BI( 2, 4 ) BI( 3, 5 )

        BI( 3, 4 )
}