# f32
--reset
--beta=0,1
--attr-post-ops=,sum:2+add:f32,relu+add:f32:per_oc
--bs=1,16
--dt=f32
--bia_dt=undef,f32
--attr-fpmath=,bf16
--ld=,:96:96
--batch=shapes_2d_no_tail_f32

# f16
--reset
--beta=0,1
--attr-post-ops=,sum:2+add:f16,relu+add:f16:per_oc
--bs=1,16
--dt=f16,f16:f32:f32,f32:f16:f32
--bia_dt=undef,f32,f16
--batch=shapes_2d_no_tail_f32 # f16 uses f32 blocking for avx512_core_fp16

# bf16
--reset
--beta=0,1
--attr-post-ops=,sum:2+add:bf16,relu+add:bf16:per_oc
--bs=1,16
--dt=bf16,bf16:bf16:f32
--bia_dt=undef,f32,bf16
--brgemm-attr=,use_uker:1
--batch=shapes_2d_no_tail_bf16

# f8
--reset
--beta=0,1
--attr-post-ops=,sum:2+add:f8_e5m2,relu+add:f8_e4m3:per_oc
--bs=1,16
--dt=f8_e5m2,f8_e5m2:f8_e5m2:f32
--bia_dt=undef,f32,f8_e5m2
--batch=shapes_2d_no_tail_int8

# int8
--reset
--bs=1,16
--dt=u8:s8:f32,s8:s8:bf16,u8:s8:u8,s8:s8:s8
--brgemm-attr=,use_uker:1

## int8:bias
--beta=0
--bia_dt=f32,bf16,f16,s8
--batch=shapes_2d_no_tail_int8
--bia_dt=undef

## int8:beta
--beta=0,1
--batch=shapes_2d_no_tail_int8
--beta=0

## int8:attributes
--attr-post-ops=,sum:2+add:f32,relu+add:f32:per_oc
--attr-scales=,src:common:0.5,wei:per_oc,src:common:0.5+wei:per_oc
--attr-zero-points=,src:common:-2,src:common:128+dst:common:-1
--batch=shapes_2d_no_tail_int8

# f8
--reset
--beta=0,1
--bs=1,16
--dt=f8_e4m3:f8_e5m2:f8_e4m3,f8_e5m2:f8_e4m3:f8_e5m2
--brgemm-attr=use_uker:1+use_interleave_stores:1,use_uker:0+use_interleave_stores:1
--batch=shapes_2d_no_tail_int8
