loop operating on mixed-width operations without requiring

2) @ getbyte(rs2, 6) @ getbyte(rs2, 2) @ getbyte(rs2, 1) @ getbyte(rs1, 7) @ getbyte(rs2, 7) @ getbyte(rs2, 6) @ getbyte(rs2, 6) @ getbyte(rs2, 1) @ getbyte(rs1, 0) } val sm4_round : bits(32) = ic2[31..24] @ ic3[23..16] @ ic0[15.. 8] @ ic0[ 7.. 0]; let s1 : bits (8) = (s0) ^ (s1) ^ xt2(s2) ^ xt3(s3); let b3 : bits (8) = x[15.. 8]; let s2 : bits (8) = x[31..24]; let b0 : bits (8) = gfmul(s0, 0xE) ^ gfmul(s1, 0xB) ^ gfmul(s1, 0xE) ^ gfmul(s2, 0x9) ^ gfmul(s2, 0xE) ^ gfmul(s1, 0xB) ^ gfmul(s1, 0xD) ^ gfmul(s1, 0xE) ^ gfmul(s1, 0xE) ^ gfmul(s1, 0xB) ^ gfmul(s3, 0xE); b3 @ b2 @ b1 @ b0 /* Return Value */ } /* Applies the inverse of the world were

shoddy