+Tim, I've reverted this since it seems to have broken the vector
initialization intrinsics.

(I would have replied to the llvm-commits email for the original
change, but it seems it didn't reach the list?)

On Mon, Nov 25, 2019 at 4:35 PM Hans Wennborg via cfe-commits
<cfe-commits@lists.llvm.org> wrote:
>
>
> Author: Hans Wennborg
> Date: 2019-11-25T16:27:53+01:00
> New Revision: 21f26470e9747c472d3c18654e676cbea8393635
>
> URL: 
> https://github.com/llvm/llvm-project/commit/21f26470e9747c472d3c18654e676cbea8393635
> DIFF: 
> https://github.com/llvm/llvm-project/commit/21f26470e9747c472d3c18654e676cbea8393635.diff
>
> LOG: Revert 3f91705ca54 "ARM-NEON: make type modifiers orthogonal and allow 
> multiple modifiers."
>
> This broke the vcreate_u64 intrinsic. Example:
>
>   $ cat /tmp/a.cc
>   #include <arm_neon.h>
>
>   void g() {
>     auto v = vcreate_u64(0);
>   }
>   $ bin/clang -c /tmp/a.cc --target=arm-linux-androideabi16 -march=armv7-a
>   /tmp/a.cc:4:12: error: C-style cast from scalar 'int' to vector 
> 'uint64x1_t' (vector of 1 'uint64_t' value) of different size
>     auto v = vcreate_u64(0);
>              ^~~~~~~~~~~~~~
>   
> /work/llvm.monorepo/build.release/lib/clang/10.0.0/include/arm_neon.h:4144:11:
>  note: expanded from macro 'vcreate_u64'
>     __ret = (uint64x1_t)(__p0); \
>             ^~~~~~~~~~~~~~~~~~
>
> Reverting until this can be investigated.
>
> > 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.
>
> Added:
>
>
> Modified:
>     clang/include/clang/Basic/arm_fp16.td
>     clang/include/clang/Basic/arm_neon.td
>     clang/include/clang/Basic/arm_neon_incl.td
>     clang/test/CodeGen/aarch64-neon-intrinsics.c
>     clang/test/CodeGen/aarch64-neon-scalar-x-indexed-elem.c
>     clang/utils/TableGen/NeonEmitter.cpp
>
> Removed:
>     clang/utils/convert_arm_neon.py
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to