[all-commits] [llvm/llvm-project] c61eb4: [SystemZ] Implement vector rotate in terms of funn...

Ulrich Weigand via All-commits all-commits at lists.llvm.org
Mon Dec 4 07:52:32 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c61eb440059d6e9c18e6f8404e06bf125aa942c9
      https://github.com/llvm/llvm-project/commit/c61eb440059d6e9c18e6f8404e06bf125aa942c9
  Author: Ulrich Weigand <ulrich.weigand at de.ibm.com>
  Date:   2023-12-04 (Mon, 04 Dec 2023)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsSystemZ.def
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/Headers/vecintrin.h
    M clang/test/CodeGen/SystemZ/builtins-systemz-vector.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-zvector.c
    M llvm/include/llvm/IR/IntrinsicsSystemZ.td
    M llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
    M llvm/lib/Target/SystemZ/SystemZISelLowering.h
    M llvm/lib/Target/SystemZ/SystemZInstrVector.td
    M llvm/lib/Target/SystemZ/SystemZOperators.td
    M llvm/test/CodeGen/SystemZ/vec-intrinsics-01.ll
    A llvm/test/CodeGen/SystemZ/vec-rot-01.ll
    A llvm/test/CodeGen/SystemZ/vec-rot-02.ll

  Log Message:
  -----------
  [SystemZ] Implement vector rotate in terms of funnel shift

Clang currently implements a set of vector rotate builtins
(__builtin_s390_verll*) in terms of platform-specific LLVM
intrinsics.  To simplify the IR (and allow for common code
optimizations if applicable), this patch removes those LLVM
intrinsics and implements the builtins in terms of the
platform-independent funnel shift intrinsics instead.

Also, fix the prototype of the __builtin_s390_verll*
builtins for full compatibility with GCC.




More information about the All-commits mailing list