Indices and tables

Todo list

Todo

Add and subtract with signed overflow.

For example, see llvm.sadd.with.overflow.* and llvm.ssub.with.overflow.* in LLVM.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/cretonne/checkouts/latest/docs/langref.rst, line 772.)

Todo

Larger multiplication results.

For example, smulx which multiplies i32 operands to produce a i64 result. Alternatively, smulhi and smullo pairs.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/cretonne/checkouts/latest/docs/langref.rst, line 781.)

Todo

Integer minimum / maximum.

NEON has smin, smax, umin, and umax instructions. We should replicate those for both scalar and vector integer types. Even if the target ISA doesn’t have scalar operations, these are good pattern matching targets.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/cretonne/checkouts/latest/docs/langref.rst, line 795.)

Todo

Saturating arithmetic.

Mostly for SIMD use, but again these are good patterns for contraction. Something like usatadd, usatsub, ssatadd, and ssatsub is a good start.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/cretonne/checkouts/latest/docs/langref.rst, line 802.)

Todo

Saturating fcvt_to_sint and fcvt_to_uint.

For example, these appear in Rust and WebAssembly.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/cretonne/checkouts/latest/docs/langref.rst, line 925.)