- u32 w0[4];
-
- w0[0] = pw_buf0[0];
- w0[1] = pw_buf0[1];
- w0[2] = pw_buf0[2];
- w0[3] = pw_buf0[3];
-
- u32 w1[4];
-
- w1[0] = pw_buf1[0];
- w1[1] = pw_buf1[1];
- w1[2] = pw_buf1[2];
- w1[3] = pw_buf1[3];
-
- u32 w2[4];
-
- w2[0] = 0;
- w2[1] = 0;
- w2[2] = 0;
- w2[3] = 0;
-
- u32 w3[4];
-
- w3[0] = 0;
- w3[1] = 0;
- w3[2] = 0;
- w3[3] = 0;
-
- const u32 out_len = apply_rules (rules_buf[il_pos].cmds, w0, w1, pw_len);
-
- u32 w_t[16];
-
- w_t[ 0] = w0[0];
- w_t[ 1] = w0[1];
- w_t[ 2] = w0[2];
- w_t[ 3] = w0[3];
- w_t[ 4] = w1[0];
- w_t[ 5] = w1[1];
- w_t[ 6] = w1[2];
- w_t[ 7] = w1[3];
- w_t[ 8] = 0;
- w_t[ 9] = 0;
- w_t[10] = 0;
- w_t[11] = 0;
- w_t[12] = 0;
- w_t[13] = 0;
- w_t[14] = 0;
- w_t[15] = 0;
-
- u32 a = crc32 (w_t, out_len, iv);
- u32 b = 0;
-
- const u32 r0 = a;
- const u32 r1 = b;
- const u32 r2 = 0;
- const u32 r3 = 0;
-
- #include COMPARE_M
+ u32x w0[4] = { 0 };
+ u32x w1[4] = { 0 };
+ u32x w2[4] = { 0 };
+ u32x w3[4] = { 0 };
+
+ const u32 out_len = apply_rules_vect (pw_buf0, pw_buf1, pw_len, rules_buf, il_pos, w0, w1);
+
+ append_0x01_2x4 (w0, w1, out_len);
+
+ u32x w[16];
+
+ w[ 0] = w0[0];
+ w[ 1] = w0[1];
+ w[ 2] = w0[2];
+ w[ 3] = w0[3];
+ w[ 4] = w1[0];
+ w[ 5] = w1[1];
+ w[ 6] = w1[2];
+ w[ 7] = w1[3];
+ w[ 8] = 0;
+ w[ 9] = 0;
+ w[10] = 0;
+ w[11] = 0;
+ w[12] = 0;
+ w[13] = 0;
+ w[14] = 0;
+ w[15] = 0;
+
+ u32x a = crc32 (w, pw_len, iv);
+ u32x b = 0;
+ u32x c = 0;
+ u32x d = 0;
+
+ COMPARE_M_SIMD (a, b, c, d);