[all-commits] [llvm/llvm-project] 78ad22: Recommit ARM-NEON: make type modifiers orthogonal ...

Tim Northover via All-commits all-commits at lists.llvm.org
Tue Nov 26 01:22:25 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 78ad22e0cc6390fcd44b2b7b5132f1b960ff975d
      https://github.com/llvm/llvm-project/commit/78ad22e0cc6390fcd44b2b7b5132f1b960ff975d
  Author: Tim Northover <t.p.northover at gmail.com>
  Date:   2019-11-26 (Tue, 26 Nov 2019)

  Changed paths:
    M clang/include/clang/Basic/arm_fp16.td
    M clang/include/clang/Basic/arm_neon.td
    M clang/include/clang/Basic/arm_neon_incl.td
    M clang/test/CodeGen/aarch64-neon-intrinsics.c
    M clang/test/CodeGen/arm_neon_intrinsics.c
    M clang/utils/TableGen/NeonEmitter.cpp
    A clang/utils/convert_arm_neon.py

  Log Message:
  -----------
  Recommit ARM-NEON: make type modifiers orthogonal and allow multiple modifiers.

The modifier system used to mutate types on NEON intrinsic definitions had a
separate letter for all kinds of transformations that might be needed, and we
were quite quickly running out of letters to use. This patch converts to a much
smaller set of orthogonal modifiers that can be applied together to achieve the
desired effect.

When merging with downstream it is likely to cause a conflict with any local
modifications to the .td files. There is a new script in
utils/convert_arm_neon.py that was used to convert all .td definitions and I
would suggest running it on the last downstream version of those files before
this commit rather than resolving conflicts manually.

The original version broke vcreate_* because it became a macro and didn't
apply the normal integer promotion rules before bitcasting to a vector.
This adds a temporary.




More information about the All-commits mailing list