[all-commits] [llvm/llvm-project] 79caa0: [libc++][bit] Improves rotate functions. (#98032)

Mark de Wever via All-commits all-commits at lists.llvm.org
Sat Aug 3 02:19:21 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 79caa066ea6d4f2479aed6a28c6c04fd7857bec8
      https://github.com/llvm/llvm-project/commit/79caa066ea6d4f2479aed6a28c6c04fd7857bec8
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2024-08-03 (Sat, 03 Aug 2024)

  Changed paths:
    M libcxx/include/__bit/rotate.h
    M libcxx/test/std/numerics/bit/bitops.rot/rotl.pass.cpp
    M libcxx/test/std/numerics/bit/bitops.rot/rotr.pass.cpp

  Log Message:
  -----------
  [libc++][bit] Improves rotate functions. (#98032)

Investigating #96612 shows our implementation was different from the
Standard and could cause UB. Testing the codegen showed quite a bit of
assembly generated for these functions. The functions have been written
differently which allows Clang to optimize the code to use simple CPU
rotate instructions.

Fixes: https://github.com/llvm/llvm-project/issues/96612



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list