我正在使用Neon Instrinics与clang。
我想在所有通道上测试两个$(document).ready(function() {
$("#contact-form").on("submit", function(e) {
e.preventDefault();
var sendData = $(this).serialize();
$.ajax({
type: "POST",
url: "orderform.php",
data: sendData + "&select_param1=" + $("#qty option:selected").text() +
"&select_param2=" + $("#qty1 option:selected").text(),
success: function(data) {
$(".response_msg").text(data);
$(".response_msg").slideDown();
}
});
});
});
SIMD值是否相等。
所以不是4个测试结果,而是一个结果告诉我A和B是否对所有车道都相同。
在英特尔AVX上,我会使用类似的东西:
uint32x4_t
对NEON SIMD执行全通道相等测试的好方法是什么?
我假设我需要跨越车道运行的内在函数。 ARM Neon有这些功能吗?
答案 0 :(得分:3)
试试这个:
uint16x4_t t = vqmovn_u32(veorq_u32(a, b));
vget_lane_u64(vreinterpret_u64_u16(t), 0) == 0
我希望编译器在实现该测试时能够找到特定于目标的优化。
我刚刚意识到了一些方便的东西......
如果您想测试所有通道是否小于2的幂,您可以将vqmovn_u32()
替换为vqshrn_n_u32()
来执行此操作;对于使用vqrshrn_n_s32()
的签名类型,我相信这可以扩展到+/- 2的幂(包括下限,不包括上限)。例如,您应该能够使用vqrshrn_n_s32(x, 1)
在单个测试中接受-1和0。
答案 1 :(得分:1)