Hi,

I've spotted that our emulation of the behaviour of the vtbx1
and vtbx3 intrinsics is not correct. From time to time we end up
with completely the wrong value.

Rather than fix this by rewriting the assembler block I'd rather
rewrite vtbx{1,3} in terms of other intrinsics.

To do that effectively, I'll need to improve the vbsl intrinsics,
so this patch series also does that. But to improve those intrinsics
we should really use the new unsigned neon-types system. So we'll
need to bug-fix that and then add support for poly types.

This patch series does those things in this order:

  [AArch64] [1/4 Fix vtbx1] Allow signed and unsigned versions of
    intrinsics to coexist.

  [AArch64] [2/4 Fix vtbx1] Handle poly types in the new Simd types
    infrastructure

  [AArch64] [3/4 Fix vtbx1]Implement bsl intrinsics using builtins

  [AArch64] [4/4 Fix vtbx1] Handle vtbx{1,3} emulation sequence using
    other intrinsics

Regression tested on aarch64-none-elf with no issues.

OK?

Thanks,
James

Reply via email to