For each component of a vector type, result[i
] = if MSB of c
[i
] is set ? b
[i
] : a
[i
]. For scalar type, result = c
? b
: a
.
gentype
select
(
| gentype a, |
gentype b, | |
igentype c) |
gentype
select
(
| gentype a, |
gentype b, | |
ugentype c) |
For each component of a vector type, result[i
] = if MSB of c
[i
] is set ? b
[i
] : a
[i
].
For scalar type, result = c
? b
: a
.
The relational and equality operators (<, <=, >, >=, !=, ==) can be used with scalar and vector built-in types and produce a scalar or vector signed integer result respectively.
The built-in relational functions can be used with built-in scalar or vector types as
arguments and return a scalar or vector integer result. If an implementation extends this
specification to support IEEE-754 flags or exceptions, then all built-in Relational
shall proceed without raising the invalid
floating-point exception when one or more of the
operands are NaNs.
The built-in relational functions are extended with
cl_khr_fp64
to include appropriate versions of functions that take double, and
double{2|3|4|8|16} as arguments and return values. They are also extended with
cl_khr_fp16 to include appropriate versions
of functions that take half, and half{2|3|4|8|16} as arguments and return values.
The relational and equality operators (<, <=, >, >=, !=, ==) can be used
with doublen
vector types and shall produce a vector
longn
result.
The argment type gentype can be char,
charn
,uchar, ucharn
,
short, shortn
, ushort,
ushortn
, int, intn
,
uint, uintn
, long,
longn
, ulong, ulongn
,
float, and floatn
.
The argument type igentype refers to signed integer types, i.e. char,
charn
, short, shortn
,
int, intn
, long, and
longn
.
The argument type ugentype refers to unsigned integer types, i.e. uchar,
ucharn
, ushort, ushortn
,
uint, uintn
, ulong, and
ulongn
. n
is 2, 3, 4, 8, or 16.