Skip to content

Overview: ndarray operator method overhaul #491

@jorenham

Description

@jorenham

promotion tables

add
b1 i1 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 c8 c16 c32 O m8 M8 S T U V
b1 b1 i1 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 c8 c16 c32 O m8 M8
i1 i1 i1 i2 i4 i8 i2 i4 i8 f8 f2 f4 f8 f16 c8 c16 c32 O m8 M8
i2 i2 i2 i2 i4 i8 i2 i4 i8 f8 f4 f4 f8 f16 c8 c16 c32 O m8 M8
i4 i4 i4 i4 i4 i8 i4 i4 i8 f8 f8 f8 f8 f16 c16 c16 c32 O m8 M8
i8 i8 i8 i8 i8 i8 i8 i8 i8 f8 f8 f8 f8 f16 c16 c16 c32 O m8 M8
u1 u1 i2 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 c8 c16 c32 O m8 M8
u2 u2 i4 i4 i4 i8 u2 u2 u4 u8 f4 f4 f8 f16 c8 c16 c32 O m8 M8
u4 u4 i8 i8 i8 i8 u4 u4 u4 u8 f8 f8 f8 f16 c16 c16 c32 O m8 M8
u8 u8 f8 f8 f8 f8 u8 u8 u8 u8 f8 f8 f8 f16 c16 c16 c32 O m8 M8
f2 f2 f2 f4 f8 f8 f2 f4 f8 f8 f2 f4 f8 f16 c8 c16 c32 O
f4 f4 f4 f4 f8 f8 f4 f4 f8 f8 f4 f4 f8 f16 c8 c16 c32 O
f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f16 c16 c16 c32 O
f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 c32 c32 c32 O
c8 c8 c8 c8 c16 c16 c8 c8 c16 c16 c8 c8 c16 c32 c8 c16 c32 O
c16 c16 c16 c16 c16 c16 c16 c16 c16 c16 c16 c16 c16 c32 c16 c16 c32 O
c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 O
O O O O O O O O O O O O O O O O O O O O O
m8 m8 m8 m8 m8 m8 m8 m8 m8 m8 m8 M8
M8 M8 M8 M8 M8 M8 M8 M8 M8 M8 M8
S O S
T T T
U O T U
V O
sub
b1 i1 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 c8 c16 c32 O m8 M8
b1 i1 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 c8 c16 c32 O m8
i1 i1 i1 i2 i4 i8 i2 i4 i8 f8 f2 f4 f8 f16 c8 c16 c32 O m8
i2 i2 i2 i2 i4 i8 i2 i4 i8 f8 f4 f4 f8 f16 c8 c16 c32 O m8
i4 i4 i4 i4 i4 i8 i4 i4 i8 f8 f8 f8 f8 f16 c16 c16 c32 O m8
i8 i8 i8 i8 i8 i8 i8 i8 i8 f8 f8 f8 f8 f16 c16 c16 c32 O m8
u1 u1 i2 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 c8 c16 c32 O m8
u2 u2 i4 i4 i4 i8 u2 u2 u4 u8 f4 f4 f8 f16 c8 c16 c32 O m8
u4 u4 i8 i8 i8 i8 u4 u4 u4 u8 f8 f8 f8 f16 c16 c16 c32 O m8
u8 u8 f8 f8 f8 f8 u8 u8 u8 u8 f8 f8 f8 f16 c16 c16 c32 O m8
f2 f2 f2 f4 f8 f8 f2 f4 f8 f8 f2 f4 f8 f16 c8 c16 c32 O
f4 f4 f4 f4 f8 f8 f4 f4 f8 f8 f4 f4 f8 f16 c8 c16 c32 O
f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f16 c16 c16 c32 O
f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 c32 c32 c32 O
c8 c8 c8 c8 c16 c16 c8 c8 c16 c16 c8 c8 c16 c32 c8 c16 c32 O
c16 c16 c16 c16 c16 c16 c16 c16 c16 c16 c16 c16 c16 c32 c16 c16 c32 O
c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 O
O O O O O O O O O O O O O O O O O O
m8 m8 m8 m8 m8 m8 m8 m8 m8 m8 m8
M8 M8 M8 M8 M8 M8 M8 M8 M8 M8 M8 m8
mul
b1 i1 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 c8 c16 c32 O m8 T
b1 b1 i1 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 c8 c16 c32 O m8
i1 i1 i1 i2 i4 i8 i2 i4 i8 f8 f2 f4 f8 f16 c8 c16 c32 O m8 T
i2 i2 i2 i2 i4 i8 i2 i4 i8 f8 f4 f4 f8 f16 c8 c16 c32 O m8 T
i4 i4 i4 i4 i4 i8 i4 i4 i8 f8 f8 f8 f8 f16 c16 c16 c32 O m8 T
i8 i8 i8 i8 i8 i8 i8 i8 i8 f8 f8 f8 f8 f16 c16 c16 c32 O m8 T
u1 u1 i2 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 c8 c16 c32 O m8 T
u2 u2 i4 i4 i4 i8 u2 u2 u4 u8 f4 f4 f8 f16 c8 c16 c32 O m8 T
u4 u4 i8 i8 i8 i8 u4 u4 u4 u8 f8 f8 f8 f16 c16 c16 c32 O m8 T
u8 u8 f8 f8 f8 f8 u8 u8 u8 u8 f8 f8 f8 f16 c16 c16 c32 O m8 T
f2 f2 f2 f4 f8 f8 f2 f4 f8 f8 f2 f4 f8 f16 c8 c16 c32 O m8
f4 f4 f4 f4 f8 f8 f4 f4 f8 f8 f4 f4 f8 f16 c8 c16 c32 O m8
f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f16 c16 c16 c32 O m8
f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 c32 c32 c32 O m8
c8 c8 c8 c8 c16 c16 c8 c8 c16 c16 c8 c8 c16 c32 c8 c16 c32 O
c16 c16 c16 c16 c16 c16 c16 c16 c16 c16 c16 c16 c16 c32 c16 c16 c32 O
c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 O
O O O O O O O O O O O O O O O O O O
m8 m8 m8 m8 m8 m8 m8 m8 m8 m8 m8 m8 m8 m8
T T T T T T T T T
matmul
b1 i1 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 c8 c16 c32 O m8
b1 b1 i1 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 c8 c16 c32 O
i1 i1 i1 i2 i4 i8 i2 i4 i8 f8 f2 f4 f8 f16 c8 c16 c32 O
i2 i2 i2 i2 i4 i8 i2 i4 i8 f8 f4 f4 f8 f16 c8 c16 c32 O
i4 i4 i4 i4 i4 i8 i4 i4 i8 f8 f8 f8 f8 f16 c16 c16 c32 O
i8 i8 i8 i8 i8 i8 i8 i8 i8 f8 f8 f8 f8 f16 c16 c16 c32 O
u1 u1 i2 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 c8 c16 c32 O
u2 u2 i4 i4 i4 i8 u2 u2 u4 u8 f4 f4 f8 f16 c8 c16 c32 O
u4 u4 i8 i8 i8 i8 u4 u4 u4 u8 f8 f8 f8 f16 c16 c16 c32 O
u8 u8 f8 f8 f8 f8 u8 u8 u8 u8 f8 f8 f8 f16 c16 c16 c32 O
f2 f2 f2 f4 f8 f8 f2 f4 f8 f8 f2 f4 f8 f16 c8 c16 c32 O
f4 f4 f4 f4 f8 f8 f4 f4 f8 f8 f4 f4 f8 f16 c8 c16 c32 O
f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f16 c16 c16 c32 O
f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 c32 c32 c32 O
c8 c8 c8 c8 c16 c16 c8 c8 c16 c16 c8 c8 c16 c32 c8 c16 c32 O
c16 c16 c16 c16 c16 c16 c16 c16 c16 c16 c16 c16 c16 c32 c16 c16 c32 O
c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 O
O O O O O O O O O O O O O O O O O O O
m8 O
pow
b1 i1 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 c8 c16 c32 O m8
b1 i1 i1 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 c8 c16 c32 O
i1 i1 i1 i2 i4 i8 i2 i4 i8 f8 f2 f4 f8 f16 c8 c16 c32 O
i2 i2 i2 i2 i4 i8 i2 i4 i8 f8 f4 f4 f8 f16 c8 c16 c32 O
i4 i4 i4 i4 i4 i8 i4 i4 i8 f8 f8 f8 f8 f16 c16 c16 c32 O
i8 i8 i8 i8 i8 i8 i8 i8 i8 f8 f8 f8 f8 f16 c16 c16 c32 O
u1 u1 i2 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 c8 c16 c32 O
u2 u2 i4 i4 i4 i8 u2 u2 u4 u8 f4 f4 f8 f16 c8 c16 c32 O
u4 u4 i8 i8 i8 i8 u4 u4 u4 u8 f8 f8 f8 f16 c16 c16 c32 O
u8 u8 f8 f8 f8 f8 u8 u8 u8 u8 f8 f8 f8 f16 c16 c16 c32 O
f2 f2 f2 f4 f8 f8 f2 f4 f8 f8 f2 f4 f8 f16 c8 c16 c32 O
f4 f4 f4 f4 f8 f8 f4 f4 f8 f8 f4 f4 f8 f16 c8 c16 c32 O
f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f16 c16 c16 c32 O
f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 c32 c32 c32 O
c8 c8 c8 c8 c16 c16 c8 c8 c16 c16 c8 c8 c16 c32 c8 c16 c32 O
c16 c16 c16 c16 c16 c16 c16 c16 c16 c16 c16 c16 c16 c32 c16 c16 c32 O
c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 O
O O O O O O O O O O O O O O O O O O O
m8 O
truediv
b1 i1 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 c8 c16 c32 O m8
b1 f8 f8 f8 f8 f8 f8 f8 f8 f8 f2 f4 f8 f16 c8 c16 c32 O
i1 f8 f8 f8 f8 f8 f8 f8 f8 f8 f2 f4 f8 f16 c8 c16 c32 O
i2 f8 f8 f8 f8 f8 f8 f8 f8 f8 f4 f4 f8 f16 c8 c16 c32 O
i4 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f16 c16 c16 c32 O
i8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f16 c16 c16 c32 O
u1 f8 f8 f8 f8 f8 f8 f8 f8 f8 f2 f4 f8 f16 c8 c16 c32 O
u2 f8 f8 f8 f8 f8 f8 f8 f8 f8 f4 f4 f8 f16 c8 c16 c32 O
u4 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f16 c16 c16 c32 O
u8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f16 c16 c16 c32 O
f2 f2 f2 f4 f8 f8 f2 f4 f8 f8 f2 f4 f8 f16 c8 c16 c32 O
f4 f4 f4 f4 f8 f8 f4 f4 f8 f8 f4 f4 f8 f16 c8 c16 c32 O
f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f16 c16 c16 c32 O
f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 c32 c32 c32 O
c8 c8 c8 c8 c16 c16 c8 c8 c16 c16 c8 c8 c16 c32 c8 c16 c32 O
c16 c16 c16 c16 c16 c16 c16 c16 c16 c16 c16 c16 c16 c32 c16 c16 c32 O
c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 c32 O
O O O O O O O O O O O O O O O O O O
m8 m8 m8 m8 m8 m8 m8 m8 m8 m8 m8 m8 m8 f8
floordiv
b1 i1 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 O m8
b1 i1 i1 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 O
i1 i1 i1 i2 i4 i8 i2 i4 i8 f8 f2 f4 f8 f16 O
i2 i2 i2 i2 i4 i8 i2 i4 i8 f8 f4 f4 f8 f16 O
i4 i4 i4 i4 i4 i8 i4 i4 i8 f8 f8 f8 f8 f16 O
i8 i8 i8 i8 i8 i8 i8 i8 i8 f8 f8 f8 f8 f16 O
u1 u1 i2 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 O
u2 u2 i4 i4 i4 i8 u2 u2 u4 u8 f4 f4 f8 f16 O
u4 u4 i8 i8 i8 i8 u4 u4 u4 u8 f8 f8 f8 f16 O
u8 u8 f8 f8 f8 f8 u8 u8 u8 u8 f8 f8 f8 f16 O
f2 f2 f2 f4 f8 f8 f2 f4 f8 f8 f2 f4 f8 f16 O
f4 f4 f4 f4 f8 f8 f4 f4 f8 f8 f4 f4 f8 f16 O
f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f16 O
f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 O
O O O O O O O O O O O O O O O
m8 m8 m8 m8 m8 m8 m8 m8 m8 m8 m8 m8 m8 i8
mod
b1 i1 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 O m8
b1 i1 i1 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 O
i1 i1 i1 i2 i4 i8 i2 i4 i8 f8 f2 f4 f8 f16 O
i2 i2 i2 i2 i4 i8 i2 i4 i8 f8 f4 f4 f8 f16 O
i4 i4 i4 i4 i4 i8 i4 i4 i8 f8 f8 f8 f8 f16 O
i8 i8 i8 i8 i8 i8 i8 i8 i8 f8 f8 f8 f8 f16 O
u1 u1 i2 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 O
u2 u2 i4 i4 i4 i8 u2 u2 u4 u8 f4 f4 f8 f16 O
u4 u4 i8 i8 i8 i8 u4 u4 u4 u8 f8 f8 f8 f16 O
u8 u8 f8 f8 f8 f8 u8 u8 u8 u8 f8 f8 f8 f16 O
f2 f2 f2 f4 f8 f8 f2 f4 f8 f8 f2 f4 f8 f16 O
f4 f4 f4 f4 f8 f8 f4 f4 f8 f8 f4 f4 f8 f16 O
f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f16 O
f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 f16 O
O O O O O O O O O O O O O O O
m8 m8
lshift, rshift
b1 i1 i2 i4 i8 u1 u2 u4 u8 O m8
b1 i1 i1 i2 i4 i8 u1 u2 u4 u8 O
i1 i1 i1 i2 i4 i8 i2 i4 i8 O
i2 i2 i2 i2 i4 i8 i2 i4 i8 O
i4 i4 i4 i4 i4 i8 i4 i4 i8 O
i8 i8 i8 i8 i8 i8 i8 i8 i8 O
u1 u1 i2 i2 i4 i8 u1 u2 u4 u8 O
u2 u2 i4 i4 i4 i8 u2 u2 u4 u8 O
u4 u4 i8 i8 i8 i8 u4 u4 u4 u8 O
u8 u8 u8 u8 u8 u8 O
O O O O O O O O O O O O
m8 O
and, xor, or
b1 i1 i2 i4 i8 u1 u2 u4 u8 O m8
b1 b1 i1 i2 i4 i8 u1 u2 u4 u8 O
i1 i1 i1 i2 i4 i8 i2 i4 i8 O
i2 i2 i2 i2 i4 i8 i2 i4 i8 O
i4 i4 i4 i4 i4 i8 i4 i4 i8 O
i8 i8 i8 i8 i8 i8 i8 i8 i8 O
u1 u1 i2 i2 i4 i8 u1 u2 u4 u8 O
u2 u2 i4 i4 i4 i8 u2 u2 u4 u8 O
u4 u4 i8 i8 i8 i8 u4 u4 u4 u8 O
u8 u8 u8 u8 u8 u8 O
O O O O O O O O O O O O
m8 O

non-trivial promotion sub-tables

add, mul, matmul
i1 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 c8 c16
i1 i2 i4 i8 f8
i2 i4 i8 f8 f4
i4 i8 f8 f8 f8 c16
i8 f8 f8 f8 c16
u1 i2
u2 i4 i4 f4
u4 i8 i8 i8 f8 f8 c16
u8 f8 f8 f8 f8 f8 f8 c16
f2 f4 f8 f8 f4 f8 f8
f4 f8 f8 f8 f8
f8 c16
f16 c32 c32
c8 c16 c16 c16 c16 c16 c32
c16 c32
sub
i1 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 c8 c16 M8
i1 i2 i4 i8 f8
i2 i4 i8 f8 f4
i4 i8 f8 f8 f8 c16
i8 f8 f8 f8 c16
u1 i2
u2 i4 i4 f4
u4 i8 i8 i8 f8 f8 c16
u8 f8 f8 f8 f8 f8 f8 c16
f2 f4 f8 f8 f4 f8 f8
f4 f8 f8 f8 f8
f8 c16
f16 c32 c32
c8 c16 c16 c16 c16 c16 c32
c16 c32
M8 m8
pow
lhs b1 i1 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 c8 c16
b1 i1
i1 i2 i4 i8 f8
i2 i4 i8 f8 f4
i4 i8 f8 f8 f8 c16
i8 f8 f8 f8 c16
u1 i2
u2 i4 i4 f4
u4 i8 i8 i8 f8 f8 c16
u8 f8 f8 f8 f8 f8 f8 c16
f2 f4 f8 f8 f4 f8 f8
f4 f8 f8 f8 f8
f8 c16
f16 c32 c32
c8 c16 c16 c16 c16 c16 c32
c16 c32
truediv
lhs b1 i1 i2 i4 i8 u1 u2 u4 u8 f2 f4 f8 f16 c8 c16 m8
b1 f8 f8 f8 f8 f8 f8 f8 f8 f8
i1 f8 f8 f8 f8 f8 f8 f8 f8 f8
i2 f8 f8 f8 f8 f8 f8 f8 f8 f8 f4
i4 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 c16
i8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 c16
u1 f8 f8 f8 f8 f8 f8 f8 f8 f8
u2 f8 f8 f8 f8 f8 f8 f8 f8 f8 f4
u4 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 c16
u8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 c16
f2 f4 f8 f8 f4 f8 f8
f4 f8 f8 f8 f8
f8 c16
f16 c32 c32
c8 c16 c16 c16 c16 c16 c32
c16 c32
m8 f8
floordiv
lhs b1 i1 i2 i4 i8 u1 u2 u4 u8 f2 f4 m8
b1 i1
i1 i2 i4 i8 f8
i2 i4 i8 f8 f4
i4 i8 f8 f8 f8
i8 f8 f8 f8
u1 i2
u2 i4 i4 f4
u4 i8 i8 i8 f8 f8
u8 f8 f8 f8 f8 f8 f8
f2 f4 f8 f8 f4 f8 f8
f4 f8 f8 f8 f8
m8 i8
mod
lhs b1 i1 i2 i4 i8 u1 u2 u4 u8 f2 f4
b1 i1
i1 i2 i4 i8 f8
i2 i4 i8 f8 f4
i4 i8 f8 f8 f8
i8 f8 f8 f8
u1 i2
u2 i4 i4 f4
u4 i8 i8 i8 f8 f8
u8 f8 f8 f8 f8 f8 f8
f2 f4 f8 f8 f4 f8 f8
f4 f8 f8 f8 f8
lshift, rshift
lhs b1 i1 i2 i4 u1 u2 u4
b1 i1
i1 i2 i4 i8
i2 i4 i8
i4 i8
u1 i2
u2 i4 i4
u4 i8 i8 i8
and, xor, or
lhs i1 i2 i4 u1 u2 u4
i1 i2 i4 i8
i2 i4 i8
i4 i8
u1 i2
u2 i4 i4
u4 i8 i8 i8

Sub-issues

Metadata

Metadata

Assignees

Type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions