https://llvm.org/bugs/show_bug.cgi?id=23324

            Bug ID: 23324
           Summary: Second argument to signed Neon vtbl functions should
                    be unsigned
           Product: clang
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: Headers
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected]
    Classification: Unclassified

The ARM C Language Extensions document (ACLE) specifies that the second (index)
parameter to the vtbl and vtbx family of functions should be unsigned, even
when the other parameters are signed:

Aarch32:
T vtblN_ST(TxN a, UT b);
T vtbxN_ST(T a, TxN b, UT c);

Aarch64:
T vqtblNQ_ST (T2xN t, UT idx);
T vqtbxNQ_ST (T a, T2xN t, UT idx);

E.g., 
int8x8_t vqtbl1_s8 (int8x16_t a, uint8x8_t b)

Clang declares them to be signed, instead.

GCC has had these correct for Aarch64 since GCC 4.9, though for ARM (Aarch32)
it still has the second value signed.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to