From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oi1-x22a.google.com (mail-oi1-x22a.google.com [IPv6:2607:f8b0:4864:20::22a]) by sourceware.org (Postfix) with ESMTPS id 280063854809 for ; Thu, 15 Apr 2021 16:51:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 280063854809 Received: by mail-oi1-x22a.google.com with SMTP id m13so24893020oiw.13 for ; Thu, 15 Apr 2021 09:51:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=reIW/WFeCCvv7zGeIdH4abkXQc9pW8dKMZrvCNFY+r8=; b=kyO99f78Ig+y6JVpjarjreq5VgII7vRcihgEInU1Kcnls8GIfHTxV15GMiz4PrbcY6 Z5jMqF9BapaIBGXv1Y0Vsk5T4r0sZzwbPcilDfDJD1xNG9p/8u6xwpZJzhuOHoy5Xgnj SohjmFG/BA/i1XkmFS4G7IzvvdFO0hAH743KCu7PzbUEDRKIyr3z1FguBhLAz3dF2R5D QkJ1G3tTJW55WwertQYVEWAz6xbHLy8Lcxq1kQ1dBhRQ0wyBfD98P+f4HiIZ8ajgSTS5 iJEa08iVYvwAhmwFsb/cU0ZM7xAk/kgdVVXEW57YfBq94hO2qIyVzZllHKjaPEIqowpP QG6g== X-Gm-Message-State: AOAM5338js+CYDh1Jpa+Ywh5Jw1RW/OBGPxAZyWJ/UZT5ScCbKmKM/Kx +sXZqXr8SqS3QIUMiyc2umDrBq/q53rZnQnjjag= X-Google-Smtp-Source: ABdhPJz2v0L5SOYSwxyYbtroL99RK/lR+lreiSDFAON5i9u3BIIE0ISuAVVP7bl1s4G7AKVfakYsPtDIipycOl3xNAY= X-Received: by 2002:a05:6808:10c5:: with SMTP id s5mr3203823ois.58.1618505489509; Thu, 15 Apr 2021 09:51:29 -0700 (PDT) MIME-Version: 1.0 References: <20210415151144.439294-1-hjl.tools@gmail.com> In-Reply-To: From: "H.J. Lu" Date: Thu, 15 Apr 2021 09:50:53 -0700 Message-ID: Subject: [PATCH v2] x86: Use crc32 target option for CRC32 intrinsics To: Uros Bizjak Cc: "gcc-patches@gcc.gnu.org" Content-Type: multipart/mixed; boundary="000000000000c528cf05c005ace9" X-Spam-Status: No, score=-3028.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, 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: Thu, 15 Apr 2021 16:51:31 -0000 --000000000000c528cf05c005ace9 Content-Type: text/plain; charset="UTF-8" On Thu, Apr 15, 2021 at 9:34 AM Uros Bizjak wrote: > > On Thu, Apr 15, 2021 at 6:26 PM H.J. Lu wrote: > > > > On Thu, Apr 15, 2021 at 9:14 AM Uros Bizjak wrote: > > > > > > On Thu, Apr 15, 2021 at 5:11 PM H.J. Lu wrote: > > > > > > > > Use crc32 target option for CRC32 intrinsics to support CRC32 intrinsics > > > > without enabling SSE vector instructions. > > > > > > There is no CRC32 ISA. crc32 is part of SSE4.2 [1] and current > > > situation reflects that correctly. > > > > CRC32 is similar to POPCNT which was originally in SSE4.2. Now POPCNT > > It is not similar, POPCNT has its own CPUID flag and can be enabled > independently of SSE4.2. > > > is a separate feature which is also enabled by SSE4.2. Enable CRC32 only > > with SSE4.2 makes it impossible to use CRC32 with -mgeneral-regs-only. This > > patch addresses this issue the same way as POPCNT. > > CRC32 doesn't have its own CPUID flag, so PTA_CRC32 is pointless. PTA_CRC32 shouldn't be added. > OTOH, the situation is similar with MONITOR and MWAIT. These are There are no intrinsics for MONITOR nor MWAIT. > enabled with SSE3 and don't use XMM registers. Also somewhat similar > is FISTTP, but there is no intrinsic for this insn. True. Here is the v2 patch without PTA_CRC32. -- H.J. --000000000000c528cf05c005ace9 Content-Type: application/x-patch; name="v2-0001-x86-Use-crc32-target-option-for-CRC32-intrinsics.patch" Content-Disposition: attachment; filename="v2-0001-x86-Use-crc32-target-option-for-CRC32-intrinsics.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_knj4b3zb0 RnJvbSA5MThjMjhhZTg4NDNkZjkwZDFkNzM4MzhlN2FmZTA1Y2NkZmI0Y2JmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IFRodSwgMTUgQXByIDIwMjEgMDU6NTk6NDggLTA3MDAKU3ViamVjdDogW1BBVENIIHYyXSB4ODY6 IFVzZSBjcmMzMiB0YXJnZXQgb3B0aW9uIGZvciBDUkMzMiBpbnRyaW5zaWNzCgpVc2UgY3JjMzIg dGFyZ2V0IG9wdGlvbiBmb3IgQ1JDMzIgaW50cmluc2ljcyB0byBzdXBwb3J0IENSQzMyIGludHJp bnNpY3MKd2l0aG91dCBlbmFibGluZyBTU0UgdmVjdG9yIGluc3RydWN0aW9ucy4KCgkqIGNvbmZp Zy9pMzg2L2dudS1wcm9wZXJ0eS5jCgkoZmlsZV9lbmRfaW5kaWNhdGVfZXhlY19zdGFja19hbmRf Z251X3Byb3BlcnR5KTogQWxzbyBjaGVjawoJVEFSR0VUX0NSQzMyIGZvciBHTlVfUFJPUEVSVFlf WDg2X0lTQV8xX1YyLgoJKiBjb25maWcvaTM4Ni9pMzg2LWMuYyAoaXg4Nl90YXJnZXRfbWFjcm9z X2ludGVybmFsKTogRGVmaW5lCglfX0NSQzMyX18gZm9yIC1tY3JjMzIuCgkqIGNvbmZpZy9pMzg2 L2kzODYtb3B0aW9ucy5jIChpeDg2X29wdGlvbl9vdmVycmlkZV9pbnRlcm5hbCk6CglFbmFibGUg Y3JjMzIgaW5zdHJ1Y3Rpb24gZm9yIC1tc3NlNC4yLgoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kIChz c2U0XzJfY3JjMzI8bW9kZT4pOiBSZW1vdmUgVEFSR0VUX1NTRTRfMgoJY2hlY2suCgkoc3NlNF8y X2NyYzMyZGkpOiBMaWtld2lzZS4KCSogY29uZmlnL2kzODYvaWEzMmludHJpbi5oOiBVc2UgY3Jj MzIgdGFyZ2V0IG9wdGlvbiBmb3IgQ1JDMzIKCWludHJpbnNpY3MuCi0tLQogZ2NjL2NvbmZpZy9p Mzg2L2dudS1wcm9wZXJ0eS5jIHwgIDEgKwogZ2NjL2NvbmZpZy9pMzg2L2kzODYtYy5jICAgICAg IHwgIDIgKysKIGdjYy9jb25maWcvaTM4Ni9pMzg2LW9wdGlvbnMuYyB8ICA1ICsrKysrCiBnY2Mv Y29uZmlnL2kzODYvaTM4Ni5tZCAgICAgICAgfCAgNCArKy0tCiBnY2MvY29uZmlnL2kzODYvaWEz MmludHJpbi5oICAgfCAyOCArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiA1IGZpbGVzIGNo YW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2dj Yy9jb25maWcvaTM4Ni9nbnUtcHJvcGVydHkuYyBiL2djYy9jb25maWcvaTM4Ni9nbnUtcHJvcGVy dHkuYwppbmRleCA0YmEwNDQwMzAwMi4uYjZhM2JkZjYyY2UgMTAwNjQ0Ci0tLSBhL2djYy9jb25m aWcvaTM4Ni9nbnUtcHJvcGVydHkuYworKysgYi9nY2MvY29uZmlnL2kzODYvZ251LXByb3BlcnR5 LmMKQEAgLTkyLDYgKzkyLDcgQEAgZmlsZV9lbmRfaW5kaWNhdGVfZXhlY19zdGFja19hbmRfZ251 X3Byb3BlcnR5ICh2b2lkKQogICAgICAgLyogR05VX1BST1BFUlRZX1g4Nl9JU0FfMV9WMi4gICov CiAgICAgICBpZiAoVEFSR0VUX0NNUFhDSEcxNkIKIAkgIHx8IChUQVJHRVRfNjRCSVQgJiYgVEFS R0VUX1NBSEYpCisJICB8fCBUQVJHRVRfQ1JDMzIKIAkgIHx8IFRBUkdFVF9QT1BDTlQKIAkgIHx8 IFRBUkdFVF9TU0UzCiAJICB8fCBUQVJHRVRfU1NTRTMKZGlmZiAtLWdpdCBhL2djYy9jb25maWcv aTM4Ni9pMzg2LWMuYyBiL2djYy9jb25maWcvaTM4Ni9pMzg2LWMuYwppbmRleCBiZTQ2ZDA1MDZh ZC4uNWVkMGRlMDA2ZmIgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvaTM4Ni9pMzg2LWMuYworKysg Yi9nY2MvY29uZmlnL2kzODYvaTM4Ni1jLmMKQEAgLTUzMiw2ICs1MzIsOCBAQCBpeDg2X3Rhcmdl dF9tYWNyb3NfaW50ZXJuYWwgKEhPU1RfV0lERV9JTlQgaXNhX2ZsYWcsCiAgICAgZGVmX29yX3Vu ZGVmIChwYXJzZV9pbiwgIl9fTFpDTlRfXyIpOwogICBpZiAoaXNhX2ZsYWcgJiBPUFRJT05fTUFT S19JU0FfVEJNKQogICAgIGRlZl9vcl91bmRlZiAocGFyc2VfaW4sICJfX1RCTV9fIik7CisgIGlm IChpc2FfZmxhZyAmIE9QVElPTl9NQVNLX0lTQV9DUkMzMikKKyAgICBkZWZfb3JfdW5kZWYgKHBh cnNlX2luLCAiX19DUkMzMl9fIik7CiAgIGlmIChpc2FfZmxhZyAmIE9QVElPTl9NQVNLX0lTQV9Q T1BDTlQpCiAgICAgZGVmX29yX3VuZGVmIChwYXJzZV9pbiwgIl9fUE9QQ05UX18iKTsKICAgaWYg KGlzYV9mbGFnICYgT1BUSU9OX01BU0tfSVNBX0ZTR1NCQVNFKQpkaWZmIC0tZ2l0IGEvZ2NjL2Nv bmZpZy9pMzg2L2kzODYtb3B0aW9ucy5jIGIvZ2NjL2NvbmZpZy9pMzg2L2kzODYtb3B0aW9ucy5j CmluZGV4IDkxZGEyODQ5YzQ5Li43ZTU5Y2NkOTg4ZCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9p Mzg2L2kzODYtb3B0aW9ucy5jCisrKyBiL2djYy9jb25maWcvaTM4Ni9pMzg2LW9wdGlvbnMuYwpA QCAtMjYxNyw2ICsyNjE3LDExIEBAIGl4ODZfb3B0aW9uX292ZXJyaWRlX2ludGVybmFsIChib29s IG1haW5fYXJnc19wLAogICAgIG9wdHMtPnhfaXg4Nl9pc2FfZmxhZ3MKICAgICAgIHw9IE9QVElP Tl9NQVNLX0lTQV9QT1BDTlQgJiB+b3B0cy0+eF9peDg2X2lzYV9mbGFnc19leHBsaWNpdDsKIAor ICAvKiBFbmFibGUgY3JjMzIgaW5zdHJ1Y3Rpb24gZm9yIC1tc3NlNC4yLiAgKi8KKyAgaWYgKFRB UkdFVF9TU0U0XzJfUCAob3B0cy0+eF9peDg2X2lzYV9mbGFncykpCisgICAgb3B0cy0+eF9peDg2 X2lzYV9mbGFncworICAgICAgfD0gT1BUSU9OX01BU0tfSVNBX0NSQzMyICYgfm9wdHMtPnhfaXg4 Nl9pc2FfZmxhZ3NfZXhwbGljaXQ7CisKICAgLyogRW5hYmxlIGx6Y250IGluc3RydWN0aW9uIGZv ciAtbWFibS4gICovCiAgIGlmIChUQVJHRVRfQUJNX1Aob3B0cy0+eF9peDg2X2lzYV9mbGFncykp CiAgICAgb3B0cy0+eF9peDg2X2lzYV9mbGFncwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9pMzg2 L2kzODYubWQgYi9nY2MvY29uZmlnL2kzODYvaTM4Ni5tZAppbmRleCA5ZmYzNWQ5YTYwNy4uMWYx ZDc0ZTYyNzUgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvaTM4Ni9pMzg2Lm1kCisrKyBiL2djYy9j b25maWcvaTM4Ni9pMzg2Lm1kCkBAIC0yMDk5OCw3ICsyMDk5OCw3IEBACiAJICBbKG1hdGNoX29w ZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKQogCSAgIChtYXRjaF9vcGVyYW5kOlNX STEyNCAyICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIjxyPm0iKV0KIAkgIFVOU1BFQ19DUkMzMikp XQotICAiVEFSR0VUX1NTRTRfMiB8fCBUQVJHRVRfQ1JDMzIiCisgICJUQVJHRVRfQ1JDMzIiCiAg ICJjcmMzMns8aW1vZGVzdWZmaXg+fVx0eyUyLCAlMHwlMCwgJTJ9IgogICBbKHNldF9hdHRyICJ0 eXBlIiAic3NlbG9nMSIpCiAgICAoc2V0X2F0dHIgInByZWZpeF9yZXAiICIxIikKQEAgLTIxMDE5 LDcgKzIxMDE5LDcgQEAKIAkgIFsobWF0Y2hfb3BlcmFuZDpESSAxICJyZWdpc3Rlcl9vcGVyYW5k IiAiMCIpCiAJICAgKG1hdGNoX29wZXJhbmQ6REkgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJy bSIpXQogCSAgVU5TUEVDX0NSQzMyKSldCi0gICJUQVJHRVRfNjRCSVQgJiYgKFRBUkdFVF9TU0U0 XzIgfHwgVEFSR0VUX0NSQzMyKSIKKyAgIlRBUkdFVF82NEJJVCAmJiBUQVJHRVRfQ1JDMzIiCiAg ICJjcmMzMntxfVx0eyUyLCAlMHwlMCwgJTJ9IgogICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9n MSIpCiAgICAoc2V0X2F0dHIgInByZWZpeF9yZXAiICIxIikKZGlmZiAtLWdpdCBhL2djYy9jb25m aWcvaTM4Ni9pYTMyaW50cmluLmggYi9nY2MvY29uZmlnL2kzODYvaWEzMmludHJpbi5oCmluZGV4 IDU5MTM5NDA3NmNjLi41NDIyYjBmYzllMCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L2lh MzJpbnRyaW4uaAorKysgYi9nY2MvY29uZmlnL2kzODYvaWEzMmludHJpbi5oCkBAIC01MSwxMSAr NTEsMTEgQEAgX19ic3dhcGQgKGludCBfX1gpCiAKICNpZm5kZWYgX19pYW1jdV9fCiAKLSNpZm5k ZWYgX19TU0U0XzJfXworI2lmbmRlZiBfX0NSQzMyX18KICNwcmFnbWEgR0NDIHB1c2hfb3B0aW9u cwotI3ByYWdtYSBHQ0MgdGFyZ2V0KCJzc2U0LjIiKQotI2RlZmluZSBfX0RJU0FCTEVfU1NFNF8y X18KLSNlbmRpZiAvKiBfX1NTRTRfMl9fICovCisjcHJhZ21hIEdDQyB0YXJnZXQoImNyYzMyIikK KyNkZWZpbmUgX19ESVNBQkxFX0NSQzMyX18KKyNlbmRpZiAvKiBfX0NSQzMyX18gKi8KIAogLyog MzJiaXQgYWNjdW11bGF0ZSBDUkMzMiAocG9seW5vbWlhbCAweDExRURDNkY0MSkgdmFsdWUuICAq LwogZXh0ZXJuIF9faW5saW5lIHVuc2lnbmVkIGludApAQCAtNzksMTAgKzc5LDEwIEBAIF9fY3Jj MzJkICh1bnNpZ25lZCBpbnQgX19DLCB1bnNpZ25lZCBpbnQgX19WKQogICByZXR1cm4gX19idWls dGluX2lhMzJfY3JjMzJzaSAoX19DLCBfX1YpOwogfQogCi0jaWZkZWYgX19ESVNBQkxFX1NTRTRf Ml9fCi0jdW5kZWYgX19ESVNBQkxFX1NTRTRfMl9fCisjaWZkZWYgX19ESVNBQkxFX0NSQzMyX18K KyN1bmRlZiBfX0RJU0FCTEVfQ1JDMzJfXwogI3ByYWdtYSBHQ0MgcG9wX29wdGlvbnMKLSNlbmRp ZiAvKiBfX0RJU0FCTEVfU1NFNF8yX18gKi8KKyNlbmRpZiAvKiBfX0RJU0FCTEVfQ1JDMzJfXyAq LwogCiAjZW5kaWYgLyogX19pYW1jdV9fICovCiAKQEAgLTE5OSwxMSArMTk5LDExIEBAIF9fYnN3 YXBxIChsb25nIGxvbmcgX19YKQogICByZXR1cm4gX19idWlsdGluX2Jzd2FwNjQgKF9fWCk7CiB9 CiAKLSNpZm5kZWYgX19TU0U0XzJfXworI2lmbmRlZiBfX0NSQzMyX18KICNwcmFnbWEgR0NDIHB1 c2hfb3B0aW9ucwotI3ByYWdtYSBHQ0MgdGFyZ2V0KCJzc2U0LjIiKQotI2RlZmluZSBfX0RJU0FC TEVfU1NFNF8yX18KLSNlbmRpZiAvKiBfX1NTRTRfMl9fICovCisjcHJhZ21hIEdDQyB0YXJnZXQo ImNyYzMyIikKKyNkZWZpbmUgX19ESVNBQkxFX0NSQzMyX18KKyNlbmRpZiAvKiBfX0NSQzMyX18g Ki8KIAogLyogNjRiaXQgYWNjdW11bGF0ZSBDUkMzMiAocG9seW5vbWlhbCAweDExRURDNkY0MSkg dmFsdWUuICAqLwogZXh0ZXJuIF9faW5saW5lIHVuc2lnbmVkIGxvbmcgbG9uZwpAQCAtMjEzLDEw ICsyMTMsMTAgQEAgX19jcmMzMnEgKHVuc2lnbmVkIGxvbmcgbG9uZyBfX0MsIHVuc2lnbmVkIGxv bmcgbG9uZyBfX1YpCiAgIHJldHVybiBfX2J1aWx0aW5faWEzMl9jcmMzMmRpIChfX0MsIF9fVik7 CiB9CiAKLSNpZmRlZiBfX0RJU0FCTEVfU1NFNF8yX18KLSN1bmRlZiBfX0RJU0FCTEVfU1NFNF8y X18KKyNpZmRlZiBfX0RJU0FCTEVfQ1JDMzJfXworI3VuZGVmIF9fRElTQUJMRV9DUkMzMl9fCiAj cHJhZ21hIEdDQyBwb3Bfb3B0aW9ucwotI2VuZGlmIC8qIF9fRElTQUJMRV9TU0U0XzJfXyAqLwor I2VuZGlmIC8qIF9fRElTQUJMRV9DUkMzMl9fICovCiAKIC8qIDY0Yml0IHBvcGNudCAqLwogZXh0 ZXJuIF9faW5saW5lIGxvbmcgbG9uZwotLSAKMi4zMC4yCgo= --000000000000c528cf05c005ace9--