--reset

--dt=f64,f32,f16,bf16:bf16:f32,u8:s8:s8
--stag=ab,ba --wtag=ab,ba --dtag=ab
--runtime_dims_masks=0,2:1,0:2,2:3,1:0,3:1,1:2,3:3
--bia_dt=undef,f32
--bia_mask=1,2,3
10x30:30x20

--attr-scales=src:common:0.25+wei:common:0.5+dst:common:2
--attr-post-ops=sum+add:f32+add:u8:per_dim_01+linear:0.5:1.5:2.0+mul:f32:per_dim_0+add:s8:per_oc+add:f32:per_tensor
10x30:30x20

--attr-scales=src:common:0.25+wei:per_oc+dst:common:2
--attr-post-ops=relu+add:f32+add:u8:per_tensor+linear:0.5:1.5:2.0+mul:f32:per_dim_0+add:s8:per_oc+add:f32:per_dim_01
10x30:30x20

--attr-scales=
--attr-post-ops=sum:2+add:f32+add:u8:per_tensor+mul:f32:per_dim_0+add:s8:per_oc+add:f32:per_dim_01+linear:3:-1
10x30:30x1

--attr-post-ops=add:f32+add:u8:per_dim_01+mul:f32:per_dim_0+add:s8:per_oc+add:f32:per_tensor+linear:3:-1:2
10x30:30x1

# test any
--reset
--dt=f64,f32,f16,f16:f16:s8,f16:f16:u8,bf16,s8:s8:f32,s8:s8:f16
--bia_dt=undef
--stag=ab,ba,any --wtag=ab,ba,any --dtag=ab,any
1x30:30x20

# test x8x8x8
--reset
--dt=u8:s8:s32,u8:s8:f32,s8:s8:s8,u8:s8:f16
--runtime_dims_masks=0:2,1:2
--bia_dt=undef,f32,u8
--stag=ab,ba --wtag=ab --dtag=ab
--attr-scales=src:common:0.25+wei:common:0.5+dst:common:2
--attr-zero-points=src:common:1+wei:common:-1+dst:common:2
--attr-post-ops=sum+relu+add:f32+add:u8:per_tensor+linear:0.5:1.5:2.0+mul:f32:per_dim_0+add:s8:per_oc+add:f32:per_dim_01
100x10:10x10

--dt=s8:s8:s8,s8:s8:s32,s8:s8:u8
--runtime_dims_masks=2:1,2:3
--bia_dt=undef,u8
--stag=ba --wtag=ab,ba --dtag=ab
--attr-scales=src:common:0.25+wei:common:0.5+dst:common:2
--attr-zero-points=src:common:1+wei:common:-2+dst:common:3
--attr-post-ops=sum+relu+add:f32+add:u8:per_dim_01+linear:0.5:1.5:2.0+mul:f32:per_dim_0+add:s8:per_oc+add:f32:per_tensor
10x100:100x10

# 3d
--reset
--dt=f64,f32,f16,f16:f16:s8,f16:f16:u8,bf16,bf16:bf16:f32
--stag=abc,acb --wtag=abc,acb --dtag=abc
--runtime_dims_masks=0,4:2,0:4,4:6,2:0,6:2,2:4,6:6,1:1,5:3,1:5,5:7,3:1,7:3,3:5,7:7
--bia_dt=undef,f32
--bia_mask=4,6
--attr-scales=src:common:0.25+wei:common:0.5+dst:common:2
--attr-post-ops=sum+add:f32+add:u8:per_dim_01+mul:f32:per_dim_0+add:s8:per_tensor+add:f32:per_dim_01+linear:2:-1
3x30x1:3x1x20

# test regressions
--batch=harness_matmul_regression_f32

--reset
--dt=f64,f32
--stag=ab --wtag=ab --dtag=ab
96x8:8x512

--reset
--dt=bf16
--stag=ab --wtag=ab --dtag=ab
--bia_dt=bf16
2x4:4x3

--reset
--dt=u8:s8:f32 --bia_dt=f32  --stag=any --wtag=any --dtag=any
--attr-post-ops=eltwise_gelu_tanh:0:0:21.5742
--attr-scales=src:common:0.25+wei:per_oc+dst:common:2  --attr-scratchpad=user
24576x1024:1024x4096

# runtime_zero_point_wrong_values
--reset
--dt=u8:s8:f32 
--attr-zero-points=wei:common:2+src:common:1 
1x2x4:1x4x12

# test all features at once: 6D tensors with two-way broadcast, bias, postops, scale
--reset
--dt=bf16
--stag=abx --wtag=abx --dtag=abx
--bia_dt=f32 --bia_mask=4
--attr-scales=src:common:0.25+wei:common:0.5+dst:common:2
--attr-post-ops=sum+add:f32+add:u8:per_dim_01+mul:f32:per_dim_0+add:s8:per_tensor+add:f32:per_dim_01+linear:2:-1
1x5x4x3x30x2:6x1x4x3x2x20

### int8 wei decomp
--reset
--stag=ab,ba
--dt=bf16:s8:bf16,bf16:u8:bf16
--attr-scales=wei:common:2,wei:per_oc:bf16
--attr-fpmath=bf16:true
--batch=shapes_2d

--reset
--stag=ab,ba
--dt=f16:s8:f16,f16:u8:f16
--attr-scales=wei:common:2,wei:per_oc,wei:per_ocic:f16
--attr-zero-points=,wei:common:2,wei:per_oc,wei:per_ocic:s8
--attr-fpmath=f16:true
--batch=shapes_2d_ci

--stag=abc,acb
--dt=bf16:s8:bf16,bf16:u8:bf16
--attr-scales=wei:per_ocic:bf16:2x1
--attr-zero-points=,wei:per_ocic:u8:4x1
--attr-fpmath=bf16:true
1x5x12:1x12x17
3x5x12:3x12x17
3x5x12:1x12x17

### int4 wei decomp
--reset
--dt=bf16:s4:bf16,bf16:u4:bf16
--stag=abc,acb
--attr-scales=wei:common:2,wei:per_oc:bf16,wei:per_ocic:bf16:32x1
# There is no support for a common u4/s4 zero point
--attr-zero-points=wei:per_oc:u4,wei:per_ocic:s4,wei:per_ocic:s4:32x1
--attr-fpmath=bf16:true
7x6x32:7x32x64
7x6x32:1x32x64
3x6x96:3x96x64
3x6x96:1x96x64

# Test layers of some key and ext GPU DL Frameworks
--reset
--batch=option_set_fwks_key_gpu
--reset
--batch=option_set_fwks_ext_gpu

# Test tf32 configuration
--reset
--batch=option_set_fwks_key_gpu_tf32
