From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 78062 invoked by alias); 4 Nov 2016 21:06:31 -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 78038 invoked by uid 89); 4 Nov 2016 21:06:30 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: 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= X-HELO: NAM02-SN1-obe.outbound.protection.outlook.com Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Steve.Ellcey@cavium.com; Message-ID: <1478293571.4630.29.camel@caviumnetworks.com> Subject: Re: [PATCH] Speed up math/test-tgmath2.c From: Steve Ellcey To: Joseph Myers CC: Date: Fri, 04 Nov 2016 21:06:00 -0000 In-Reply-To: References: <1477354555.8523.78.camel@caviumnetworks.com> <1478280156.4630.18.camel@caviumnetworks.com> Content-Type: multipart/mixed; boundary="=-963aS7N9w8qz+iJK+YMS" MIME-Version: 1.0 X-ClientProxiedBy: CO2PR06CA015.namprd06.prod.outlook.com (10.141.242.15) To CO2PR0701MB1064.namprd07.prod.outlook.com (10.160.8.143) X-MS-Office365-Filtering-Correlation-Id: e3832a37-b14b-438b-f794-08d404f66af0 X-Microsoft-Exchange-Diagnostics: 1;CO2PR0701MB1064;2:VxTP2qNEUtGtNKTyFqTXO9sS9kx0QJ7QSei0JjxRfubhcGI8qSsI6kGsa0OrzetTYcMtDflGQnWYBSxo8+iDGeLtJOv14HnAy3Lxe9m6MtKS/VBTmU3x6p9CZ8EedJnuNngPgYsqALrNrfHgs5JNXx/kvI+dZKHDDzEzlJbDRNGQTv+/2KZ0vsjNDgpBQ51kEFqSJl6sIYWdGKrhkSjhrw==;3:XKQSzfm8OlXVg//p4u1CoW2OlPKx3bWObLAqT9lXiZUvyd5K888sQtKG5K4Lh4AOzWo/kc5A0CX+osBzKrd2oxKTSkCns1O/dUDb5+wVa+ZDNzwpaGbxXFQIq38LqL4zN9sRAxY8PQe1msZyq2mRrg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0701MB1064; X-Microsoft-Exchange-Diagnostics: 1;CO2PR0701MB1064;25:YM9iRQ9JZoff6pTx/U69sfwNDL/caDafxJQxzwFBSJ1W9UVLs+EbjRnYV3q/k4G6uHMEVp5+e+k6DW7MbjRxBhBKvKIjhsV8g1hobwhyrMqB2s+KRzZBH0TeGeLeBmAiNtpe/7JGDvuYqKdsirhabWRYRQGyHnpGzlxBWuHbbmMyshuNHcb5n0DrjfJWLnspQ+B26rvDu7+xrB98tmYKMqwUXfJhAUtpCiunvEWuvEO7DU2zMOMLyVV9dnXVCuuQ7DbRJfAQPctaFtoeVUyRieh4fEctwrvN1YQhQQFtsb1Fa+1zEQTX53yOHatDhyqHT4y/1a+DcZvKb61+44yew6dZEIHjT0XmpKsQNMyO1Bv9UjrsOaq7DsT496Ub/IHVnZQyqD5/ExtUpDQa5oOzqneatetzpWXxDeG4RY2r7EAzHQj5Fp4MF8gM9ojpY1oTjdO9K+2wK6pCy5wyIWTZ66KJrK4Zq1+uKVW8ZbVyN77E43m2M76moaxhJl6JFAP9WwSmhMWU2n24fDSdqR8EoMvJB5TH26anBPuW6xOwaP13tgTJHIKRLcBNh1UzfXyRQ5KgePgN8eFxyIVr9NBb1NKdB2Azet9U/5ifva1PQZr1MP5MPmo23YJUd7zjYpbuNp8JhO8CKhvJD1FEHEtOV46Tpq3BHfQN2qrcc/zk/AfEax5SYCgvloAkYacCXk064uXDX+bt+wylvj/KLGBdl0NlDWssbSy9clmvAhjfgFx/i2tZ5RNqhLVQEyeRZj6ni+rGOV78OgPMeeuGAD4VzeMuMfpUaA58tp0isQqe4godfz23atV/Yx+IOnXZ9Poj8SeHub9x10z1uExOGafWFw== X-Microsoft-Exchange-Diagnostics: 1;CO2PR0701MB1064;31:xcOUEr8x0zG0Gmt5fRIrhyAo0z/jZLgFDt+F1cfJwkgysdgDEmxUh7yWR9QNIvr3brFNz8V85MjUwk8j8ZWsvkAfl2yZ5p4AubXX0ofKz5VEtJF2bXtIzxuWDHwZVAbOALmhOiie3TWJodo+aos0oS20BG2cxkOIvMEftb0Ag07MTvLq4w0/z4830FplRsgaDU/vUVr+tYVK6zk7cXRVGenGrHdlmc2MzzQoceKoloBVXmXHG1er7v/8pt4yl4jiq8Hql0qHbP/nmANu3LS4dD32a8SvUJQnc3UBeqEeHdO+GwwGmrssQiosIQMlaArd;20:PBJVmZRh5193YaoHJ7i87ed0nvztqLX2XXHlwaAdali3Nh84dTfSU29hyP8YH8PYRLjwnhEzBhCI7kfwwP3sj1t1JBxXIWU/BksDgKJUmnt50iaM4VSytohUaPjij1ADH9fFKzKnm9kpI5OfvhDSVzxwQvhX/WfOxnl1WFyJv9zvhX6TeeIe0doXA43n/7vE/SWLVmwELlB0z/aqdOt+RZg/JoHaG5Y6PsG6LoF/1BiNaVY26En+BUTDjl+TksE/+IxUn3qpO17lJhd8aYdDMmFIl1qjaEFRY14eXNE5gW/zD2WkS1aL1F7PFRNez/QqRvQPxKIRfqil+t/YF872F61P7wnRaFWY4i+28yi0BDxUKH5Ed6mDEBGJRaCcjv9zVbx2K+LIX7PraOv/UspKYXA33klYFNQhJEzy5RcHRljMjMfbPBicX3uEuPztlJdbDipPQAImrcCaYATx8C/10Dnr5SR/9ee003bXTl/BVhJWEXJt5GoeqGd1kIW8YU6YgfyionyyKXRk9BhTojOODoJ1Y1Tji8WRIkt2JA05D+5qys5n5oX6NJm9bmIWfZrIjmJc/YQPK6X/kvhtPufIYXFg/1fQxUzoO/XDYON5OKI= 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:CO2PR0701MB1064;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0701MB1064; X-Microsoft-Exchange-Diagnostics: 1;CO2PR0701MB1064;4:AkTd3YId0ZjxarFoxWV11pN20xvnnDKYpVazV5aASSkkGxbGBgpTT07XvLZm0l3M0x90iylNtSFYkAJPCqW5GRVqvTiid15Q0Yj0vfF3P/n1r8/m7aARAqdO9Uc1KHMjz6UY4/c5M56aOq/QNFOwiAPj1y3LPv+qe8FYNlKprwc6WFFuck/5Ql7UhBIhoHH4kvvFcyv88dl+E7cLKFDDwK2/AWdm3v0G2KW1y7Ayy+ZuPFVIrPz3tHWMu0hfN48ii70LNdja/gbfjI/u0xE1V0HHifWUbaSRK8yj6/q9elEN6yldYn2cb+Lz/tILFelfjEVBHq4IZt9hiXClhW6Sb2LIO+zft0hnXvPL3c1odpZqJVXXR/0Zi8g34+PyhPeFyE68iP20KDmJOEelut1WnwkW0UWDtmmweI//7mpcs38= X-Forefront-PRVS: 01165471DB X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(199003)(24454002)(189002)(377424004)(33646002)(189998001)(69596002)(81166006)(92566002)(81156014)(84326002)(305945005)(66066001)(8676002)(19580395003)(5890100001)(103116003)(586003)(110136003)(7736002)(106356001)(19580405001)(7846002)(36756003)(53416004)(68736007)(2950100002)(42186005)(512874002)(5660300001)(2906002)(6916009)(568964002)(105586002)(50986999)(4326007)(3846002)(4610100001)(97736004)(101416001)(50226002)(6116002)(76176999)(77096005)(2476003)(42882006)(6666003)(99106002);DIR:OUT;SFP:1101;SCL:1;SRVR:CO2PR0701MB1064;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;CO2PR0701MB1064;23:IiKnLvWl1sWKi+demoEfCN6bUpQINdnf/c3QfSR?= =?us-ascii?Q?1sfZCri9uQcbatgTW34BmTHuFbwLlrp2+AQuWeni84U5m2lA3PJvOUtTYmj0?= =?us-ascii?Q?EXIPxizjVx/hXEyZu62cyNvXQTRRO67qPMgmTm2LYOHwIPO7iHzwr8faGKXX?= =?us-ascii?Q?tGIYDj+Akp80d634ujHtbvT1lINzIhbqrlU51WZ6hZ6pM37/IGpcXCbJ0p4W?= =?us-ascii?Q?jI1ESCqwIXwv0oXYrQqk24vXDyk3X7TOyO42RJeXuIqUUKAbO+wQyWs6kIpr?= =?us-ascii?Q?girJRBnRkkonpxOc/jLLTyROF6aBWy4PoroaWxIBV2pB7L8wBzT+e660558J?= =?us-ascii?Q?7PVZi9ZzudseGBJ+0HkqqUqHc+Ol1n0xUlUQ+0OafST9xubSi09W5RcxLSkw?= =?us-ascii?Q?g0E9CF2Xk3uJRAp50F4+/WoFAZuY+3CJ+RtppLYPUMxn5g6gWpXmngo/ssiq?= =?us-ascii?Q?zyhGbRAWQLzs8GyYZazasxBwoaZDeRPA9+qhyRNzT05EeQJqo8nhRI0PEu5K?= =?us-ascii?Q?55l/VG6pTkxCg0/rEdsL8h/BLByMPjMbteeFTj0PKunzIUrRH7XO7/+q31Wa?= =?us-ascii?Q?cCDPmMNov2ujF906YD4cgOH3ArZ91VKppdoE1/jXPy7XbHHE7ylijYL+uiq9?= =?us-ascii?Q?pOpjTCjMQO6GsPfo/sUPJbmP7o/EC0bYH7NOdgVGH7e3aUBliitz1tIHXGnC?= =?us-ascii?Q?OoFo93KFpVUV6dZGgVI61FthXA/ig4qWONcKhucvuCJ12VlBPAZNtWU17oP0?= =?us-ascii?Q?CRrrOAyorQmFSpluQ1DRRVnwosYmi4jGH6TW+cHtDladGGqdJ0/3IEfAssqw?= =?us-ascii?Q?U6IeqUg+eaHuP7dSp11H9X+MBd+GbFnj9PJ8FkUeCFqxudU1Ma0EJkaeZqsI?= =?us-ascii?Q?N1VRlTU0ye63VQdVQHR7bp0I1S6vhBhAK9OppGNLD+HlyablU5XPeqRZA7Zt?= =?us-ascii?Q?laIwUsnb29xNTquHKu5nEXgSKIHEhQS+7hLVOmFh/8arX4Z+XcL0LGsd8c5/?= =?us-ascii?Q?XEGZtUJ/kbrj4kyVXQD9FfKL4E8v4wXkFxHjALu4M+qqpIi13r0/E+/ip8TB?= =?us-ascii?Q?dvaD14Dcv3HvPOD8WRecy71jTeyyS5v8V/dwKHbeHCK/NIt/M3rWOrIFmxoK?= =?us-ascii?Q?lcojho9YtvR0v/0ZPE5hgfDZ3tw5hqdA3N4JG52twxkDAfp3zmIdA9i+6kYO?= =?us-ascii?Q?ZC1ddZuFE2k2gSvejuAW9Yd1cUPM9x0csuC7ijRKSZycZs2wHA/aQbkYW8zp?= =?us-ascii?Q?RuqQts3Wc8Tu/YaGJ/jypbYaL80/gXaXos9wCJpTH?= X-Microsoft-Exchange-Diagnostics: 1;CO2PR0701MB1064;6:zngtMB5F5KB9p626yyGvIuKae4nwNt2NbhfxPjRhm9A+NTyR05C/9WuZWYYUwd/DcKf+iga2paDE9df7u05ZwcobsIf1y3RRwcnb1bA293NVd7vvCyo1G2Tbjuuj8+pxK2nVanfGxr1M3unRMdgw/uXbnzpw4362CLK2MK8cLt+v8VLyVdRUFI3YVxaOwIuQaktDkX0GivK9ZoWt+yHUd07JNXiE0nd/p0kAjDvL1/avstpcFZ2bpjd/Kp1CIOZDXbf64Irlw5Vidt8WuhJj85+0fAG+XaT74V8n3wDa94wPj4hUxwxEH7mcxCKCS9s3;5:1tuefdXrfNc1eNcY06tUMn/yf0xEBeOjPfeaqInEZbd4l9HtGeis0x/YIiUMdzzHcRzZ5DkiFF50i1zRfmr4h6wtPWp8Vgad0MSGEDK4ZwLfe4DNf7w3Xtzy43/llODc+T2VDa1/heNqLtR8JyIjtw==;24:eoXnj7Vf8iQSIqm5woyatmSJbZIug108Fdhp7IxakuzGh6phxbekvgAvckV/uXnwfBGyT2GUFx15VE2OJ3lkDHCLj3GqDEvXnMaH2FLbR3w= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CO2PR0701MB1064;7:0VEjI9daftyKOUsZT8hy0qsUIZYn7lOSWxUQAlFeDYGOix2ojoDwIqsRh7dScNIri6WKZYWVbhyido61aHVi1S91bow6R7Kn0hRKtU7LpNDJp90PLogeUtRpFUQH9dD07+kwB8qs+o73zjoZZtdhvWZmolBwSL/RX0eyLTLlJHanpotMxG8i27s+ma3Mi5qzSeOdtUzzIzv9hCWXgNydiz6T0Gr0KKTozf5iBuNJtqO/xsRTRCP7y/MCY3INzOgiZ+k9/82duN0Nh1REbJFbHegaVSJyoMPXkdPgOG8DnwSDxXggTi5IBCqDN+jV+Sk8UbnHjvDui6EbA6w8S84Yf6qgkvoAJwWCqug6aR6GK/M= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2016 21:06:16.7304 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0701MB1064 X-SW-Source: 2016-11/txt/msg00201.txt.bz2 --=-963aS7N9w8qz+iJK+YMS Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit Content-length: 1189 On Fri, 2016-11-04 at 17:25 +0000, Joseph Myers wrote: > On Fri, 4 Nov 2016, Steve Ellcey wrote: > > > > > > > > > +  return test_cos (vint1, vllong1) > > > +  + test_fabs (vint1, vllong1) > > > +  + test_conj (vint1, vllong1) > > > +  + test_expm1 (vint1, vllong1) > > > +  + test_lrint (vint1, vllong1) > > > +  + test_ldexp (vint1, vllong1) > > > +  + test_atan2 (vint1, vllong1) > > > +  + test_remquo (vint1, vllong1) > > > +  + test_pow (vint1, vllong1) > > > +  + test_fma_1 (vint1, vllong1) > > > +  + test_fma_2 (vint1, vllong1) > > > +  + test_fma_3 (vint1, vllong1) > > > +  + test_fma_4 (vint1, vllong1); > You don't want to add up test results like that; you should OR them  > together instead, to avoid the potential for test results adding up > to 77  > and wrongly becoming UNSUPPORTED.  (In this case of course there > aren't  > enough tests to get to 77, but the principle applies that you should > avoid  > the test return being a count of something.) Here is a modified and retested patch. Steve Ellcey sellcey@caviumnetworks.com 2016-11-04  Steve Ellcey   * math/test-tgmath2.c: Split up test function. --=-963aS7N9w8qz+iJK+YMS Content-Disposition: attachment; filename="tgmath2.patch" Content-Type: text/x-patch; name="tgmath2.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 Content-length: 7320 ZGlmZiAtLWdpdCBhL21hdGgvdGVzdC10Z21hdGgyLmMgYi9tYXRoL3Rlc3Qt dGdtYXRoMi5jCmluZGV4IGIzNzZmZDYuLmIyY2ZmNmIgMTAwNjQ0Ci0tLSBh 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 bGRvdWJsZSwgZm1hKTsKQEAgLTMzNyw3ICs0MzQsMTkgQEAgdGVzdCAoY29u c3QgaW50IFZpbnQ0LCBjb25zdCBsb25nIGxvbmcgaW50IFZsbG9uZzQpCiBz dGF0aWMgaW50CiBkb190ZXN0ICh2b2lkKQogewotICByZXR1cm4gdGVzdCAo dmludDEsIHZsbG9uZzEpOworICByZXR1cm4gdGVzdF9jb3MgKHZpbnQxLCB2 bGxvbmcxKQorCSB8IHRlc3RfZmFicyAodmludDEsIHZsbG9uZzEpCisJIHwg dGVzdF9jb25qICh2aW50MSwgdmxsb25nMSkKKwkgfCB0ZXN0X2V4cG0xICh2 aW50MSwgdmxsb25nMSkKKwkgfCB0ZXN0X2xyaW50ICh2aW50MSwgdmxsb25n MSkKKwkgfCB0ZXN0X2xkZXhwICh2aW50MSwgdmxsb25nMSkKKwkgfCB0ZXN0 X2F0YW4yICh2aW50MSwgdmxsb25nMSkKKwkgfCB0ZXN0X3JlbXF1byAodmlu dDEsIHZsbG9uZzEpCisJIHwgdGVzdF9wb3cgKHZpbnQxLCB2bGxvbmcxKQor CSB8IHRlc3RfZm1hXzEgKHZpbnQxLCB2bGxvbmcxKQorCSB8IHRlc3RfZm1h XzIgKHZpbnQxLCB2bGxvbmcxKQorCSB8IHRlc3RfZm1hXzMgKHZpbnQxLCB2 bGxvbmcxKQorCSB8IHRlc3RfZm1hXzQgKHZpbnQxLCB2bGxvbmcxKTsKIH0K IAogLyogTm93IGdlbmVyYXRlIHRoZSB0aHJlZSBmdW5jdGlvbnMuICAqLwo= --=-963aS7N9w8qz+iJK+YMS--