Optimize SipHash by reordering compress instructions · model-checking/verify-rust-std@645e9f2 (original) (raw)
`@@ -76,18 +76,19 @@ macro_rules! compress {
`
76
76
`($state:expr) => {{ compress!($state.v0, state.v1,state.v1, state.v1,state.v2, $state.v3) }};
`
77
77
`($v0:expr, v1:expr,v1:expr, v1:expr,v2:expr, $v3:expr) => {{
`
78
78
` v0=v0 = v0=v0.wrapping_add($v1);
`
``
79
`+
v2=v2 = v2=v2.wrapping_add($v3);
`
79
80
` v1=v1 = v1=v1.rotate_left(13);
`
80
81
` v1=v1 ^= v1=v0;
`
81
``
`-
v0=v0 = v0=v0.rotate_left(32);
`
82
``
`-
v2=v2 = v2=v2.wrapping_add($v3);
`
83
82
` v3=v3 = v3=v3.rotate_left(16);
`
84
83
` v3=v3 ^= v3=v2;
`
85
``
`-
v0=v0 = v0=v0.wrapping_add($v3);
`
86
``
`-
v3=v3 = v3=v3.rotate_left(21);
`
87
``
`-
v3=v3 ^= v3=v0;
`
``
84
`+
v0=v0 = v0=v0.rotate_left(32);
`
``
85
+
88
86
` v2=v2 = v2=v2.wrapping_add($v1);
`
``
87
`+
v0=v0 = v0=v0.wrapping_add($v3);
`
89
88
` v1=v1 = v1=v1.rotate_left(17);
`
90
89
` v1=v1 ^= v1=v2;
`
``
90
`+
v3=v3 = v3=v3.rotate_left(21);
`
``
91
`+
v3=v3 ^= v3=v0;
`
91
92
` v2=v2 = v2=v2.rotate_left(32);
`
92
93
`}};
`
93
94
`}
`