From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qk1-x72d.google.com (mail-qk1-x72d.google.com [IPv6:2607:f8b0:4864:20::72d]) by sourceware.org (Postfix) with ESMTPS id 8524B388C02C for ; Tue, 5 Jan 2021 14:31:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 8524B388C02C Received: by mail-qk1-x72d.google.com with SMTP id f26so26627148qka.0 for ; Tue, 05 Jan 2021 06:31:29 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=aXqbGRsjSK2wy7Al9CUEsBbD1uOwacp2XavQ6vTtrGg=; b=A199wTUnVaSSvdn52NuLlaxllPUycgePgM4VkGFGofmdpCt1JHXl+2rLJhi9rjlvY8 beBD/6VVGJpSj0CNzw8y2yV0d38CcBY+lAexG9BxKq9NsqH+5daOst1xyI2l+OZVz5K4 V/Xz5cqe45UrB+gewPk7JxmUGgqdYRylkhCBltra1zovdp9mrzlRwHrGtjz2wEPhGuvS Nj2t0GhbCbJustrUV5PcAbpn2+EQyBqdxTpet8wxz72IYbGgqNqCXB+IzHAy0E+TPZDj l3YZgvs2tmHsnaMfnbgjFRo5dG6dV4aE0ZDEi+m8Gi5tyY+VPA++B5jbINpxCjLKMREK kXcg== X-Gm-Message-State: AOAM533XhtczJQ4d5rf8i41mWLHsbv2LZ6Y/BVYvfEat2g5HT+kwT89J KLsNjSo9P84HtK8HDF6/K7aF0wDfIxAWxBG88vAnt7Dh+OLHcw== X-Google-Smtp-Source: ABdhPJzF3NUf5fYWYUGxMuzpPxS+4X/bdRyysN7TDCviaCoEGfjWL4kfKyCdZEb3hjwooDTvkX91DY7uawaAF1jge7w= X-Received: by 2002:a37:6790:: with SMTP id b138mr77239300qkc.465.1609857088909; Tue, 05 Jan 2021 06:31:28 -0800 (PST) MIME-Version: 1.0 From: Uros Bizjak Date: Tue, 5 Jan 2021 15:31:17 +0100 Message-ID: Subject: [PATCH] i386: Prevent spurious FP exceptions with _mm_cvt{, t}ps_pi32 [PR98522] To: "gcc-patches@gcc.gnu.org" Content-Type: multipart/mixed; boundary="000000000000ec911405b8280f95" X-Spam-Status: No, score=-9.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Jan 2021 14:31:31 -0000 --000000000000ec911405b8280f95 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Prevent spurious FP exceptions with _mm_cvt{,t}ps_pi32 for TARGET_MMX_WITH_= SSE by clearing the top 64 bytes of the input XMM register. 2021-01-05 Uro=C5=A1 Bizjak gcc/ PR target/98522 * config/i386/sse.md (sse_cvtps2pi): Redefine as define_insn_and_split. Clear the top 64 bytes of the input XMM register. (sse_cvttps2pi): Ditto. gcc/testsuite PR target/98522 * gcc.target/i386/pr98522.c: New test. Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}. Pushed to mainline, will be beckported to gcc-10. Uros. --000000000000ec911405b8280f95 Content-Type: text/plain; charset="US-ASCII"; name="p.diff.txt" Content-Disposition: attachment; filename="p.diff.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kjk3ber20 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvaTM4Ni9zc2UubWQgYi9nY2MvY29uZmlnL2kzODYvc3Nl Lm1kCmluZGV4IGQ4NDEwMzgwN2ZmLi5jOGU3NzFmZDY5NyAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZp Zy9pMzg2L3NzZS5tZAorKysgYi9nY2MvY29uZmlnL2kzODYvc3NlLm1kCkBAIC01MTAzLDMxICs1 MTAzLDY1IEBACiAgICAoc2V0X2F0dHIgInR5cGUiICJzc2VjdnQiKQogICAgKHNldF9hdHRyICJt b2RlIiAiVjRTRiIpXSkKIAotKGRlZmluZV9pbnNuICJzc2VfY3Z0cHMycGkiCisoZGVmaW5lX2lu c25fYW5kX3NwbGl0ICJzc2VfY3Z0cHMycGkiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyU0kg MCAicmVnaXN0ZXJfb3BlcmFuZCIgIj15LFl2IikKIAkodmVjX3NlbGVjdDpWMlNJCi0JICAodW5z cGVjOlY0U0kgWyhtYXRjaF9vcGVyYW5kOlY0U0YgMSAicmVnaXN0ZXJfbW14bWVtX29wZXJhbmQi ICJ4bSxZdkJtIildCisJICAodW5zcGVjOlY0U0kgWyhtYXRjaF9vcGVyYW5kOlY0U0YgMSAibm9u aW1tZWRpYXRlX29wZXJhbmQiICJ4bSxZdkJtIildCiAJCSAgICAgICBVTlNQRUNfRklYX05PVFJV TkMpCiAJICAocGFyYWxsZWwgWyhjb25zdF9pbnQgMCkgKGNvbnN0X2ludCAxKV0pKSldCiAgICIo VEFSR0VUX01NWCB8fCBUQVJHRVRfTU1YX1dJVEhfU1NFKSAmJiBUQVJHRVRfU1NFIgogICAiQAog ICAgY3Z0cHMycGlcdHslMSwgJTB8JTAsICVxMX0KLSAgICV2Y3Z0cHMyZHFcdHslMSwgJTB8JTAs ICUxfSIKKyAgICMiCisgICJUQVJHRVRfU1NFMiAmJiByZWxvYWRfY29tcGxldGVkCisgICAmJiBT U0VfUkVHX1AgKG9wZXJhbmRzWzBdKSIKKyAgWyhjb25zdF9pbnQgMCldCit7CisgIHJ0eCBvcDEg PSBsb3dwYXJ0X3N1YnJlZyAoVjJTRm1vZGUsIG9wZXJhbmRzWzFdLAorCQkJICAgIEdFVF9NT0RF IChvcGVyYW5kc1sxXSkpOworICBydHggdG1wID0gbG93cGFydF9zdWJyZWcgKFY0U0Ztb2RlLCBv cGVyYW5kc1swXSwKKwkJCSAgICBHRVRfTU9ERSAob3BlcmFuZHNbMF0pKTsKKworICBvcDEgPSBn ZW5fcnR4X1ZFQ19DT05DQVQgKFY0U0Ztb2RlLCBvcDEsIENPTlNUMF9SVFggKFYyU0Ztb2RlKSk7 CisgIGVtaXRfaW5zbiAoZ2VuX3J0eF9TRVQgKHRtcCwgb3AxKSk7CisKKyAgcnR4IGRlc3QgPSBs b3dwYXJ0X3N1YnJlZyAoVjRTSW1vZGUsIG9wZXJhbmRzWzBdLAorCQkJICAgIEdFVF9NT0RFIChv cGVyYW5kc1swXSkpOworICBlbWl0X2luc24gKGdlbl9zc2UyX2ZpeF9ub3RydW5jdjRzZnY0c2kg KGRlc3QsIHRtcCkpOworICBET05FOworfQogICBbKHNldF9hdHRyICJpc2EiICIqLHNzZTIiKQog ICAgKHNldF9hdHRyICJtbXhfaXNhIiAibmF0aXZlLCoiKQogICAgKHNldF9hdHRyICJ0eXBlIiAi c3NlY3Z0IikKICAgIChzZXRfYXR0ciAidW5pdCIgIm1teCwqIikKICAgIChzZXRfYXR0ciAibW9k ZSIgIkRJIildKQogCi0oZGVmaW5lX2luc24gInNzZV9jdnR0cHMycGkiCisoZGVmaW5lX2luc25f YW5kX3NwbGl0ICJzc2VfY3Z0dHBzMnBpIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWMlNJIDAg InJlZ2lzdGVyX29wZXJhbmQiICI9eSxZdiIpCiAJKHZlY19zZWxlY3Q6VjJTSQotCSAgKGZpeDpW NFNJIChtYXRjaF9vcGVyYW5kOlY0U0YgMSAicmVnaXN0ZXJfbW14bWVtX29wZXJhbmQiICJ4bSxZ dkJtIikpCisJICAoZml4OlY0U0kgKG1hdGNoX29wZXJhbmQ6VjRTRiAxICJub25pbW1lZGlhdGVf b3BlcmFuZCIgInhtLFl2Qm0iKSkKIAkgIChwYXJhbGxlbCBbKGNvbnN0X2ludCAwKSAoY29uc3Rf aW50IDEpXSkpKV0KICAgIihUQVJHRVRfTU1YIHx8IFRBUkdFVF9NTVhfV0lUSF9TU0UpICYmIFRB UkdFVF9TU0UiCiAgICJACiAgICBjdnR0cHMycGlcdHslMSwgJTB8JTAsICVxMX0KLSAgICV2Y3Z0 dHBzMmRxXHR7JTEsICUwfCUwLCAlMX0iCisgICAjIgorICAiVEFSR0VUX1NTRTIgJiYgcmVsb2Fk X2NvbXBsZXRlZAorICAgJiYgU1NFX1JFR19QIChvcGVyYW5kc1swXSkiCisgIFsoY29uc3RfaW50 IDApXQoreworICBydHggb3AxID0gbG93cGFydF9zdWJyZWcgKFYyU0Ztb2RlLCBvcGVyYW5kc1sx XSwKKwkJCSAgICBHRVRfTU9ERSAob3BlcmFuZHNbMV0pKTsKKyAgcnR4IHRtcCA9IGxvd3BhcnRf c3VicmVnIChWNFNGbW9kZSwgb3BlcmFuZHNbMF0sCisJCQkgICAgR0VUX01PREUgKG9wZXJhbmRz WzBdKSk7CisKKyAgb3AxID0gZ2VuX3J0eF9WRUNfQ09OQ0FUIChWNFNGbW9kZSwgb3AxLCBDT05T VDBfUlRYIChWMlNGbW9kZSkpOworICBlbWl0X2luc24gKGdlbl9ydHhfU0VUICh0bXAsIG9wMSkp OworCisgIHJ0eCBkZXN0ID0gbG93cGFydF9zdWJyZWcgKFY0U0ltb2RlLCBvcGVyYW5kc1swXSwK KwkJCSAgICBHRVRfTU9ERSAob3BlcmFuZHNbMF0pKTsKKyAgZW1pdF9pbnNuIChnZW5fZml4X3Ry dW5jdjRzZnY0c2kyIChkZXN0LCB0bXApKTsKKyAgRE9ORTsKK30KICAgWyhzZXRfYXR0ciAiaXNh IiAiKixzc2UyIikKICAgIChzZXRfYXR0ciAibW14X2lzYSIgIm5hdGl2ZSwqIikKICAgIChzZXRf YXR0ciAidHlwZSIgInNzZWN2dCIpCkBAIC04MDI2LDcgKzgwNjAsNyBAQAogKGRlZmluZV9pbnNu ICIqdmVjX2NvbmNhdHY0c2ZfMCIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjRTRiAwICJyZWdp c3Rlcl9vcGVyYW5kIiAgICAgICAiPXYiKQogCSh2ZWNfY29uY2F0OlY0U0YKLQkgIChtYXRjaF9v cGVyYW5kOlYyU0YgMSAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSIpCisJICAobWF0Y2hfb3Bl cmFuZDpWMlNGIDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAidm0iKQogCSAgKG1hdGNoX29wZXJh bmQ6VjJTRiAyICJjb25zdDBfb3BlcmFuZCIgICAgICAgIiBDIikpKV0KICAgIlRBUkdFVF9TU0Uy IgogICAiJXZtb3ZxXHR7JTEsICUwfCUwLCAlMX0iCkBAIC0xMDQ1Nyw3ICsxMDQ5MSw3IEBACiAg IFsoc2V0IChtYXRjaF9vcGVyYW5kOlZGMl81MTJfMjU2IDAgInJlZ2lzdGVyX29wZXJhbmQiICI9 diIpCiAJKHZlY19tZXJnZTpWRjJfNTEyXzI1NgogCSAgKHZlY19kdXBsaWNhdGU6VkYyXzUxMl8y NTYKLQkgICAgKG1hdGNoX29wZXJhbmQ6PHNzZXNjYWxhcm1vZGU+IDIgIm5vbmltbWVkaWF0ZV9v cGVyYW5kIiAieG0iKSkKKwkgICAgKG1hdGNoX29wZXJhbmQ6PHNzZXNjYWxhcm1vZGU+IDIgIm5v bmltbWVkaWF0ZV9vcGVyYW5kIiAidm0iKSkKIAkgIChtYXRjaF9vcGVyYW5kOlZGMl81MTJfMjU2 IDEgImNvbnN0MF9vcGVyYW5kIiAiQyIpCiAJICAoY29uc3RfaW50IDEpKSldCiAgICJUQVJHRVRf QVZYIgpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI5ODUyMi5j IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI5ODUyMi5jCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43NjJmMmVkZWQ1MAotLS0gL2Rldi9udWxsCisrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByOTg1MjIuYwpAQCAtMCwwICsxLDM5IEBA CisvKiBQUiB0YXJnZXQvOTg1MjIgKi8KKy8qIHsgZGctZG8gcnVuIHsgdGFyZ2V0IHsgISBpYTMy IH0gfSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiIgfSAqLworLyogeyBkZy1yZXF1aXJlLWVm ZmVjdGl2ZS10YXJnZXQgZmVudl9leGNlcHRpb25zIH0gKi8KKworI2luY2x1ZGUgPGVtbWludHJp bi5oPgorI2luY2x1ZGUgPGZlbnYuaD4KKworX19tNjQKK19fYXR0cmlidXRlX18oKG5vaW5saW5l KSkKK3Rlc3RfY3Z0IChfX20xMjggYSkKK3sKKyAgcmV0dXJuIF9tbV9jdnRfcHMycGkgKGEpOwor fQorCitfX202NAorX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQordGVzdF9jdnR0IChfX20xMjgg YSkKK3sKKyAgcmV0dXJuIF9tbV9jdnR0X3BzMnBpIChhKTsKK30KKworaW50CittYWluICgpCit7 CisgIF9fbTEyOCB4ID0gKF9fbTEyOCkoX19tMTI4aSl7MHgwMDAwMDAwMDAwMDAwMDAwTEwsIDB4 N2ZmZmZmZmZmZmZmZmZmZkxMfTsKKyAgdm9sYXRpbGUgX19tNjQgeTsKKworICBmZWNsZWFyZXhj ZXB0IChGRV9JTlZBTElEKTsKKworICB5ID0gdGVzdF9jdnQoeCk7CisgIHkgPSB0ZXN0X2N2dHQg KHgpOworCisgICAgaWYgKGZldGVzdGV4Y2VwdCAoRkVfSU5WQUxJRCkpCisgICAgX19idWlsdGlu X2Fib3J0ICgpOworCisgIHJldHVybiAwOworfQorCg== --000000000000ec911405b8280f95--