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

`}

`