vec_cmpnrg_or_0_idx_cc: Vector Compare Not in Ranges or Zero Index with Condition Code

e = vec_cmpnrg_or_0_idx_cc(a, b, c, d)
Returns the lowest byte-index of the element of a that is 0 or not within any of the ranges specified by b and c. Each even-odd element pairs of b define values for the limits of the ranges. The corresponding even-odd pairs of elements in c control how the comparison to be performed, in the following way:
Comparison for vector unsigned char for vector unsigned short for vector unsigned int
ignore - result of comparison always TRUE 0 0 0
equal 0x80 0x8000 0x80000000
not equal 0x60 0x6000 0x60000000
greater than 0x20 0x2000 0x20000000
greater than or equal 0xA0 0xA000 0xA0000000
less than 0x40 0x4000 0x40000000
less than and equal 0xC0 0xC000 0xC0000000
force to FALSE 0xE0 0xE000 0xE0000000
d is set to one of the following:
  • 0 - if 0 was found on an element of a, before an element was not found within the specified range.
  • 1 - if no element of a is 0, and there is at least one element of a found not in any of the ranges.
  • 2 - if 0 was found on an element of a after an element was found not within the specified range.
  • 3 - no element is 0 and found to be not within any of the specified range.

The result is placed into byte element seven of the returned vector, and all other bytes are set to 0.

Table 1. Vector Compare Not in Ranges or Zero Index with Condition Code
e a b c d
vector unsigned char vector unsigned char vector unsigned char vector unsigned char int *
vector unsigned short vector unsigned short vector unsigned short vector unsigned short
vector unsigned int vector unsigned int vector unsigned int vector unsigned int