================ @@ -860,3 +860,41 @@ static_assert(__builtin_elementwise_sub_sat(0U, 1U) == 0U); static_assert(__builtin_bit_cast(unsigned, __builtin_elementwise_sub_sat((vector4char){5, 4, 3, 2}, (vector4char){1, 1, 1, 1})) == (LITTLE_END ? 0x01020304 : 0x04030201)); static_assert(__builtin_bit_cast(unsigned, __builtin_elementwise_sub_sat((vector4uchar){5, 4, 3, 2}, (vector4uchar){1, 1, 1, 1})) == (LITTLE_END ? 0x01020304U : 0x04030201U)); static_assert(__builtin_bit_cast(unsigned long long, __builtin_elementwise_sub_sat((vector4short){(short)0x8000, (short)0x8001, (short)0x8002, (short)0x8003}, (vector4short){7, 8, 9, 10}) == (LITTLE_END ? 0x8000800080008000 : 0x8000800080008000))); + +static_assert(__builtin_elementwise_ctlz(2) == 30); +static_assert(__builtin_elementwise_ctlz(2, 8) == 30); +static_assert(__builtin_elementwise_ctlz(0, 8) == 8); +static_assert(__builtin_elementwise_ctlz((char)2) == 6); +static_assert(__builtin_elementwise_ctlz((short)2) == 14); +static_assert(__builtin_elementwise_ctlz((char)1) == 0x7); +static_assert(__builtin_elementwise_ctlz((char)4) == 0x5); +static_assert(__builtin_elementwise_ctlz((char)127) == 0x1); +static_assert(__builtin_elementwise_ctlz((char)128) == 0x0); +static_assert(__builtin_bit_cast(unsigned, __builtin_elementwise_ctlz((vector4char){1, 4, 127, (char)128})) == (LITTLE_END ? 0x00010507 : 0x07050100)); + +constexpr int clz0 = __builtin_elementwise_ctlz(0); ---------------- frasercrmck wrote:
Good idea, I've added those tests now. https://github.com/llvm/llvm-project/pull/131995 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits