Skip to contents

The table below shows all 101 primitives and which rules they implement. Note that a rule might be missing because it was just not added yet, or because it does not apply for a specific primitive.

Name StableHLO Reverse Quickr
abs ✓ ✓ ✓
acos ✓ ✓ ✗
acosh ✓ ✓ ✗
add ✓ ✓ ✓
all ✓ ✓ ✓
and ✓ ✓ ✓
any ✓ ✓ ✓
asin ✓ ✓ ✗
asinh ✓ ✓ ✗
atan ✓ ✓ ✗
atan2 ✓ ✓ ✗
atanh ✓ ✓ ✗
bitcast_convert ✓ ✓ ✗
broadcast_in_axes ✓ ✓ ✓
cbrt ✓ ✓ ✗
ceiling ✓ ✓ ✓
chol ✓ ✓ ✗
clamp ✓ ✓ ✗
concatenate ✓ ✓ ✓
convert ✓ ✓ ✓
convolution ✓ ✗ ✗
cos ✓ ✓ ✓
cosh ✓ ✓ ✗
cummax ✓ ✓ ✗
cummin ✓ ✓ ✗
cumprod ✓ ✗ ✗
cumsum ✓ ✓ ✗
digamma ✓ ✓ ✗
div ✓ ✓ ✓
dot_general ✓ ✓ ✓
dynamic_slice ✓ ✓ ✓
dynamic_update_slice ✓ ✓ ✓
eigh ✓ ✗ ✗
eq ✓ ✓ ✓
erf ✓ ✓ ✗
erf_inv ✓ ✓ ✗
erfc ✓ ✓ ✗
exp ✓ ✓ ✓
expm1 ✓ ✓ ✓
fill ✓ ✗ ✓
floor ✓ ✓ ✓
gather ✓ ✓ ✓
ge ✓ ✓ ✓
gt ✓ ✓ ✓
if ✓ ✓ ✓
ifelse ✓ ✓ ✓
iota ✓ ✗ ✓
is_finite ✓ ✓ ✗
le ✓ ✓ ✓
lgamma ✓ ✓ ✗
log ✓ ✓ ✓
log1p ✓ ✓ ✓
lt ✓ ✓ ✓
lu ✓ ✗ ✗
max ✓ ✓ ✓
min ✓ ✓ ✓
mul ✓ ✓ ✓
ne ✓ ✓ ✓
negate ✓ ✓ ✓
not ✓ ✓ ✓
or ✓ ✓ ✓
pad ✓ ✓ ✓
plogis ✓ ✓ ✓
pmax ✓ ✓ ✓
pmin ✓ ✓ ✓
popcnt ✓ ✓ ✗
pow ✓ ✓ ✓
print ✓ ✓ ✗
prod ✓ ✓ ✓
psigamma ✓ ✓ ✗
qr ✓ ✗ ✗
reduce ✓ ✗ ✗
remainder ✓ ✓ ✗
reshape ✓ ✓ ✓
rev ✓ ✓ ✓
rng_bit_generator ✓ ✗ ✗
round ✓ ✓ ✗
rsqrt ✓ ✓ ✗
scan ✓ ✗ ✗
scatter ✓ ✓ ✓
shift_left ✓ ✓ ✗
shift_right_arithmetic ✓ ✓ ✗
shift_right_logical ✓ ✓ ✗
sign ✓ ✓ ✗
sin ✓ ✓ ✓
sinh ✓ ✓ ✗
sort ✓ ✓ ✗
sqrt ✓ ✓ ✓
static_slice ✓ ✓ ✓
sub ✓ ✓ ✓
sum ✓ ✓ ✓
svd ✓ ✗ ✗
tan ✓ ✓ ✓
tanh ✓ ✓ ✓
top_k ✓ ✓ ✗
transpose ✓ ✓ ✓
triangular_solve ✓ ✓ ✗
which_max ✓ ✓ ✗
which_min ✓ ✓ ✗
while ✓ ✗ ✓
xor ✓ ✓ ✓