From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 41173 invoked by alias); 9 Mar 2018 23:05:32 -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 41155 invoked by uid 89); 9 Mar 2018 23:05:31 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.7 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: NAM02-SN1-obe.outbound.protection.outlook.com Message-ID: <1520636722.6774.157.camel@cavium.com> Subject: Re: [PATCH 2/6] Remove slow paths from sin/cos From: Steve Ellcey Reply-To: sellcey@cavium.com To: Zack Weinberg , =?UTF-8?Q?Ond=C5=99ej_B=C3=ADlka?= Cc: Siddhesh Poyarekar , Wilco Dijkstra , "libc-alpha@sourceware.org" , nd Date: Fri, 09 Mar 2018 23:05:00 -0000 In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: BYAPR03CA0015.namprd03.prod.outlook.com (2603:10b6:a02:a8::28) To DM6PR07MB4570.namprd07.prod.outlook.com (2603:10b6:5:c1::20) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8fe135a6-b935-478c-0ec5-08d586123f67 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020);SRVR:DM6PR07MB4570; X-Microsoft-Exchange-Diagnostics: 1;DM6PR07MB4570;3:qJGH86H419wO4H585x9lTFivf4bTzZJIGMR3GGe4zxxLP+mPYaZkDAc/iYbvK8zCetPVsiXtx1nEY+g7m5g7BkX1ZmcuEYoKhFm1lJfcYVDk0uKZTAIbQULYLUVYpAsJlp4zUwfYCZPUP28GuoE8sFhfr2qVqwUC5xvnxqUWxU6Vg8mdb3nWbq0AyfqtUqojlkl3YC+m/zfsvEKsYrob6nRC1id/g2m4Gk3XibZhtnCWNFW07On0Hvl9ulKWEYnF;25:1j9qBbXYYSfMLr+3wBaRCKQDNVYdVp9nkzyFr8p4blCV1+lo1lhSawR6x7y7Sl1njPIXLzBC1KLYFOX9FjwioeOnjZOymgUpZ8gtoug49rn48xTlIpFDJwjUIIH/Jg9yNiP/N7GZxGKb9gFp9DO/LKbFuy5kTE4FfBvwpcMSNQWonLamlYUVhTtjDJbRUF5TabOY/OQHEraWWcGqTYhcXAm8SUN9zGd8jTmFcwkdwNhh/DjXrDH3MKwLam6mpUw1pdT7+SdX19/PnPMYESSPaPpQdoIr14KV0pCdIHKxbqB9Xz0CkD8FDLYSeXDLvwnSjacUiPtdf1gx8/rSB+z+QA==;31:wAHMmF2Ce0A9axdEwsL4+hvL0eQGpE6uGkHPsl941CYd1ydbjtHrRkEFVHavcZnkX6392oS4EBo16Z8xrR5GbBCsQkYwUe8pBusj9nm3I2k6p8s78hJVV61GbkJm4Z3vMNAKyaU95a6kjdlSYBrfWwhiQkLXypeX0skBOI1sOPlhI6JV6AjNDOqOK3ErRTMdJaFuyLIKyudKakpbJdc9lGPNkEI4K1h6FCozCnYN3Zc= X-MS-TrafficTypeDiagnostic: DM6PR07MB4570: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Steve.Ellcey@cavium.com; X-Microsoft-Exchange-Diagnostics: 1;DM6PR07MB4570;20:olGITosNeNuTaSaswdNX6qo9btkWmYJVp7Hepz0FFxY00OZN+OvMFk9b/745hGPmPi6nyGcBkBCBMB3dXG/mEkNzHahws1XDpJZLf4kCSIsP7RNUGPR9hICR8omcpqiSkGM1T0+T3UDTgoOcK5n6m5BK/bJVnB6iSx/Ht6+DeZ0bpVReqfBPer0A3VGnoGJeMgqgaw6m/lJY0Jjkm4jzgkWbCRXQlHhotm3GwNJ2GHhQpmiAKJaaVjNBmXcWxgcIYSL8eMJirv4qPxPo5QYFmn4hs5/aUuQ8wW45o4JUkMeFv/GxVKOJdN0q22A5NYdQ7syyqochaUwyKc+7qHGMm4L9etvrPV3RcrqvB1HArWRfayHbT70c8E1vZZHNm40XgMDOiBNzlgawM3OpW2Sk3nBn/DubrWSJYrVQ2/vczZaso5KbNUag+0JvwNVCfbV7lfmVFdKIiKYM9vUL2Vclak8HG3IYF/XGjvuhZEaDhfcVodUdbTE/WE/6vlAGqeNa;4:H4eKSk8ELR0y27O4le09w5syKZzPyqDbEIbtlW8W+2hIi4MZAxE6nutAZo24Akgxl17P3iHEgiuG928nod/v3M0gIV7RtvmY9B4yOlV2HalCjsS4XDDaSyj6GPvNyaZKjGvDvugGx31jBffOR6lFpZ/Vq3+3sCzvgJ6PHn4nwVRVqrtg5n5Qiw9O8bHZ28gUFUv42Wi4HD90D6gyUoriIn2xFw+7e7iDQRquDEt6YxxJqrUgdj1EnGIesxpN9GiviJtOCHsJomJbCSJSQsG3QA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3231220)(944501244)(52105095)(3002001)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(20161123558120)(20161123562045)(6072148)(201708071742011);SRVR:DM6PR07MB4570;BCL:0;PCL:0;RULEID:;SRVR:DM6PR07MB4570; X-Forefront-PRVS: 0606BBEB39 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(396003)(346002)(376002)(366004)(39860400002)(39380400002)(377424004)(189003)(199004)(103116003)(66066001)(25786009)(26005)(2906002)(6116002)(76176011)(3846002)(2870700001)(8936002)(6246003)(6512007)(3450700001)(53936002)(69596002)(72206003)(478600001)(5820100001)(110136005)(68736007)(53416004)(8656006)(229853002)(8676002)(16526019)(23676004)(47776003)(36756003)(316002)(97736004)(59450400001)(54906003)(105586002)(50226002)(186003)(7736002)(106356001)(81156014)(4326008)(305945005)(6486002)(386003)(6666003)(81166006)(6506007)(52116002)(2950100002)(5660300001)(43066004)(50466002)(99106002);DIR:OUT;SFP:1101;SCL:1;SRVR:DM6PR07MB4570;H:sellcey-dt.caveonetworks.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTZQUjA3TUI0NTcwOzIzOlovaVF1TDR2VStxSjVLbkF0UU4xYlVndksx?= =?utf-8?B?S2xvSFNLWmdEeC9lL1Nad3R2d3RhNnREVHFQVXN1d3pxWXRseHJlUjBla254?= =?utf-8?B?SjlXSG9CcFRVSDZ5QnBvcGZmZStENjBLcUFiZlZ5RUhsa0Z6alFyUzkrU1Zq?= =?utf-8?B?YlZkVG9LMkpnUkpyTVg5b3RJV1pUVVBadVNEYkdXaGl1c2pRNWY2UG8rWUoy?= =?utf-8?B?N1Q2bEpSVTNiUzE2V3NlbFJUSFZKMzJtZXFhRFNXNkdhaDVOS0thaHRKSDBF?= =?utf-8?B?TzFyZHROby92TnJibGxwNUVNUFZhUGptR3UyTGNkbGZYQUdoWDlGZ3pzSXJv?= =?utf-8?B?VUFqRkxYeDdZVXdNZlREY1FuUlhZUjJES3hEaXBsekUxa2FOZjVtaGN4NXBo?= =?utf-8?B?ekNENGN6aHVITm9ORlhYTlpBZE5CU3EvOTBTS0MyVy9JVE1lcnVZUlpVVEZz?= =?utf-8?B?Yi9uem9rbldrTWRKWjN2TSt2eW9EYXRJWk1EY0ZwVk1YZThjYUE3Zi9xVDNx?= =?utf-8?B?bFEvNTJBMk1zQTdabUQ0TE85Q1hnd1pmbWYrKzQ4ejQrM2JYR3ljdUhSTjNm?= =?utf-8?B?eU5yY0lmUFBUZVFtTzZySEh5KzROeGR6QTVuWHh1ejJScHlWdk1SbjJBSlAy?= =?utf-8?B?bXFpRkFzMnZSTWNPZVMwRjMrYUpuM001YXFLSkNWVnhDZng4RGViSFNYWFBF?= =?utf-8?B?QnZKc2xnaTNiWndUNnpJelBkby9ER2lKdTRFWVYrOFdZU0Z6WVB5dUlmT2hV?= =?utf-8?B?b1Jtc3NTeWoxd3o5N0Nya0JjeGJ4TEFzaG5wbXZwU2xkdk50aEdjS0FlL1JF?= =?utf-8?B?d1l5YVRaU2MrTitnVGpQWjhxU2crN01wdWI5bUQxL3I5U2VFdjdteTJiaEkr?= =?utf-8?B?ZXYrZmt3WnJUaEt6aWFEZ2wrbzNSUTRBdG5LcVh4Z1VOcXJFQjdhMUlBN1hD?= =?utf-8?B?V0s3MjVQY0M3ampaL1VxeGRYNzJGZVhIWFVydjNyL3VMZGdaVkFQYVQwWFlS?= =?utf-8?B?SU9nNm1NUDhxeXhOTlFBbi8zL0VkbzlsU0tUN283Qy9ZREVydzFsVmRWZk8y?= =?utf-8?B?Z0w1SXh1OVhTN1ZweXpsK2ZMWU9JRGoxTzdQaU1yOThCWFo3N1h5K3lweXpj?= =?utf-8?B?S1AwelhIQnljbkRwdzREbHk5ckJiNVdtTnhHMFZEb1NLZnJKbXdHME9tSjRZ?= =?utf-8?B?Y3N2UlBFQlNCSlpPcFFqdGk0TDJZckZaV2gyblhpR2UvVXpUemtzMTc1ZSts?= =?utf-8?B?S1B6VXpINXBscG5vTWRINjJXTmRPOXppN1JiNDM0cGQwSE9IUmtpRTBKVWls?= =?utf-8?B?a0JLOGdsdzZzSEhlRTBXNFBxWlBkcnIvWHBvVkNuRGRjVmVDOGVrSjNoeDNm?= =?utf-8?B?VWdSdXRpTm5kQ1ZmcFl3b3BLZTVpZldwZ2hSV2traWdsQjRyNGttdWdNVElL?= =?utf-8?B?c2pmbEt6YXZZdlVIbWlVdndtSzd2WGdPRDUrQ2Q1d2NNV1lTZmJsNHRENkk4?= =?utf-8?B?UGMxQmtWaVFyU3AwZEsrVTI4WXdzQWR4M0w4dDFNT3dOVURFTEwzRERWcHlD?= =?utf-8?B?dnFpSTVVb0ZyV0NHSVAvWWVKajZuQTJTQ3lWcUxUOWlNdFB4V3FRRjJkYkx5?= =?utf-8?B?WGpnNmI5NjBZWDRqMFlGNjZJcENlRzQ1V3daNHZkTENuTEFTRlQwRy9tOS8z?= =?utf-8?B?VGxzWitXRC9kNnNUSXRqYnVLVlNmYmhpRlpHL2NwVU1FYmhHd0VGRXVGUUxU?= =?utf-8?B?SFdaYmhoT2RSUjRHWi80RFJuRlpHR2Y5RGw4a2hoYVREWVRXTFNOK0FNVkxG?= =?utf-8?B?SkdxdXlHNFhQZWI3SURJeUxOZUVJUDl1OUhwUXlKRDRDOHFxUnk1U3dxRW5s?= =?utf-8?Q?EtHm3DuGhV0=3D?= X-Microsoft-Antispam-Message-Info: l415wz24qW6w676RD9q6J9RgJxLGtSRaG399kpf57zNhyleaVq/0qGkEJKA5wDMMLizu6fSc7U8p3ydqeuk/5t7Our4no5a7gJ6KAX9a3yhk0IseXywglrcrf0TA55kINh+t9Lp8c7MoJVI5sL5RtdftDtq4bg8ZI7RANnSI995ZxtMUXAcpDfDcO7IJyUds X-Microsoft-Exchange-Diagnostics: 1;DM6PR07MB4570;6:jOcjYAWtJ99Vc5z+uW6fA4/N73u0nNeM7qIn8BREEh864X1061ipqax0HWW0V7FZF1ozhtmyT4kPOC7lLiZtCd1rCLMRq4VUTk1p7uMAdlANb0xLMcAODBtZk/YWR4ZyCPjDZwPa76VimTmp5VlFt5S7cCLTjmid5YX9Y6oZy32rAwDGAVq6/eWtfWwMdSc4LP58skJ8pmENqmq9PHs9KgZIxJeaS13ykBw01pQ7Da+w6gTVny2NtWL1AVWhJ3AHZUx39iR4WOz+qqzD2bsFLW4gA8GPVQVyBNqh7aLOGQfK/5pA1ZtDXJ+haJKw1XOh+Ka3ElOIkqWIvseCi/1CCsJJepsplcM95iVWsWZRYUU=;5:LvQvLpT/BpufNY6+DPX+x0arVTXA52gUh8q7JFyVJ8Zj/N7+rNcNO6/ZPzAHQVNkqyuW0Ve0tmY+l4cgGyFI8MfktqefcQpY2CEgwJ+YhlAlF2IQH2XyMEMC3ft4DDGGvcCnLPd04Pf/OAjCztgSiF/+5hrBtrhVBeU8Wbc3vRk=;24:Cdnn33vfrYRiqHmXGaxUm8VpCVIR76PAwChEhbwLBDk0ueF++8tFrncXpMSCWcw2MPIQBbUILTTKVQN2j1wbUy/kYt0Aemqv9GC+M3s1umk=;7:HLgnfZiC4u18NB/cwm2ksdI5jvZen41PO5vE19my24Jvh2BDSg6psJBHZdhU0AUEDDxOhg03Wlszb20Z0vaJrYms1KVuWZT2te9w3UDXtFj3USZy2npoiy4VnJo7X/nX8k1eWsjIfsCP72SEah2+3FYEt9/6TIFZaQM/weXdfdd2/5sKsEXB3stCSe+GLXz3Fs0HrN30EZiXu/MHhHVlFA14OVY1M0rmMVT6iUijvg4XcldME8oMOJt0ayUxdORa SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Mar 2018 23:05:26.8263 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8fe135a6-b935-478c-0ec5-08d586123f67 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR07MB4570 X-SW-Source: 2018-03/txt/msg00263.txt.bz2 On Fri, 2018-03-09 at 13:52 -0500, Zack Weinberg wrote: >  > More concretely, for IEEE single, the gap between representable values > is bigger than 2π for values whose exponent is 2^26 or above.  Since > the sine function is periodic over 2π, that means the result of sinf() > is effectively meaningless for any input at least that big - _any > value_ within the input period could have been rounded to the > representable, so the "true" answer could be anything.  (I am tempted > to suggest that we return NaN for inputs this large, without even > bothering to do argument reduction.) > > For double, this happens at 2^55, and for x86-64 long double it > happens at 2^66.  I _think_ x86-64 long double is 80-bit IEEE > extended, not quad, but I could be wrong. > > zw And yet we have tests for large numbers in auto-libm-test-out-sin and auto-libm-test-out-cos.  I was testing a different vector sin/cos implementation on aarch64 and I got some big diffs on very large output.  Maybe we shouldn't test for these values if they are not of any value. testing double (vector length 2) Failure: Test: sin_vlen2 (-0x2p+64) Result:  is:         -0.0000000000000000e+00  -0x0.0000000000000p+0  should be:   4.7183876212354675e-02   0x1.8287c2a760e04p-5  difference:  4.7183876212354675e-02   0x1.8287c2a760e04p-5  ulp       :  6799913194491396.0000  max.ulp   :  1.0000 Failure: Test: sin_vlen2 (-0x3.3de320f6be87ep+1020) Result:  is:         -0.0000000000000000e+00  -0x0.0000000000000p+0  should be:  -9.9219562491895441e-01  -0x1.fc0110a085bafp-1  difference:  9.9219562491895441e-01   0x1.fc0110a085bafp-1  ulp       :  8936903693327279.0000  max.ulp   :  1.0000