[all-commits] [llvm/llvm-project] 228c74: [ARM][MVE][Intrinsics] Add *_x() variants of my *_...

Mark Murray via All-commits all-commits at lists.llvm.org
Fri Dec 13 03:51:35 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 228c74076d5168a35274b04505f99e373f74f65f
      https://github.com/llvm/llvm-project/commit/228c74076d5168a35274b04505f99e373f74f65f
  Author: Mark Murray <mark.murray at arm.com>
  Date:   2019-12-13 (Fri, 13 Dec 2019)

  Changed paths:
    M clang/include/clang/Basic/arm_mve.td
    M clang/test/CodeGen/arm-mve-intrinsics/vabdq.c
    M clang/test/CodeGen/arm-mve-intrinsics/vaddq.c
    M clang/test/CodeGen/arm-mve-intrinsics/vandq.c
    M clang/test/CodeGen/arm-mve-intrinsics/vbicq.c
    M clang/test/CodeGen/arm-mve-intrinsics/veorq.c
    M clang/test/CodeGen/arm-mve-intrinsics/vhaddq.c
    M clang/test/CodeGen/arm-mve-intrinsics/vmaxnmq.c
    M clang/test/CodeGen/arm-mve-intrinsics/vmaxq.c
    M clang/test/CodeGen/arm-mve-intrinsics/vminnmq.c
    M clang/test/CodeGen/arm-mve-intrinsics/vminq.c
    M clang/test/CodeGen/arm-mve-intrinsics/vmulhq.c
    M clang/test/CodeGen/arm-mve-intrinsics/vmullbq.c
    M clang/test/CodeGen/arm-mve-intrinsics/vmulltq.c
    M clang/test/CodeGen/arm-mve-intrinsics/vmulq.c
    M clang/test/CodeGen/arm-mve-intrinsics/vornq.c
    M clang/test/CodeGen/arm-mve-intrinsics/vorrq.c
    M clang/test/CodeGen/arm-mve-intrinsics/vrhaddq.c
    M clang/test/CodeGen/arm-mve-intrinsics/vrmulhq.c
    A clang/test/CodeGen/arm-mve-intrinsics/vsubq.c
    M llvm/include/llvm/IR/IntrinsicsARM.td
    M llvm/lib/Target/ARM/ARMInstrMVE.td
    M llvm/test/CodeGen/Thumb2/mve-intrinsics/vabdq.ll
    M llvm/test/CodeGen/Thumb2/mve-intrinsics/vaddq.ll
    M llvm/test/CodeGen/Thumb2/mve-intrinsics/vandq.ll
    M llvm/test/CodeGen/Thumb2/mve-intrinsics/vbicq.ll
    M llvm/test/CodeGen/Thumb2/mve-intrinsics/veorq.ll
    M llvm/test/CodeGen/Thumb2/mve-intrinsics/vhaddq.ll
    M llvm/test/CodeGen/Thumb2/mve-intrinsics/vmaxnmq.ll
    M llvm/test/CodeGen/Thumb2/mve-intrinsics/vmaxq.ll
    M llvm/test/CodeGen/Thumb2/mve-intrinsics/vminnmq.ll
    M llvm/test/CodeGen/Thumb2/mve-intrinsics/vminq.ll
    M llvm/test/CodeGen/Thumb2/mve-intrinsics/vmulhq.ll
    M llvm/test/CodeGen/Thumb2/mve-intrinsics/vmullbq.ll
    M llvm/test/CodeGen/Thumb2/mve-intrinsics/vmulltq.ll
    M llvm/test/CodeGen/Thumb2/mve-intrinsics/vmulq.ll
    M llvm/test/CodeGen/Thumb2/mve-intrinsics/vornq.ll
    M llvm/test/CodeGen/Thumb2/mve-intrinsics/vorrq.ll
    M llvm/test/CodeGen/Thumb2/mve-intrinsics/vrhaddq.ll
    M llvm/test/CodeGen/Thumb2/mve-intrinsics/vrmulhq.ll
    A llvm/test/CodeGen/Thumb2/mve-intrinsics/vsubq.ll

  Log Message:
  -----------
  [ARM][MVE][Intrinsics] Add *_x() variants of my *_m() intrinsics.

Summary:
Better use of multiclass is used, and this helped find some existing
bugs in the predicated VMULL* intrinsics, which are now fixed.

The refactored VMULL[TB]Q_(INT|POLY)_M() intrinsics were discovered
to have an argument ("inactive") with incorrect type, and this required
a fix that is included in this whole patch. The argument "inactive"
should have been the same width (per vector element) as the return
type of the intrinsic, but was not in the case where the return type
was double the element width of the input types.

To assist in testing the multiclassing , and to thwart further gremlins,
the unit tests are improved in scope.

The *.ll tests are all generated by a small bit of throw-away scripting
from the corresponding *.c tests, and as such the diffs are large and
nasty. Look at the file rather than the diff.

Reviewers: dmgreen, miyuki, ostannard, simon_tatham

Subscribers: kristof.beyls, hiraditya, cfe-commits, llvm-commits

Tags: #clang, #llvm

Differential Revision: https://reviews.llvm.org/D71421




More information about the All-commits mailing list