- const int offset_minus_4 = 4 - (block_len & 3);
-
- const int selector = (0x76543210 >> (offset_minus_4 * 4)) & 0xffff;
-
- tmp00 = __byte_perm ( 0, append[ 0], selector);
- tmp01 = __byte_perm (append[ 0], append[ 1], selector);
- tmp02 = __byte_perm (append[ 1], append[ 2], selector);
- tmp03 = __byte_perm (append[ 2], append[ 3], selector);
- tmp04 = __byte_perm (append[ 3], append[ 4], selector);
- tmp05 = __byte_perm (append[ 4], append[ 5], selector);
- tmp06 = __byte_perm (append[ 5], append[ 6], selector);
- tmp07 = __byte_perm (append[ 6], append[ 7], selector);
- tmp08 = __byte_perm (append[ 7], append[ 8], selector);
- tmp09 = __byte_perm (append[ 8], append[ 9], selector);
- tmp10 = __byte_perm (append[ 9], append[10], selector);
- tmp11 = __byte_perm (append[10], append[11], selector);
- tmp12 = __byte_perm (append[11], append[12], selector);
- tmp13 = __byte_perm (append[12], append[13], selector);
- tmp14 = __byte_perm (append[13], append[14], selector);
- tmp15 = __byte_perm (append[14], append[15], selector);
- tmp16 = __byte_perm (append[15], 0, selector);
+ const int selector = (0x76543210 >> ((block_len & 3) * 4)) & 0xffff;
+
+ tmp00 = __byte_perm (append[ 0], 0, selector);
+ tmp01 = __byte_perm (append[ 1], append[ 0], selector);
+ tmp02 = __byte_perm (append[ 2], append[ 1], selector);
+ tmp03 = __byte_perm (append[ 3], append[ 2], selector);
+ tmp04 = __byte_perm (append[ 4], append[ 3], selector);
+ tmp05 = __byte_perm (append[ 5], append[ 4], selector);
+ tmp06 = __byte_perm (append[ 6], append[ 5], selector);
+ tmp07 = __byte_perm (append[ 7], append[ 6], selector);
+ tmp08 = __byte_perm (append[ 8], append[ 7], selector);
+ tmp09 = __byte_perm (append[ 9], append[ 8], selector);
+ tmp10 = __byte_perm (append[10], append[ 9], selector);
+ tmp11 = __byte_perm (append[11], append[10], selector);
+ tmp12 = __byte_perm (append[12], append[11], selector);
+ tmp13 = __byte_perm (append[13], append[12], selector);
+ tmp14 = __byte_perm (append[14], append[13], selector);
+ tmp15 = __byte_perm (append[15], append[14], selector);
+ tmp16 = __byte_perm ( 0, append[15], selector);