Page MenuHomePhabricator

[clang] Revert "Re-fix _lrotl/_lrotr to always take Long, no matter the platform."
AcceptedPublic

Authored by arphaman on Apr 20 2021, 4:48 PM.

Details

Summary

This reverts commit 92146ce399cdb26c3a9aa4d68af8cacb7c1c0fef. The original commit is from 2019, but we were unable to ship this change in clang in Xcode due to the issue explained below, so we would like to upstream the revert of this commit to help our clients test their build with upstream clang.

This commit broke users targeting LP64 (e.g. Microsoft's build of office for macOS) systems that expect these
intrinsics to match the MSVC behavior of working on 32 bit integers.
These users use a LONG macro which is defined as long on Windows
(LLP64), and int when targeting LP64 systems. Without this behavior
there is no intrinsic for 32 bit rotates on these platforms.

Diff Detail

Event Timeline

arphaman created this revision.Apr 20 2021, 4:48 PM
arphaman requested review of this revision.Apr 20 2021, 4:48 PM
Herald added a project: Restricted Project. · View Herald TranscriptApr 20 2021, 4:48 PM
bruno accepted this revision.Apr 29 2021, 3:21 PM
bruno added a subscriber: bruno.

This is the same as https://reviews.llvm.org/D80172, right? LGTM.

This revision is now accepted and ready to land.Apr 29 2021, 3:21 PM