[all-commits] [llvm/llvm-project] 6c6cd5: [X86] Consolidate wide Key Locker intrinsics into ...

topperc via All-commits all-commits at lists.llvm.org
Sun Oct 4 12:10:35 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 6c6cd5f8a9750865800ce26bdeacd84533335db3
      https://github.com/llvm/llvm-project/commit/6c6cd5f8a9750865800ce26bdeacd84533335db3
  Author: Craig Topper <craig.topper at intel.com>
  Date:   2020-10-04 (Sun, 04 Oct 2020)

  Changed paths:
    M clang/lib/Headers/CMakeLists.txt
    M clang/lib/Headers/immintrin.h
    R clang/lib/Headers/keylocker_wide_intrin.h
    M clang/lib/Headers/keylockerintrin.h

  Log Message:
  -----------
  [X86] Consolidate wide Key Locker intrinsics into the same header as the other Key Locker intrinsics.


  Commit: 28595cbbeb2cc75584410b8b974f67ec99a853f2
      https://github.com/llvm/llvm-project/commit/28595cbbeb2cc75584410b8b974f67ec99a853f2
  Author: Craig Topper <craig.topper at intel.com>
  Date:   2020-10-04 (Sun, 04 Oct 2020)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsX86.def
    M clang/lib/Headers/keylockerintrin.h
    M llvm/include/llvm/IR/IntrinsicsX86.td
    M llvm/lib/Target/X86/X86InstrKL.td
    M llvm/test/CodeGen/X86/keylocker-intrinsics.ll

  Log Message:
  -----------
  [X86] Synchronize the loadiwkey builtin operand order with gcc version.


  Commit: 230c57b0bd8321085a5e0339baf37b509d5c76f6
      https://github.com/llvm/llvm-project/commit/230c57b0bd8321085a5e0339baf37b509d5c76f6
  Author: Craig Topper <craig.topper at intel.com>
  Date:   2020-10-04 (Sun, 04 Oct 2020)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsX86.def
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/Headers/keylockerintrin.h
    M clang/test/CodeGen/X86/keylocker.c
    A llvm/test/CodeGen/X86/keylocker-intrinsics-fast-isel.ll

  Log Message:
  -----------
  [X86] Synchronize the encodekey builtins with gcc. Don't assume void* is 16 byte aligned.

We were taking multiple pointer arguments in the builtin.
gcc accepts a single void*.

The cast from void* to _m128i* caused the IR generation to assume
the pointer was aligned.

Instead make the builtin take a single void*, emit i8* GEPs to
adjust then cast to <2 x i64>* and perform a store with align of 1.


  Commit: a02b449bb1556fe0f17b86eaa69f6bcda945d123
      https://github.com/llvm/llvm-project/commit/a02b449bb1556fe0f17b86eaa69f6bcda945d123
  Author: Craig Topper <craig.topper at intel.com>
  Date:   2020-10-04 (Sun, 04 Oct 2020)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsX86.def
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/Headers/keylockerintrin.h
    M clang/test/CodeGen/X86/keylocker.c
    M llvm/test/CodeGen/X86/keylocker-intrinsics-fast-isel.ll

  Log Message:
  -----------
  [X86] Sync AESENC/DEC Key Locker builtins with gcc.

For the wide builtins, pass a single input and output pointer to
the builtins. Emit the GEPs and input loads from CGBuiltin.


Compare: https://github.com/llvm/llvm-project/compare/357bbaab666b...a02b449bb155


More information about the All-commits mailing list