The table below shows the supported StableHLO ops.
| op | supported | comment |
|---|---|---|
| Nullary ops | ||
| const | ✔️ | |
| Unary elementwise ops | ||
| abs | ✔️ | |
| ceil | ✔️ | |
| convert | ✔️ | |
| cosine | ✔️ | |
| exponential | ✔️ | |
| exponential_minus_one | ✔️ | |
| floor | ✔️ | |
| is_finite | ✔️ | |
| log | ✔️ | |
| log_plus_one | ✔️ | |
| negate | ✔️ | |
| round_nearest_afz | ✔️ | |
| sine | ✔️ | |
| sqrt | ✔️ | |
| tanh | ✔️ | |
| Binary elementwise ops | ||
| add | ✔️ | |
| atan2 | ✔️ | |
| divide | ✔️ | |
| maximum | ✔️ | |
| minimum | ✔️ | |
| multiply | ✔️ | |
| power | ✔️ | |
| shift_left | ✔️ | |
| shift_right_logical | ✔️ | |
| subtract | ✔️ | |
| Binary logical elementwise ops | ||
| or | ✔️ | |
| xor | ✔️ | |
| Tuple ops | ||
| get_tuple_element | ✔️ | |
| tuple | ✔️ | |
| compare | ✔️ | |
| Slice ops | ||
| slice | ✅ | Only for 1D to 4D inputs |
| dynamic_slice | ✅ | Only for 1D or 2D inputs |
| dynamic_update_slice | ✅ | Only for 1D or 2D inputs |
| Other ops | ||
| batch_norm_inference | ✔️ | |
| bitcast_convert | ✔️ | |
| broadcast_in_dim | ✔️ | |
| clamp | ✔️ | |
| concatenate | ✔️ | |
| convolution | ✅ | No support for dilated convolutions, only for NHWC layout. Untested for grouped convolutions except for the depthwise case |
| dot | ✅ | Only the Matrix times Matrix case |
| pad | ✅ | No support for negative edge padding |
| reduce | ✅ | Only for 1 and 2 results |
| reduce_window | ✅ | No support for dilation |
| reshape | ✔️ | |
| select | ✔️ | |
| transpose | ✔️ |