From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 73080 invoked by alias); 4 Nov 2016 22:02:25 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 73067 invoked by uid 89); 4 Nov 2016 22:02:24 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: =?ISO-8859-1?Q?No, score=-1.8 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=to=c2?= X-HELO: NAM01-BN3-obe.outbound.protection.outlook.com Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Steve.Ellcey@cavium.com; Message-ID: <1478296927.4630.32.camel@caviumnetworks.com> Subject: Re: [PATCH] Speed up math/test-tgmath2.c From: Steve Ellcey To: Joseph Myers CC: Date: Fri, 04 Nov 2016 22:02:00 -0000 In-Reply-To: References: <1477354555.8523.78.camel@caviumnetworks.com> <1478280156.4630.18.camel@caviumnetworks.com> <1478293571.4630.29.camel@caviumnetworks.com> Content-Type: multipart/mixed; boundary="=-aOok8slVj+p71jgix8Zi" MIME-Version: 1.0 X-ClientProxiedBy: CY1PR1101CA0040.namprd11.prod.outlook.com (10.169.17.50) To SN2PR0701MB1072.namprd07.prod.outlook.com (10.160.59.18) X-MS-Office365-Filtering-Correlation-Id: 11a076b3-9c6f-4030-b2ca-08d404fe3adb X-Microsoft-Exchange-Diagnostics: 1;SN2PR0701MB1072;2:hBkdfHOQe/LxYGketQB1w17lFfUlJ5/IKgHzc1wu85fYH1yE52JxHSqJzNs919Fia4Thm5H3AHibEFYuzQMWlGBM16VjXrwCnXR1xcOce01wxd+thLrUDLYaGvsMD3ISUmMTtyt3HVSn7d6sYK0jJkEqPlV2KkyG+DfXGx4OtJ/A7X25KYqqrjRSq4GSrAyRQxABCyv4j4mrGK6YDMijzQ==;3:7Ef2OT8PBgO+ns6f9v2NcB72JHw/UZLzs7c1ZpG7PKTPfXrjBZ1jqN+kw8xejCp4FezVTDMoxPqZKGpHhZ7jwt4qgYgEHgIr4d/RWuKTF0+grNjWvNZ5aQMCYg13UMNQY0snYSe1OvGEWCHrzhw4Vg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN2PR0701MB1072; X-Microsoft-Exchange-Diagnostics: 1;SN2PR0701MB1072;25:lZYpoKcx7TXnaZGqabJVS/agLx4uz+knq8rEyRNeOr86yR0uQ8oIN/FknXGX3l+9iYFVv7H81qqrvpgT0LZJhueQLdGwZa+mRcZljvldrYcghWJXL51BrCZwE2Fm6Wi3X/CPRCxfc5mtXoKzCIVoHX9sT5nQbJ8A9/0ajtSf6iiZ1+9C47IJ2MwLfO/VeEnOabyUJJhKVGMLSyDbcJTmWUxoehCM5bmQffFestbqfuVfuMGCPk5cgm4loxJ3AjBrabCIAT/VOHcjoAVIDge/fstYXW5IObCaY+pu8UeaWGNm4cmNKJmPhHfSpSrC4YxDkxL8R3LyKzPwaEyaWr7QgkLoncTUIEDC6oe5rxqWv67SktHXXALb8D6ZeSfwJ2DLIs1h9nOVi0Q9qqxRFxRTesqjZbf4AcKzMKZGJyhMq98pNzm8ylX3MLm9/aktIuY+BaRND3xtydZpuC1TNf7MVaKPcBR+kcDEXJRjMIJ9yYW6WZYkAjmfVsK/DIsFj8jqoyKzvyyG7v7Pa+wHS6eDdsEOxaMTZYV8fedvcgYiNsOz3p9cJUMkxbsPW+AjxXP543g5VumTmfQUJsfoqZupql2bude6mVCm6n1nCxhqSELuR46r4K/wUSR6RnH16nhMeGtR8vjuszAPXvdYlRFvholHOr5v/Y/57vq8fW98l9xjx4fCeicsE6QjU3vxeTDzHKhuBJ52jjbh9JB8gV6X4fbMGwl22pDbM/sqWPiEZMcn377Ip3GFiMpgOzuoqu/VJb6tvQ9DcS4Yd2vgWKkjGSVgkVmKVbRt7r9xGGEf+9gfbNA7eT21d1QNXjK05npC3L3hxApABeTEelXofyz2fQ== X-Microsoft-Exchange-Diagnostics: 1;SN2PR0701MB1072;31:wHUgjPB0sUqCWU0TUoupEbIP28H19pQg5GHG997GqrJ8KYlsVFBkwl3zY8U2dy9K2V7mKGMKO4O28rFqnZf08b8YwKgrx8wb+1Lt35Gk0U/sLJOnzgSTO2Ro3pkaCr++FwQywHAjYlFqsbmW4LDGUVQeVhh7BWgNQQKmJxAj6qzC6kLQBy8xf10XFxkADAGLiE/q4Pjqf9TIkOrK4gB8ma2ho+Tj3Ig+eJbWyKOxrswxiS6rQj+mqGQHvOoxIdHjr1WMoe0QnR1gm9JdKwJRZra117Pa7lfhn1bZAiCoL7U=;20:vf8chJVn/RD8W6c5i2ChF8keoLBLhJVtFArsrgqd9vlYcqavN5n07JOntUEiq+2075S9BlGtw/DnHVMIj55uNf88YyKjSiDcQkdpjAmbEbpXOk+16/7+EVpUmQ/aZrbKGq3j6tbZJohFcikvTIThiPmHrFcnlKGgpdkw4xOixYYlpm4xiIYLMWRosEN3rAC63WMCdkEflifpLcgQNKklx+8Jxxi5DOiMlO+UbZWq6xpztY9mcEMV4lnLZnmlJ71M4wBd74jP0Osdtkq2w5+ST3ZNwzvEkHxTPD1Qsy+EPZJ0qJuX+9b+655i3H2FYfesnkTS/EnDStOqMPAz8/k8Yq9B/MYOYllbcmHaItw1k+lpzWFTBBpEdZ89gNRDjEIsHk+QuMIQnKeUvF0y+LKF1eMvlbbxGlopL3UFl8b+/XTW8DK6m1QC1sEUATdNO7g6zwH9yE5YDxO9D/RO7yWPohNqxyDd8OJEFD94TppSJ3YLXXXlpFvElOZsCTwEV4BmNNTRNFk9ZF/8n16RLoRCJV05FdFoQ06bdvAA3SoIMdxCwhDwKju8K9+f2NpAnwronKdE0Bs3x5JxdeiKDGEocItPhiBUiXSaE9MKHkPBIu4= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(102415321)(6040176)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046);SRVR:SN2PR0701MB1072;BCL:0;PCL:0;RULEID:;SRVR:SN2PR0701MB1072; X-Microsoft-Exchange-Diagnostics: 1;SN2PR0701MB1072;4:BfYoERdDHfTj11iLykFP5JxolOiiM9brvIULSxOuNIM/WbszE0PL1ufvdUNexAZOuguT20n6pLZDfBDRPCYUfRXsBpuDxtsV6fyY8Mx0A0FmCRvWDk/ceZhpBu2R3ASdSyarezf0g4VOpaDkea01HMKXqsUn2DEy3FNgYMpd59ZqkDtO7r8ulzVa8Yph3slUjs05XAPadENkufOXVWs6/S82AfDfamPdVY7FmzTM34JDUtUqb0YbAIRUOCw1hA+zR1WvAB5ruwyFFFapVtwf4A0+5UrlG685JREKROcD0ksVTqqxWko8fuxjnLUSR4P3zNNsygeI1apW0uQkQ1q1Bo3WWovFUC6/bXP9puKWXxuXDvdgMvZeapRtNgjQrAde+6o08Pw/Yk4/AhEzpcpnqaOcE4yukxPfXNwfi5lxTqE= X-Forefront-PRVS: 01165471DB X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(199003)(24454002)(189002)(377424004)(42186005)(66066001)(97736004)(101416001)(103116003)(6916009)(4610100001)(76176999)(2950100002)(50986999)(105586002)(2906002)(42882006)(5000100001)(6666003)(512874002)(93886004)(84326002)(69596002)(110136003)(6116002)(3846002)(2476003)(50226002)(189998001)(53416004)(4326007)(33646002)(5660300001)(36756003)(8676002)(568964002)(92566002)(7736002)(586003)(77096005)(106356001)(5890100001)(7846002)(19580395003)(19580405001)(81156014)(81166006)(305945005)(68736007)(99106002);DIR:OUT;SFP:1101;SCL:1;SRVR:SN2PR0701MB1072;H:sellcey-lt.caveonetworks.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;SN2PR0701MB1072;23:M8zv7K3HoqAhpbXUQwJx8nH6yk+PIVKPrhMkKmb?= =?us-ascii?Q?HpxlZvs53E0UVMF2Hc2UpqWTbNS0pK4YR5VSGOKaaU8rW0GIj5hxvLLv8Bxy?= =?us-ascii?Q?xyM3KbuHk37y5DVYvbSwez59snu3R9UVZu3gTJvryR13BqqJJd4rX2z2O9o1?= =?us-ascii?Q?RBmqt2M00NOFrYNxdz4t9439GH9bGq4i6PnIxErxMYZlRZ6qnV6hyYYVXs4F?= =?us-ascii?Q?NYCm0gLAhUVE4MG379YcIhenOLoQzg9ADdHnmxCkkSFYwlmE/FI8HhN2rcQg?= =?us-ascii?Q?odGcNzwlj83rXzD7sLOt5z1HeGovE4Mnevycfrwd3d6ktIpTWi20AofwDW58?= =?us-ascii?Q?EUFRyiYioVYKU9aPduUaFlu//5q8WObimm4ITZFARStcWQ6ZUXU1soiB3bpo?= =?us-ascii?Q?HVpE2kyGJDBtDbYwcuhb/BLr8QNU5RDyn8HWrKALIy1UShyNCXnYtTtIo7U9?= =?us-ascii?Q?Ko4vLDUE72B69cu6u3qTYlJPKoQnRxfzko2KYdEmpl86GHf2CXVk04bqNoJL?= =?us-ascii?Q?wsg7nNLcrvAOu9bvldHxOuHBYQZybzX5UbXdJHH8wVgBVMmNMVCFaUDFnbSq?= =?us-ascii?Q?uE1MvHifmOa9fyZsx1K9vW8MuyDe/2MmLfYxKbgtlKwGB3qtj6zT1u2P8jM8?= =?us-ascii?Q?KodfjJ6+NhvvNR9dVr3ojs+YbgBN3cjfQxQ2r+D+quIIKRZ5UgG6uDPg+nhK?= =?us-ascii?Q?gwfmQk5wOfJEmvhSzikq77FElDp+EcemwNaG9CDnjjwQE/pwgrxXUHgAzhrw?= =?us-ascii?Q?4MmwOSvPmw9n4v2K0wdYdfbujr0TUaXbxrDErESd95lvMOR2DeMmzzgJKTwX?= =?us-ascii?Q?bZ6kVDgQr3p29gMxNEq1sSRgKQNcKtKd/qAMDsdCtITmERZeH6Uuqhk4J+Hk?= =?us-ascii?Q?F0u+r2DCmh/s87rtO/hb6R+R9brnC9s7Vd9nscBU7QkP+/XdBKWVGzKZomjm?= =?us-ascii?Q?erGE5bpbbxGUXz9cxKXp5ZPIRgLftxQFFt/bMCtY02mDC7iVXf44lS110Nd+?= =?us-ascii?Q?qWnhip6eGjrwAJcVDXpdvnGEcBJO6k1a72r8/vGWucHsCAoei1KtjkKka+tR?= =?us-ascii?Q?rhiOZ7MB6yYZdmyYS2xUPXD3KZthjOac/gWTC3uvs3CYg5CQr1DQrUcMuY9d?= =?us-ascii?Q?VMxiaLaZydD8ForXV559b97a4+e/MyAiBDXgWkW40aF/Ue5iUvtOtJhjmSa4?= =?us-ascii?Q?wDYryUkiLr2pHkkiUZpkeYU/LgU7JCvKSu1jUdmcAx7mrvpIxj9gfUelCu29?= =?us-ascii?Q?k46TcHNftXEiga6rosWkj/QcJt0lHh64RU5OsulKgTtveMcxJu2xi5tlGOfv?= =?us-ascii?Q?nVkaD4GpOPBtbkqXi8TqYpyM=3D?= X-Microsoft-Exchange-Diagnostics: 1;SN2PR0701MB1072;6:cl6EbrHii8sqrHDhaFtBIPVlWXNqqilGjhf9t0Fc2De56er+4EjR5CLBC9eXntPaA6fYHFKqkxJd1/0UvvUiYiM7EoDEJAnEHsrNdUl0TFMUNr8TpAQWqN28AaHoDJrHg+fvP8kqydi0uF52mdc8T2ciTayE9h92Yxe6yjU7j8WwBDIhRGLPBICstJVseEh9to7a4iNKTa/OQzfadbjcps3gw/eJ6HnHXVtRTNiZ/3STGf8Hx5N2QLRINOiOHnAN/Mq4iuqvq6FCLPAla/FTJNLUlSQZcRpSJGehwSU9F6TlXmfuOHE147PJ6MqiamFh;5:CPHREk27Zu0BtPqAhlT0MAxjQlLlAaPboRayUBHHdeKFRHAPOijUdgtzEmVpEWOdLAgDFxbfnoManhzm5+aaQsCdcooSXibKCFb2wv5dF4z8Z/rNk6ARuMzyechuwenVq6/332C45bpD0Y8kIUIgf7NmPjb0QZeoelBtzV/j/nk=;24:S/CyfDVTTQInyqvPFFEhFIRBzxjU5tjwnzF5rFMK+OQFn9IdJfPBbZvAwLyAID/fmoxPoW2ZLqlLSBYJ5iQvncMhivkl3wrh9sGO1DnpsOE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;SN2PR0701MB1072;7:h2gjuKO8g+Zg7UUTdoRjvcE5toz3S5sJiBshZBUUEjYohBgyRouCuslPAbPtrwuywtpJOWsWiOj+ilcxZs3eKwDjtl6ye4cfmuIfPzW0vhSepsfzKiTTtKFPTecAzMXny7S+hZLIByervGPVkqbxw+IPYtpB0ghXpIh6Vgv51dK7XbXY/pSXPke8ibiUgbJnEm1GeWS+Bd3KaZpP2tC03n2ehVsbJ6DGIsbrTqDtX2LYyHirZWo8yDoQvvZ+CwvtpvgWE4gAgAV7WbgNitmcupZ5/psDIQ9j/ruUI5IylvRG6CjHt/2D6RY5UO7NTzw9mhCYgyTCrurjDNH7GnkckKRqsgasfbQAZzmYaxCoFpc= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2016 22:02:11.9131 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN2PR0701MB1072 X-SW-Source: 2016-11/txt/msg00210.txt.bz2 --=-aOok8slVj+p71jgix8Zi Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit Content-length: 771 On Fri, 2016-11-04 at 21:26 +0000, Joseph Myers wrote: > On Fri, 4 Nov 2016, Steve Ellcey wrote: > > > > > Here is a modified and retested patch. > The expression ORing together lots of function call results has  > indeterminate order of evaluation.  While the test should work > running the  > test functions in any order, on the whole I think it would be better > to  > make the order determinate, by doing > > result = test_cos (vint1, vllong1); > result |= test_fabs (vint1, vllong1); > > etc. Having a determinate order of execution would make it easier when analyzing a failure.  Here is a new version. Steve Ellcey sellcey@caviumnetworks.com 2016-11-04  Steve Ellcey   * math/test-tgmath2.c: Split up test function. --=-aOok8slVj+p71jgix8Zi Content-Disposition: attachment; filename="tgmath2.patch" Content-Type: text/x-patch; name="tgmath2.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 Content-length: 7520 ZGlmZiAtLWdpdCBhL21hdGgvdGVzdC10Z21hdGgyLmMgYi9tYXRoL3Rlc3Qt dGdtYXRoMi5jCmluZGV4IGIzNzZmZDYuLjU5MTkxNTkgMTAwNjQ0Ci0tLSBh L21hdGgvdGVzdC10Z21hdGgyLmMKKysrIGIvbWF0aC90ZXN0LXRnbWF0aDIu YwpAQCAtODksMTIgKzg5LDYgQEAgZW51bQogaW50IGNvdW50OwogaW50IGNv dW50c1tUbGFzdF1bQ19sYXN0XTsKIAotaW50Ci10ZXN0IChjb25zdCBpbnQg VmludDQsIGNvbnN0IGxvbmcgbG9uZyBpbnQgVmxsb25nNCkKLXsKLSAgaW50 IHJlc3VsdCA9IDA7Ci0gIGludCBxdW8gPSAwOwotCiAjZGVmaW5lIEZBSUwo c3RyKSBcCiAgIGRvCQkJCQkJCQlcCiAgICAgewkJCQkJCQkJXApAQCAtMTM4 LDYgKzEzMiwxMSBAQCB0ZXN0IChjb25zdCBpbnQgVmludDQsIGNvbnN0IGxv bmcgbG9uZyBpbnQgVmxsb25nNCkKICAgd2hpbGUgKDApCiAjZGVmaW5lIFRF U1QoZXhwciwgdHlwZSwgZm4pIFRFU1QyKGV4cHIsIHR5cGUsIHR5cGUsIGZu KQogCitpbnQKK3Rlc3RfY29zIChjb25zdCBpbnQgVmludDQsIGNvbnN0IGxv bmcgbG9uZyBpbnQgVmxsb25nNCkKK3sKKyAgaW50IHJlc3VsdCA9IDA7CisK ICAgVEVTVCAoY29zICh2ZmxvYXQxKSwgZmxvYXQsIGNvcyk7CiAgIFRFU1Qg KGNvcyAodmRvdWJsZTEpLCBkb3VibGUsIGNvcyk7CiAgIFRFU1QgKGNvcyAo dmxkb3VibGUxKSwgbGRvdWJsZSwgY29zKTsKQEAgLTE1NSw2ICsxNTQsMTQg QEAgdGVzdCAoY29uc3QgaW50IFZpbnQ0LCBjb25zdCBsb25nIGxvbmcgaW50 IFZsbG9uZzQpCiAgIFRFU1QgKGNvcyAoVmNkb3VibGUxKSwgY2RvdWJsZSwg Y29zKTsKICAgVEVTVCAoY29zIChWY2xkb3VibGUxKSwgY2xkb3VibGUsIGNv cyk7CiAKKyAgcmV0dXJuIHJlc3VsdDsKK30KKworaW50Cit0ZXN0X2ZhYnMg KGNvbnN0IGludCBWaW50NCwgY29uc3QgbG9uZyBsb25nIGludCBWbGxvbmc0 KQoreworICBpbnQgcmVzdWx0ID0gMDsKKwogICBURVNUIChmYWJzICh2Zmxv YXQxKSwgZmxvYXQsIGZhYnMpOwogICBURVNUIChmYWJzICh2ZG91YmxlMSks IGRvdWJsZSwgZmFicyk7CiAgIFRFU1QgKGZhYnMgKHZsZG91YmxlMSksIGxk b3VibGUsIGZhYnMpOwpAQCAtMTgwLDYgKzE4NywxMyBAQCB0ZXN0IChjb25z dCBpbnQgVmludDQsIGNvbnN0IGxvbmcgbG9uZyBpbnQgVmxsb25nNCkKICAg VEVTVCAoZmFicyAoVmNkb3VibGUxKSwgZG91YmxlLCBjYWJzKTsKICAgVEVT VCAoZmFicyAoVmNsZG91YmxlMSksIGxkb3VibGUsIGNhYnMpOwogCisgIHJl dHVybiByZXN1bHQ7Cit9CisKK2ludAordGVzdF9jb25qIChjb25zdCBpbnQg VmludDQsIGNvbnN0IGxvbmcgbG9uZyBpbnQgVmxsb25nNCkKK3sKKyAgaW50 IHJlc3VsdCA9IDA7CiAgIFRFU1QgKGNvbmogKHZmbG9hdDEpLCBjZmxvYXQs IGNvbmopOwogICBURVNUIChjb25qICh2ZG91YmxlMSksIGNkb3VibGUsIGNv bmopOwogICBURVNUIChjb25qICh2bGRvdWJsZTEpLCBjbGRvdWJsZSwgY29u aik7CkBAIC0xOTcsNiArMjExLDE0IEBAIHRlc3QgKGNvbnN0IGludCBWaW50 NCwgY29uc3QgbG9uZyBsb25nIGludCBWbGxvbmc0KQogICBURVNUIChjb25q IChWY2RvdWJsZTEpLCBjZG91YmxlLCBjb25qKTsKICAgVEVTVCAoY29uaiAo VmNsZG91YmxlMSksIGNsZG91YmxlLCBjb25qKTsKIAorICByZXR1cm4gcmVz dWx0OworfQorCitpbnQKK3Rlc3RfZXhwbTEgKGNvbnN0IGludCBWaW50NCwg Y29uc3QgbG9uZyBsb25nIGludCBWbGxvbmc0KQoreworICBpbnQgcmVzdWx0 ID0gMDsKKwogICBURVNUIChleHBtMSAodmZsb2F0MSksIGZsb2F0LCBleHBt MSk7CiAgIFRFU1QgKGV4cG0xICh2ZG91YmxlMSksIGRvdWJsZSwgZXhwbTEp OwogICBURVNUIChleHBtMSAodmxkb3VibGUxKSwgbGRvdWJsZSwgZXhwbTEp OwpAQCAtMjA4LDYgKzIzMCwxMyBAQCB0ZXN0IChjb25zdCBpbnQgVmludDQs IGNvbnN0IGxvbmcgbG9uZyBpbnQgVmxsb25nNCkKICAgVEVTVCAoZXhwbTEg KFZpbnQxKSwgZG91YmxlLCBleHBtMSk7CiAgIFRFU1QgKGV4cG0xIChWbGxv bmcxKSwgZG91YmxlLCBleHBtMSk7CiAKKyAgcmV0dXJuIHJlc3VsdDsKK30K KworaW50Cit0ZXN0X2xyaW50IChjb25zdCBpbnQgVmludDQsIGNvbnN0IGxv bmcgbG9uZyBpbnQgVmxsb25nNCkKK3sKKyAgaW50IHJlc3VsdCA9IDA7CiAg IFRFU1QyIChscmludCAodmZsb2F0MSksIGZsb2F0LCBsb25nIGludCwgbHJp bnQpOwogICBURVNUMiAobHJpbnQgKHZkb3VibGUxKSwgZG91YmxlLCBsb25n IGludCwgbHJpbnQpOwogICBURVNUMiAobHJpbnQgKHZsZG91YmxlMSksIGxk b3VibGUsIGxvbmcgaW50LCBscmludCk7CkBAIC0yMTksNiArMjQ4LDE0IEBA IHRlc3QgKGNvbnN0IGludCBWaW50NCwgY29uc3QgbG9uZyBsb25nIGludCBW bGxvbmc0KQogICBURVNUMiAobHJpbnQgKFZpbnQxKSwgZG91YmxlLCBsb25n IGludCwgbHJpbnQpOwogICBURVNUMiAobHJpbnQgKFZsbG9uZzEpLCBkb3Vi bGUsIGxvbmcgaW50LCBscmludCk7CiAKKyAgcmV0dXJuIHJlc3VsdDsKK30K KworaW50Cit0ZXN0X2xkZXhwIChjb25zdCBpbnQgVmludDQsIGNvbnN0IGxv bmcgbG9uZyBpbnQgVmxsb25nNCkKK3sKKyAgaW50IHJlc3VsdCA9IDA7CisK ICAgVEVTVCAobGRleHAgKHZmbG9hdDEsIDYpLCBmbG9hdCwgbGRleHApOwog ICBURVNUIChsZGV4cCAodmRvdWJsZTEsIDYpLCBkb3VibGUsIGxkZXhwKTsK ICAgVEVTVCAobGRleHAgKHZsZG91YmxlMSwgNiksIGxkb3VibGUsIGxkZXhw KTsKQEAgLTIzMCw2ICsyNjcsOSBAQCB0ZXN0IChjb25zdCBpbnQgVmludDQs IGNvbnN0IGxvbmcgbG9uZyBpbnQgVmxsb25nNCkKICAgVEVTVCAobGRleHAg KFZpbnQxLCA2KSwgZG91YmxlLCBsZGV4cCk7CiAgIFRFU1QgKGxkZXhwIChW bGxvbmcxLCA2KSwgZG91YmxlLCBsZGV4cCk7CiAKKyAgcmV0dXJuIHJlc3Vs dDsKK30KKwogI2RlZmluZSBGSVJTVCh4LCB5KSAoeSwgeCkKICNkZWZpbmUg U0VDT05EKHgsIHkpICh4LCB5KQogI2RlZmluZSBOT05fTERCTF9URVNUKGZu LCBhcmdtLCBhcmcsIHR5cGUsIGZudCkgXApAQCAtMzA3LDI1ICszNDcsODIg QEAgdGVzdCAoY29uc3QgaW50IFZpbnQ0LCBjb25zdCBsb25nIGxvbmcgaW50 IFZsbG9uZzQpCiAgIE5PTl9MREJMX0NURVNUIChmbiwgRklSU1QsIFZjZG91 YmxlMiwgY2RvdWJsZSwgZm50KTsgXAogICBOT05fTERCTF9DVEVTVCAoZm4s IFNFQ09ORCwgVmNkb3VibGUyLCBjZG91YmxlLCBmbnQpOwogCitpbnQKK3Rl c3RfYXRhbjIgKGNvbnN0IGludCBWaW50NCwgY29uc3QgbG9uZyBsb25nIGlu dCBWbGxvbmc0KQoreworICBpbnQgcmVzdWx0ID0gMDsKKwogICBCSU5BUllf VEVTVCAoYXRhbjIsIGF0YW4yKTsKIAorICByZXR1cm4gcmVzdWx0OworfQor CitpbnQKK3Rlc3RfcmVtcXVvIChjb25zdCBpbnQgVmludDQsIGNvbnN0IGxv bmcgbG9uZyBpbnQgVmxsb25nNCkKK3sKKyAgaW50IHJlc3VsdCA9IDA7Cisg IGludCBxdW8gPSAwOworCiAjZGVmaW5lIG15X3JlbXF1byh4LCB5KSByZW1x dW8gKHgsIHksICZxdW8pCiAgIEJJTkFSWV9URVNUIChteV9yZW1xdW8sIHJl bXF1byk7CiAjdW5kZWYgbXlfcmVtcXVvCiAKKyAgcmV0dXJuIHJlc3VsdDsK K30KKworaW50Cit0ZXN0X3BvdyAoY29uc3QgaW50IFZpbnQ0LCBjb25zdCBs b25nIGxvbmcgaW50IFZsbG9uZzQpCit7CisgIGludCByZXN1bHQgPSAwOwor CiAgIEJJTkFSWV9DVEVTVCAocG93LCBwb3cpOwogCi0gIC8qIFRlc3Rpbmcg YWxsIGFyZ3VtZW50cyBvZiBmbWEgd291bGQgYmUganVzdCB0b28gZXhwZW5z aXZlLAotICAgICBzbyB0ZXN0IGp1c3Qgc29tZS4gICovCisgIHJldHVybiBy ZXN1bHQ7Cit9CisKKy8qIFRlc3RpbmcgYWxsIGFyZ3VtZW50cyBvZiBmbWEg d291bGQgYmUganVzdCB0b28gZXhwZW5zaXZlLAorICAgc28gdGVzdCBqdXN0 IHNvbWUuICAqLworCitpbnQKK3Rlc3RfZm1hXzEgKGNvbnN0IGludCBWaW50 NCwgY29uc3QgbG9uZyBsb25nIGludCBWbGxvbmc0KQoreworICBpbnQgcmVz dWx0ID0gMDsKKwogI2RlZmluZSBteV9mbWEoeCwgeSkgZm1hICh4LCB5LCB2 ZmxvYXQzKQogICBCSU5BUllfVEVTVCAobXlfZm1hLCBmbWEpOwogI3VuZGVm IG15X2ZtYQorCisgIHJldHVybiByZXN1bHQ7Cit9CisKK2ludAordGVzdF9m bWFfMiAoY29uc3QgaW50IFZpbnQ0LCBjb25zdCBsb25nIGxvbmcgaW50IFZs bG9uZzQpCit7CisgIGludCByZXN1bHQgPSAwOworCiAjZGVmaW5lIG15X2Zt YSh4LCB5KSBmbWEgKHgsIHZmbG9hdDMsIHkpCiAgIEJJTkFSWV9URVNUICht eV9mbWEsIGZtYSk7CiAjdW5kZWYgbXlfZm1hCisKKyAgcmV0dXJuIHJlc3Vs dDsKK30KKworaW50Cit0ZXN0X2ZtYV8zIChjb25zdCBpbnQgVmludDQsIGNv bnN0IGxvbmcgbG9uZyBpbnQgVmxsb25nNCkKK3sKKyAgaW50IHJlc3VsdCA9 IDA7CisKICNkZWZpbmUgbXlfZm1hKHgsIHkpIGZtYSAoVmZsb2F0MywgeCwg eSkKICAgQklOQVJZX1RFU1QgKG15X2ZtYSwgZm1hKTsKICN1bmRlZiBteV9m bWEKKworICByZXR1cm4gcmVzdWx0OworfQorCitpbnQKK3Rlc3RfZm1hXzQg KGNvbnN0IGludCBWaW50NCwgY29uc3QgbG9uZyBsb25nIGludCBWbGxvbmc0 KQoreworICBpbnQgcmVzdWx0ID0gMDsKICAgVEVTVCAoZm1hICh2ZG91Ymxl MSwgVmRvdWJsZTIsIHZsbG9uZzMpLCBkb3VibGUsIGZtYSk7CiAgIFRFU1Qg KGZtYSAodmludDEsIFZpbnQyLCB2aW50MyksIGRvdWJsZSwgZm1hKTsKICAg VEVTVCAoZm1hIChWbGRvdWJsZTEsIHZsZG91YmxlMiwgVmxkb3VibGUzKSwg bGRvdWJsZSwgZm1hKTsKQEAgLTMzNyw3ICs0MzQsMjMgQEAgdGVzdCAoY29u c3QgaW50IFZpbnQ0LCBjb25zdCBsb25nIGxvbmcgaW50IFZsbG9uZzQpCiBz dGF0aWMgaW50CiBkb190ZXN0ICh2b2lkKQogewotICByZXR1cm4gdGVzdCAo dmludDEsIHZsbG9uZzEpOworICBpbnQgcmVzdWx0OworCisgIHJlc3VsdCA9 IHRlc3RfY29zICh2aW50MSwgdmxsb25nMSk7CisgIHJlc3VsdCB8PSB0ZXN0 X2ZhYnMgKHZpbnQxLCB2bGxvbmcxKTsKKyAgcmVzdWx0IHw9IHRlc3RfY29u aiAodmludDEsIHZsbG9uZzEpOworICByZXN1bHQgfD0gdGVzdF9leHBtMSAo dmludDEsIHZsbG9uZzEpOworICByZXN1bHQgfD0gdGVzdF9scmludCAodmlu dDEsIHZsbG9uZzEpOworICByZXN1bHQgfD0gdGVzdF9sZGV4cCAodmludDEs IHZsbG9uZzEpOworICByZXN1bHQgfD0gdGVzdF9hdGFuMiAodmludDEsIHZs bG9uZzEpOworICByZXN1bHQgfD0gdGVzdF9yZW1xdW8gKHZpbnQxLCB2bGxv bmcxKTsKKyAgcmVzdWx0IHw9IHRlc3RfcG93ICh2aW50MSwgdmxsb25nMSk7 CisgIHJlc3VsdCB8PSB0ZXN0X2ZtYV8xICh2aW50MSwgdmxsb25nMSk7Cisg IHJlc3VsdCB8PSB0ZXN0X2ZtYV8yICh2aW50MSwgdmxsb25nMSk7CisgIHJl c3VsdCB8PSB0ZXN0X2ZtYV8zICh2aW50MSwgdmxsb25nMSk7CisgIHJlc3Vs dCB8PSB0ZXN0X2ZtYV80ICh2aW50MSwgdmxsb25nMSk7CisKKyAgcmV0dXJu IHJlc3VsdDsKIH0KIAogLyogTm93IGdlbmVyYXRlIHRoZSB0aHJlZSBmdW5j dGlvbnMuICAqLwo= --=-aOok8slVj+p71jgix8Zi--