[all-commits] [llvm/llvm-project] 0d0509: [X86] NFC: expand inline memcmp test coverage

David Zarzycki via All-commits all-commits at lists.llvm.org
Sat Oct 26 11:21:41 PDT 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 0d0509384f054cb4f13260786ee48163ac94d123
      https://github.com/llvm/llvm-project/commit/0d0509384f054cb4f13260786ee48163ac94d123
  Author: David Zarzycki <dave at znu.io>
  Date:   2019-10-26 (Sat, 26 Oct 2019)

  Changed paths:
    M llvm/test/CodeGen/X86/memcmp.ll

  Log Message:
  -----------
  [X86] NFC: expand inline memcmp test coverage

1) Adds SSE4.1 coverage.
2) Adds prefer-256-bit or not coverage.
3) Adds more power-of-two tests up to 512 bytes.
4) Adds power-of-two-minus-one tests to verify overlapping loads.
5) Adds power-of-two-plus-one-half tests (48, 96, 192, and 384).
6) Adds greater-than/less-than tests from 16 to 512 bytes.

https://reviews.llvm.org/D69222


  Commit: 11c920207afa92ad13fdf72daba14c9af336293a
      https://github.com/llvm/llvm-project/commit/11c920207afa92ad13fdf72daba14c9af336293a
  Author: David Zarzycki <dave at znu.io>
  Date:   2019-10-26 (Sat, 26 Oct 2019)

  Changed paths:
    M llvm/lib/Target/X86/X86.td
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/X86/X86Subtarget.h
    M llvm/lib/Target/X86/X86TargetTransformInfo.h
    M llvm/test/CodeGen/X86/memcmp.ll
    M llvm/test/CodeGen/X86/setcc-wide-types.ll

  Log Message:
  -----------
  [X86] Prefer KORTEST on Knights Landing or later for memcmp()

PTEST and especially the MOVMSK instructions are slow on Knights Landing
or later. As a bonus, this patch increases instruction parallelism by
emitting:
    KORTEST(PCMPNEQ(a, b), PCMPNEQ(c, d)) == 0
Instead of:
    KORTEST(AND(PCMPEQ(a, b), PCMPEQ(c, d))) == ~0

https://reviews.llvm.org/D69157


Compare: https://github.com/llvm/llvm-project/compare/82b82e39c457...11c920207afa


More information about the All-commits mailing list