From 4441785fb44b88bb6943ddbf639d872c8c903281 Mon Sep 17 00:00:00 2001 From: Jason Gross Date: Wed, 16 Jan 2019 00:24:19 -0500 Subject: Constant-propogate 0+x and x+0 after bounds After | File Name | Before || Change | % Change -------------------------------------------------------------------------------------------- 21m22.67s | Total | 21m28.24s || -0m05.56s | -0.43% -------------------------------------------------------------------------------------------- 4m09.95s | PushButtonSynthesis.vo | 4m14.76s || -0m04.81s | -1.88% 3m07.95s | p384_32.c | 3m11.17s || -0m03.21s | -1.68% 2m06.43s | Rewriter.vo | 2m06.15s || +0m00.28s | +0.22% 1m55.83s | RewriterWf2.vo | 1m56.15s || -0m00.32s | -0.27% 1m52.36s | RewriterRulesGood.vo | 1m52.34s || +0m00.01s | +0.01% 1m46.52s | RewriterRulesInterpGood.vo | 1m45.70s || +0m00.82s | +0.77% 0m46.56s | RewriterInterpProofs1.vo | 0m46.72s || -0m00.15s | -0.34% 0m45.04s | ExtractionHaskell/word_by_word_montgomery | 0m45.33s || -0m00.28s | -0.63% 0m39.17s | p521_32.c | 0m39.07s || +0m00.10s | +0.25% 0m32.40s | p521_64.c | 0m32.64s || -0m00.24s | -0.73% 0m31.13s | ExtractionHaskell/unsaturated_solinas | 0m30.88s || +0m00.25s | +0.80% 0m24.20s | ExtractionHaskell/saturated_solinas | 0m24.27s || -0m00.07s | -0.28% 0m23.72s | RewriterWf1.vo | 0m23.42s || +0m00.29s | +1.28% 0m17.52s | ExtractionOCaml/word_by_word_montgomery | 0m17.10s || +0m00.41s | +2.45% 0m13.39s | secp256k1_32.c | 0m13.29s || +0m00.10s | +0.75% 0m13.08s | p256_32.c | 0m13.26s || -0m00.17s | -1.35% 0m11.49s | p484_64.c | 0m11.18s || +0m00.31s | +2.77% 0m10.68s | ExtractionOCaml/unsaturated_solinas | 0m10.64s || +0m00.03s | +0.37% 0m10.11s | ExtractionOCaml/word_by_word_montgomery.ml | 0m10.10s || +0m00.00s | +0.09% 0m07.96s | ExtractionOCaml/saturated_solinas | 0m07.95s || +0m00.00s | +0.12% 0m06.81s | ExtractionOCaml/unsaturated_solinas.ml | 0m06.76s || +0m00.04s | +0.73% 0m06.30s | ExtractionHaskell/word_by_word_montgomery.hs | 0m06.26s || +0m00.04s | +0.63% 0m06.07s | p224_32.c | 0m05.94s || +0m00.12s | +2.18% 0m06.06s | BoundsPipeline.vo | 0m06.08s || -0m00.02s | -0.32% 0m05.46s | p384_64.c | 0m05.30s || +0m00.16s | +3.01% 0m05.28s | ExtractionOCaml/saturated_solinas.ml | 0m05.18s || +0m00.10s | +1.93% 0m04.97s | ExtractionHaskell/unsaturated_solinas.hs | 0m04.99s || -0m00.02s | -0.40% 0m04.13s | ExtractionHaskell/saturated_solinas.hs | 0m04.10s || +0m00.03s | +0.73% 0m02.34s | curve25519_32.c | 0m02.21s || +0m00.12s | +5.88% 0m01.59s | curve25519_64.c | 0m01.47s || +0m00.12s | +8.16% 0m01.46s | CLI.vo | 0m01.48s || -0m00.02s | -1.35% 0m01.15s | secp256k1_64.c | 0m01.03s || +0m00.11s | +11.65% 0m01.14s | RewriterProofs.vo | 0m01.13s || +0m00.01s | +0.88% 0m01.14s | StandaloneHaskellMain.vo | 0m01.09s || +0m00.04s | +4.58% 0m01.14s | StandaloneOCamlMain.vo | 0m01.12s || +0m00.01s | +1.78% 0m01.09s | p256_64.c | 0m00.98s || +0m00.11s | +11.22% 0m01.06s | p224_64.c | 0m01.00s || +0m00.06s | +6.00% --- p384_32.c | 286 +++++++++++++++++++++++++++++--------------------------------- 1 file changed, 132 insertions(+), 154 deletions(-) (limited to 'p384_32.c') diff --git a/p384_32.c b/p384_32.c index 9dc2368dd..45614448f 100644 --- a/p384_32.c +++ b/p384_32.c @@ -7265,141 +7265,130 @@ static void fiat_p384_to_bytes(uint8_t out1[48], const uint32_t arg1[12]) { uint8_t x17 = (uint8_t)(x15 >> 8); uint8_t x18 = (uint8_t)(x15 & UINT8_C(0xff)); uint8_t x19 = (uint8_t)(x17 & UINT8_C(0xff)); - uint32_t x20 = (0x0 + x11); - uint32_t x21 = (x20 >> 8); - uint8_t x22 = (uint8_t)(x20 & UINT8_C(0xff)); - uint32_t x23 = (x21 >> 8); - uint8_t x24 = (uint8_t)(x21 & UINT8_C(0xff)); - uint8_t x25 = (uint8_t)(x23 >> 8); - uint8_t x26 = (uint8_t)(x23 & UINT8_C(0xff)); - uint8_t x27 = (uint8_t)(x25 & UINT8_C(0xff)); - uint32_t x28 = (0x0 + x10); - uint32_t x29 = (x28 >> 8); - uint8_t x30 = (uint8_t)(x28 & UINT8_C(0xff)); - uint32_t x31 = (x29 >> 8); + uint32_t x20 = (x11 >> 8); + uint8_t x21 = (uint8_t)(x11 & UINT8_C(0xff)); + uint32_t x22 = (x20 >> 8); + uint8_t x23 = (uint8_t)(x20 & UINT8_C(0xff)); + uint8_t x24 = (uint8_t)(x22 >> 8); + uint8_t x25 = (uint8_t)(x22 & UINT8_C(0xff)); + uint8_t x26 = (uint8_t)(x24 & UINT8_C(0xff)); + uint32_t x27 = (x10 >> 8); + uint8_t x28 = (uint8_t)(x10 & UINT8_C(0xff)); + uint32_t x29 = (x27 >> 8); + uint8_t x30 = (uint8_t)(x27 & UINT8_C(0xff)); + uint8_t x31 = (uint8_t)(x29 >> 8); uint8_t x32 = (uint8_t)(x29 & UINT8_C(0xff)); - uint8_t x33 = (uint8_t)(x31 >> 8); - uint8_t x34 = (uint8_t)(x31 & UINT8_C(0xff)); - uint8_t x35 = (uint8_t)(x33 & UINT8_C(0xff)); - uint32_t x36 = (0x0 + x9); - uint32_t x37 = (x36 >> 8); - uint8_t x38 = (uint8_t)(x36 & UINT8_C(0xff)); - uint32_t x39 = (x37 >> 8); - uint8_t x40 = (uint8_t)(x37 & UINT8_C(0xff)); - uint8_t x41 = (uint8_t)(x39 >> 8); - uint8_t x42 = (uint8_t)(x39 & UINT8_C(0xff)); - uint8_t x43 = (uint8_t)(x41 & UINT8_C(0xff)); - uint32_t x44 = (0x0 + x8); - uint32_t x45 = (x44 >> 8); - uint8_t x46 = (uint8_t)(x44 & UINT8_C(0xff)); - uint32_t x47 = (x45 >> 8); - uint8_t x48 = (uint8_t)(x45 & UINT8_C(0xff)); - uint8_t x49 = (uint8_t)(x47 >> 8); - uint8_t x50 = (uint8_t)(x47 & UINT8_C(0xff)); - uint8_t x51 = (uint8_t)(x49 & UINT8_C(0xff)); - uint32_t x52 = (0x0 + x7); - uint32_t x53 = (x52 >> 8); + uint8_t x33 = (uint8_t)(x31 & UINT8_C(0xff)); + uint32_t x34 = (x9 >> 8); + uint8_t x35 = (uint8_t)(x9 & UINT8_C(0xff)); + uint32_t x36 = (x34 >> 8); + uint8_t x37 = (uint8_t)(x34 & UINT8_C(0xff)); + uint8_t x38 = (uint8_t)(x36 >> 8); + uint8_t x39 = (uint8_t)(x36 & UINT8_C(0xff)); + uint8_t x40 = (uint8_t)(x38 & UINT8_C(0xff)); + uint32_t x41 = (x8 >> 8); + uint8_t x42 = (uint8_t)(x8 & UINT8_C(0xff)); + uint32_t x43 = (x41 >> 8); + uint8_t x44 = (uint8_t)(x41 & UINT8_C(0xff)); + uint8_t x45 = (uint8_t)(x43 >> 8); + uint8_t x46 = (uint8_t)(x43 & UINT8_C(0xff)); + uint8_t x47 = (uint8_t)(x45 & UINT8_C(0xff)); + uint32_t x48 = (x7 >> 8); + uint8_t x49 = (uint8_t)(x7 & UINT8_C(0xff)); + uint32_t x50 = (x48 >> 8); + uint8_t x51 = (uint8_t)(x48 & UINT8_C(0xff)); + uint8_t x52 = (uint8_t)(x50 >> 8); + uint8_t x53 = (uint8_t)(x50 & UINT8_C(0xff)); uint8_t x54 = (uint8_t)(x52 & UINT8_C(0xff)); - uint32_t x55 = (x53 >> 8); - uint8_t x56 = (uint8_t)(x53 & UINT8_C(0xff)); - uint8_t x57 = (uint8_t)(x55 >> 8); + uint32_t x55 = (x6 >> 8); + uint8_t x56 = (uint8_t)(x6 & UINT8_C(0xff)); + uint32_t x57 = (x55 >> 8); uint8_t x58 = (uint8_t)(x55 & UINT8_C(0xff)); - uint8_t x59 = (uint8_t)(x57 & UINT8_C(0xff)); - uint32_t x60 = (0x0 + x6); - uint32_t x61 = (x60 >> 8); - uint8_t x62 = (uint8_t)(x60 & UINT8_C(0xff)); - uint32_t x63 = (x61 >> 8); - uint8_t x64 = (uint8_t)(x61 & UINT8_C(0xff)); - uint8_t x65 = (uint8_t)(x63 >> 8); - uint8_t x66 = (uint8_t)(x63 & UINT8_C(0xff)); - uint8_t x67 = (uint8_t)(x65 & UINT8_C(0xff)); - uint32_t x68 = (0x0 + x5); - uint32_t x69 = (x68 >> 8); - uint8_t x70 = (uint8_t)(x68 & UINT8_C(0xff)); + uint8_t x59 = (uint8_t)(x57 >> 8); + uint8_t x60 = (uint8_t)(x57 & UINT8_C(0xff)); + uint8_t x61 = (uint8_t)(x59 & UINT8_C(0xff)); + uint32_t x62 = (x5 >> 8); + uint8_t x63 = (uint8_t)(x5 & UINT8_C(0xff)); + uint32_t x64 = (x62 >> 8); + uint8_t x65 = (uint8_t)(x62 & UINT8_C(0xff)); + uint8_t x66 = (uint8_t)(x64 >> 8); + uint8_t x67 = (uint8_t)(x64 & UINT8_C(0xff)); + uint8_t x68 = (uint8_t)(x66 & UINT8_C(0xff)); + uint32_t x69 = (x4 >> 8); + uint8_t x70 = (uint8_t)(x4 & UINT8_C(0xff)); uint32_t x71 = (x69 >> 8); uint8_t x72 = (uint8_t)(x69 & UINT8_C(0xff)); uint8_t x73 = (uint8_t)(x71 >> 8); uint8_t x74 = (uint8_t)(x71 & UINT8_C(0xff)); uint8_t x75 = (uint8_t)(x73 & UINT8_C(0xff)); - uint32_t x76 = (0x0 + x4); - uint32_t x77 = (x76 >> 8); - uint8_t x78 = (uint8_t)(x76 & UINT8_C(0xff)); - uint32_t x79 = (x77 >> 8); - uint8_t x80 = (uint8_t)(x77 & UINT8_C(0xff)); - uint8_t x81 = (uint8_t)(x79 >> 8); - uint8_t x82 = (uint8_t)(x79 & UINT8_C(0xff)); - uint8_t x83 = (uint8_t)(x81 & UINT8_C(0xff)); - uint32_t x84 = (0x0 + x3); - uint32_t x85 = (x84 >> 8); - uint8_t x86 = (uint8_t)(x84 & UINT8_C(0xff)); - uint32_t x87 = (x85 >> 8); + uint32_t x76 = (x3 >> 8); + uint8_t x77 = (uint8_t)(x3 & UINT8_C(0xff)); + uint32_t x78 = (x76 >> 8); + uint8_t x79 = (uint8_t)(x76 & UINT8_C(0xff)); + uint8_t x80 = (uint8_t)(x78 >> 8); + uint8_t x81 = (uint8_t)(x78 & UINT8_C(0xff)); + uint8_t x82 = (uint8_t)(x80 & UINT8_C(0xff)); + uint32_t x83 = (x2 >> 8); + uint8_t x84 = (uint8_t)(x2 & UINT8_C(0xff)); + uint32_t x85 = (x83 >> 8); + uint8_t x86 = (uint8_t)(x83 & UINT8_C(0xff)); + uint8_t x87 = (uint8_t)(x85 >> 8); uint8_t x88 = (uint8_t)(x85 & UINT8_C(0xff)); - uint8_t x89 = (uint8_t)(x87 >> 8); - uint8_t x90 = (uint8_t)(x87 & UINT8_C(0xff)); - uint8_t x91 = (uint8_t)(x89 & UINT8_C(0xff)); - uint32_t x92 = (0x0 + x2); - uint32_t x93 = (x92 >> 8); - uint8_t x94 = (uint8_t)(x92 & UINT8_C(0xff)); - uint32_t x95 = (x93 >> 8); - uint8_t x96 = (uint8_t)(x93 & UINT8_C(0xff)); - uint8_t x97 = (uint8_t)(x95 >> 8); - uint8_t x98 = (uint8_t)(x95 & UINT8_C(0xff)); - uint8_t x99 = (uint8_t)(x97 & UINT8_C(0xff)); - uint32_t x100 = (0x0 + x1); - uint32_t x101 = (x100 >> 8); - uint8_t x102 = (uint8_t)(x100 & UINT8_C(0xff)); - uint32_t x103 = (x101 >> 8); - uint8_t x104 = (uint8_t)(x101 & UINT8_C(0xff)); - uint8_t x105 = (uint8_t)(x103 >> 8); - uint8_t x106 = (uint8_t)(x103 & UINT8_C(0xff)); + uint8_t x89 = (uint8_t)(x87 & UINT8_C(0xff)); + uint32_t x90 = (x1 >> 8); + uint8_t x91 = (uint8_t)(x1 & UINT8_C(0xff)); + uint32_t x92 = (x90 >> 8); + uint8_t x93 = (uint8_t)(x90 & UINT8_C(0xff)); + uint8_t x94 = (uint8_t)(x92 >> 8); + uint8_t x95 = (uint8_t)(x92 & UINT8_C(0xff)); out1[0] = x14; out1[1] = x16; out1[2] = x18; out1[3] = x19; - out1[4] = x22; - out1[5] = x24; - out1[6] = x26; - out1[7] = x27; - out1[8] = x30; - out1[9] = x32; - out1[10] = x34; - out1[11] = x35; - out1[12] = x38; - out1[13] = x40; - out1[14] = x42; - out1[15] = x43; - out1[16] = x46; - out1[17] = x48; - out1[18] = x50; - out1[19] = x51; - out1[20] = x54; - out1[21] = x56; - out1[22] = x58; - out1[23] = x59; - out1[24] = x62; - out1[25] = x64; - out1[26] = x66; - out1[27] = x67; - out1[28] = x70; - out1[29] = x72; - out1[30] = x74; - out1[31] = x75; - out1[32] = x78; - out1[33] = x80; - out1[34] = x82; - out1[35] = x83; - out1[36] = x86; - out1[37] = x88; - out1[38] = x90; - out1[39] = x91; - out1[40] = x94; - out1[41] = x96; - out1[42] = x98; - out1[43] = x99; - out1[44] = x102; - out1[45] = x104; - out1[46] = x106; - out1[47] = x105; + out1[4] = x21; + out1[5] = x23; + out1[6] = x25; + out1[7] = x26; + out1[8] = x28; + out1[9] = x30; + out1[10] = x32; + out1[11] = x33; + out1[12] = x35; + out1[13] = x37; + out1[14] = x39; + out1[15] = x40; + out1[16] = x42; + out1[17] = x44; + out1[18] = x46; + out1[19] = x47; + out1[20] = x49; + out1[21] = x51; + out1[22] = x53; + out1[23] = x54; + out1[24] = x56; + out1[25] = x58; + out1[26] = x60; + out1[27] = x61; + out1[28] = x63; + out1[29] = x65; + out1[30] = x67; + out1[31] = x68; + out1[32] = x70; + out1[33] = x72; + out1[34] = x74; + out1[35] = x75; + out1[36] = x77; + out1[37] = x79; + out1[38] = x81; + out1[39] = x82; + out1[40] = x84; + out1[41] = x86; + out1[42] = x88; + out1[43] = x89; + out1[44] = x91; + out1[45] = x93; + out1[46] = x95; + out1[47] = x94; } /* @@ -7470,38 +7459,27 @@ static void fiat_p384_from_bytes(uint32_t out1[12], const uint8_t arg1[48]) { uint32_t x59 = (x36 + (x35 + (x34 + x33))); uint32_t x60 = (x40 + (x39 + (x38 + x37))); uint32_t x61 = (x44 + (x43 + (x42 + x41))); - uint32_t x62 = (0x0 + x61); - uint32_t x63 = (x62 & UINT32_C(0xffffffff)); - uint32_t x64 = (0x0 + x60); - uint32_t x65 = (x64 & UINT32_C(0xffffffff)); - uint32_t x66 = (0x0 + x59); - uint32_t x67 = (x66 & UINT32_C(0xffffffff)); - uint32_t x68 = (0x0 + x58); - uint32_t x69 = (x68 & UINT32_C(0xffffffff)); - uint32_t x70 = (0x0 + x57); - uint32_t x71 = (x70 & UINT32_C(0xffffffff)); - uint32_t x72 = (0x0 + x56); - uint32_t x73 = (x72 & UINT32_C(0xffffffff)); - uint32_t x74 = (0x0 + x55); - uint32_t x75 = (x74 & UINT32_C(0xffffffff)); - uint32_t x76 = (0x0 + x54); - uint32_t x77 = (x76 & UINT32_C(0xffffffff)); - uint32_t x78 = (0x0 + x53); - uint32_t x79 = (x78 & UINT32_C(0xffffffff)); - uint32_t x80 = (0x0 + x52); - uint32_t x81 = (x80 & UINT32_C(0xffffffff)); - uint32_t x82 = (0x0 + x51); + uint32_t x62 = (x61 & UINT32_C(0xffffffff)); + uint32_t x63 = (x60 & UINT32_C(0xffffffff)); + uint32_t x64 = (x59 & UINT32_C(0xffffffff)); + uint32_t x65 = (x58 & UINT32_C(0xffffffff)); + uint32_t x66 = (x57 & UINT32_C(0xffffffff)); + uint32_t x67 = (x56 & UINT32_C(0xffffffff)); + uint32_t x68 = (x55 & UINT32_C(0xffffffff)); + uint32_t x69 = (x54 & UINT32_C(0xffffffff)); + uint32_t x70 = (x53 & UINT32_C(0xffffffff)); + uint32_t x71 = (x52 & UINT32_C(0xffffffff)); out1[0] = x50; - out1[1] = x63; - out1[2] = x65; - out1[3] = x67; - out1[4] = x69; - out1[5] = x71; - out1[6] = x73; - out1[7] = x75; - out1[8] = x77; - out1[9] = x79; - out1[10] = x81; - out1[11] = x82; + out1[1] = x62; + out1[2] = x63; + out1[3] = x64; + out1[4] = x65; + out1[5] = x66; + out1[6] = x67; + out1[7] = x68; + out1[8] = x69; + out1[9] = x70; + out1[10] = x71; + out1[11] = x51; } -- cgit v1.2.3