2012-06-13 2 views
0

네온이 오버 플로우를 처리하는 방법을 궁금해합니다. 예 :NEON에서 오버플로를 처리하는 방법은 무엇입니까?

uint8x8_t vadd_u8 (uint8x8_t, uint8x8_t) 

내가 이해 한 것처럼, 이것은 2 개의 벡터를 추가 한 것입니다 (각각 8 비트의 부호없는 바이트가 있음). 두 벡터의 모든 값이 255라고 가정하십시오.

이 경우 어떤 결과가 예상됩니까? 8 요소 벡터 (510, ... 510) 또는 다른 것?

답변

4

소자 => 255 + 255 = 5백10퍼센트 256 = (254)의 주위에 감싸 이는 510

vadd_u8을 포함 할 수없는 경우에만 0에서 255까지의 값을 가질 수 8 비트

vqadd_u8가이 포화 => 255 + 255 = min (510, 255) = 255.

+0

감사 Mārtiņš Možeiko. – nanasi

+0

네온 내장 함수를 사용하여 2 uint8x8 벡터를 추가하려면 어떻게해야합니까? AFAIK, uint16x8 결과를주는 2 개의 uint8x8 벡터를 추가 할 수있는 방법은 없습니다. 참고 : http://gcc.gnu.org/onlinedocs/gcc/ARM-NEON-Intrinsics.html – nanasi

+3

'vaddl_u8'은 두 개의'uint8x8'을 추가하고'uint16x8'을 반환합니다. – Leo

관련 문제