From 1629a6fbe43edd218f1f025a4b8a08659d11ac04 Mon Sep 17 00:00:00 2001 From: Khyber Sen Date: Mon, 11 Sep 2023 03:23:03 -0700 Subject: [PATCH 1/8] `fn build_nondc_ii_masks`: Make `mask_{v,h,sm}` args slices. --- src/wedge.rs | 70 +++++++++++++++++++++++++--------------------------- 1 file changed, 33 insertions(+), 37 deletions(-) diff --git a/src/wedge.rs b/src/wedge.rs index 30b87da6d..d6bdcb568 100644 --- a/src/wedge.rs +++ b/src/wedge.rs @@ -582,9 +582,9 @@ pub static dav1d_ii_masks: [[[Option<&'static [u8]>; N_INTER_INTRA_PRED_MODES]; #[cold] unsafe fn build_nondc_ii_masks( - mask_v: *mut u8, - mask_h: *mut u8, - mask_sm: *mut u8, + mask_v: &mut [u8], + mask_h: &mut [u8], + mask_sm: &mut [u8], w: usize, h: usize, step: usize, @@ -597,15 +597,11 @@ unsafe fn build_nondc_ii_masks( let mut y = 0; let mut off = 0; while y < h { - memset( - mask_v.offset(off as isize) as *mut libc::c_void, - ii_weights_1d[y * step] as libc::c_int, - w as libc::c_ulong, - ); + mask_v[off..][..w].fill(ii_weights_1d[y * step]); let mut x = 0; while x < w { - *mask_sm.offset((off + x) as isize) = ii_weights_1d[cmp::min(x, y) * step]; - *mask_h.offset((off + x) as isize) = ii_weights_1d[x * step]; + mask_sm[off + x] = ii_weights_1d[cmp::min(x, y) * step]; + mask_h[off + x] = ii_weights_1d[x * step]; x += 1; } y += 1; @@ -619,73 +615,73 @@ pub unsafe fn dav1d_init_interintra_masks() { memset(ii_dc_mask.0.as_mut_ptr() as *mut libc::c_void, 32, 32 * 32); build_nondc_ii_masks( - ii_nondc_mask_32x32.0[II_VERT_PRED as usize - 1].as_mut_ptr(), - ii_nondc_mask_32x32.0[II_HOR_PRED as usize - 1].as_mut_ptr(), - ii_nondc_mask_32x32.0[II_SMOOTH_PRED as usize - 1].as_mut_ptr(), + &mut ii_nondc_mask_32x32.0[II_VERT_PRED as usize - 1], + &mut ii_nondc_mask_32x32.0[II_HOR_PRED as usize - 1], + &mut ii_nondc_mask_32x32.0[II_SMOOTH_PRED as usize - 1], 32, 32, 1, ); build_nondc_ii_masks( - ii_nondc_mask_16x32.0[II_VERT_PRED as usize - 1].as_mut_ptr(), - ii_nondc_mask_16x32.0[II_HOR_PRED as usize - 1].as_mut_ptr(), - ii_nondc_mask_16x32.0[II_SMOOTH_PRED as usize - 1].as_mut_ptr(), + &mut ii_nondc_mask_16x32.0[II_VERT_PRED as usize - 1], + &mut ii_nondc_mask_16x32.0[II_HOR_PRED as usize - 1], + &mut ii_nondc_mask_16x32.0[II_SMOOTH_PRED as usize - 1], 16, 32, 1, ); build_nondc_ii_masks( - ii_nondc_mask_16x16.0[II_VERT_PRED as usize - 1].as_mut_ptr(), - ii_nondc_mask_16x16.0[II_HOR_PRED as usize - 1].as_mut_ptr(), - ii_nondc_mask_16x16.0[II_SMOOTH_PRED as usize - 1].as_mut_ptr(), + &mut ii_nondc_mask_16x16.0[II_VERT_PRED as usize - 1], + &mut ii_nondc_mask_16x16.0[II_HOR_PRED as usize - 1], + &mut ii_nondc_mask_16x16.0[II_SMOOTH_PRED as usize - 1], 16, 16, 2, ); build_nondc_ii_masks( - ii_nondc_mask_8x32.0[II_VERT_PRED as usize - 1].as_mut_ptr(), - ii_nondc_mask_8x32.0[II_HOR_PRED as usize - 1].as_mut_ptr(), - ii_nondc_mask_8x32.0[II_SMOOTH_PRED as usize - 1].as_mut_ptr(), + &mut ii_nondc_mask_8x32.0[II_VERT_PRED as usize - 1], + &mut ii_nondc_mask_8x32.0[II_HOR_PRED as usize - 1], + &mut ii_nondc_mask_8x32.0[II_SMOOTH_PRED as usize - 1], 8, 32, 1, ); build_nondc_ii_masks( - ii_nondc_mask_8x16.0[II_VERT_PRED as usize - 1].as_mut_ptr(), - ii_nondc_mask_8x16.0[II_HOR_PRED as usize - 1].as_mut_ptr(), - ii_nondc_mask_8x16.0[II_SMOOTH_PRED as usize - 1].as_mut_ptr(), + &mut ii_nondc_mask_8x16.0[II_VERT_PRED as usize - 1], + &mut ii_nondc_mask_8x16.0[II_HOR_PRED as usize - 1], + &mut ii_nondc_mask_8x16.0[II_SMOOTH_PRED as usize - 1], 8, 16, 2, ); build_nondc_ii_masks( - ii_nondc_mask_8x8.0[II_VERT_PRED as usize - 1].as_mut_ptr(), - ii_nondc_mask_8x8.0[II_HOR_PRED as usize - 1].as_mut_ptr(), - ii_nondc_mask_8x8.0[II_SMOOTH_PRED as usize - 1].as_mut_ptr(), + &mut ii_nondc_mask_8x8.0[II_VERT_PRED as usize - 1], + &mut ii_nondc_mask_8x8.0[II_HOR_PRED as usize - 1], + &mut ii_nondc_mask_8x8.0[II_SMOOTH_PRED as usize - 1], 8, 8, 4, ); build_nondc_ii_masks( - ii_nondc_mask_4x16.0[II_VERT_PRED as usize - 1].as_mut_ptr(), - ii_nondc_mask_4x16.0[II_HOR_PRED as usize - 1].as_mut_ptr(), - ii_nondc_mask_4x16.0[II_SMOOTH_PRED as usize - 1].as_mut_ptr(), + &mut ii_nondc_mask_4x16.0[II_VERT_PRED as usize - 1], + &mut ii_nondc_mask_4x16.0[II_HOR_PRED as usize - 1], + &mut ii_nondc_mask_4x16.0[II_SMOOTH_PRED as usize - 1], 4, 16, 2, ); build_nondc_ii_masks( - ii_nondc_mask_4x8.0[II_VERT_PRED as usize - 1].as_mut_ptr(), - ii_nondc_mask_4x8.0[II_HOR_PRED as usize - 1].as_mut_ptr(), - ii_nondc_mask_4x8.0[II_SMOOTH_PRED as usize - 1].as_mut_ptr(), + &mut ii_nondc_mask_4x8.0[II_VERT_PRED as usize - 1], + &mut ii_nondc_mask_4x8.0[II_HOR_PRED as usize - 1], + &mut ii_nondc_mask_4x8.0[II_SMOOTH_PRED as usize - 1], 4, 8, 4, ); build_nondc_ii_masks( - ii_nondc_mask_4x4.0[II_VERT_PRED as usize - 1].as_mut_ptr(), - ii_nondc_mask_4x4.0[II_HOR_PRED as usize - 1].as_mut_ptr(), - ii_nondc_mask_4x4.0[II_SMOOTH_PRED as usize - 1].as_mut_ptr(), + &mut ii_nondc_mask_4x4.0[II_VERT_PRED as usize - 1], + &mut ii_nondc_mask_4x4.0[II_HOR_PRED as usize - 1], + &mut ii_nondc_mask_4x4.0[II_SMOOTH_PRED as usize - 1], 4, 4, 8, From af304b1e1db2d01a467e12fea14c769df52043f7 Mon Sep 17 00:00:00 2001 From: Khyber Sen Date: Mon, 11 Sep 2023 03:23:26 -0700 Subject: [PATCH 2/8] `fn build_nondc_ii_masks`: Make nominally safe. --- src/wedge.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wedge.rs b/src/wedge.rs index d6bdcb568..df5006f96 100644 --- a/src/wedge.rs +++ b/src/wedge.rs @@ -581,7 +581,7 @@ pub static dav1d_ii_masks: [[[Option<&'static [u8]>; N_INTER_INTRA_PRED_MODES]; }; #[cold] -unsafe fn build_nondc_ii_masks( +fn build_nondc_ii_masks( mask_v: &mut [u8], mask_h: &mut [u8], mask_sm: &mut [u8], From e448a9268d9705e91d9d18cfaa04a153df6ab2ba Mon Sep 17 00:00:00 2001 From: Khyber Sen Date: Mon, 11 Sep 2023 03:24:16 -0700 Subject: [PATCH 3/8] `fn build_nondc_ii_masks`: Inline and remove `off` var with multiplication. --- src/wedge.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/wedge.rs b/src/wedge.rs index df5006f96..6613be558 100644 --- a/src/wedge.rs +++ b/src/wedge.rs @@ -595,8 +595,8 @@ fn build_nondc_ii_masks( ]; let mut y = 0; - let mut off = 0; while y < h { + let off = y * w; mask_v[off..][..w].fill(ii_weights_1d[y * step]); let mut x = 0; while x < w { @@ -605,7 +605,6 @@ fn build_nondc_ii_masks( x += 1; } y += 1; - off += w; } } From 245376f32842a08c6c3b82118c5816c4e38253e1 Mon Sep 17 00:00:00 2001 From: Khyber Sen Date: Mon, 11 Sep 2023 03:25:10 -0700 Subject: [PATCH 4/8] `fn build_nondc_ii_masks`: Translate `for` loops as `const_for!` loops. --- src/wedge.rs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/wedge.rs b/src/wedge.rs index 6613be558..adb1713a1 100644 --- a/src/wedge.rs +++ b/src/wedge.rs @@ -594,18 +594,14 @@ fn build_nondc_ii_masks( 2, 1, 1, 1, 1, 1, ]; - let mut y = 0; - while y < h { + const_for!(y in 0..h => { let off = y * w; mask_v[off..][..w].fill(ii_weights_1d[y * step]); - let mut x = 0; - while x < w { + const_for!(x in 0..w => { mask_sm[off + x] = ii_weights_1d[cmp::min(x, y) * step]; mask_h[off + x] = ii_weights_1d[x * step]; - x += 1; - } - y += 1; - } + }); + }); } #[cold] From a18d0266b9c5ba3029fba20e78b625a58959a3ab Mon Sep 17 00:00:00 2001 From: Khyber Sen Date: Mon, 11 Sep 2023 03:26:33 -0700 Subject: [PATCH 5/8] `fn build_nondc_ii_masks`: Make `mask_{v,h,sm}` args array refs with const generics. --- src/wedge.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/wedge.rs b/src/wedge.rs index adb1713a1..e9b7cc8d3 100644 --- a/src/wedge.rs +++ b/src/wedge.rs @@ -581,10 +581,10 @@ pub static dav1d_ii_masks: [[[Option<&'static [u8]>; N_INTER_INTRA_PRED_MODES]; }; #[cold] -fn build_nondc_ii_masks( - mask_v: &mut [u8], - mask_h: &mut [u8], - mask_sm: &mut [u8], +fn build_nondc_ii_masks( + mask_v: &mut [u8; N], + mask_h: &mut [u8; N], + mask_sm: &mut [u8; N], w: usize, h: usize, step: usize, From a70dcc9935f295f55fcdf0d92c4aba3cc31500b8 Mon Sep 17 00:00:00 2001 From: Khyber Sen Date: Mon, 11 Sep 2023 03:33:54 -0700 Subject: [PATCH 6/8] `fn build_nondc_ii_masks`: Combine the `mask{v,h,sm}` args into a `masks` arg array. --- src/wedge.rs | 91 ++++++++-------------------------------------------- 1 file changed, 13 insertions(+), 78 deletions(-) diff --git a/src/wedge.rs b/src/wedge.rs index e9b7cc8d3..c062f38c3 100644 --- a/src/wedge.rs +++ b/src/wedge.rs @@ -582,9 +582,7 @@ pub static dav1d_ii_masks: [[[Option<&'static [u8]>; N_INTER_INTRA_PRED_MODES]; #[cold] fn build_nondc_ii_masks( - mask_v: &mut [u8; N], - mask_h: &mut [u8; N], - mask_sm: &mut [u8; N], + masks: &mut [[u8; N]; N_II_PRED_MODES], w: usize, h: usize, step: usize, @@ -596,10 +594,10 @@ fn build_nondc_ii_masks( const_for!(y in 0..h => { let off = y * w; - mask_v[off..][..w].fill(ii_weights_1d[y * step]); + masks[II_VERT_PRED as usize - 1][off..][..w].fill(ii_weights_1d[y * step]); const_for!(x in 0..w => { - mask_sm[off + x] = ii_weights_1d[cmp::min(x, y) * step]; - mask_h[off + x] = ii_weights_1d[x * step]; + masks[II_SMOOTH_PRED as usize - 1][off + x] = ii_weights_1d[cmp::min(x, y) * step]; + masks[II_HOR_PRED as usize - 1][off + x] = ii_weights_1d[x * step]; }); }); } @@ -609,76 +607,13 @@ pub unsafe fn dav1d_init_interintra_masks() { // This function is guaranteed to be called only once memset(ii_dc_mask.0.as_mut_ptr() as *mut libc::c_void, 32, 32 * 32); - build_nondc_ii_masks( - &mut ii_nondc_mask_32x32.0[II_VERT_PRED as usize - 1], - &mut ii_nondc_mask_32x32.0[II_HOR_PRED as usize - 1], - &mut ii_nondc_mask_32x32.0[II_SMOOTH_PRED as usize - 1], - 32, - 32, - 1, - ); - build_nondc_ii_masks( - &mut ii_nondc_mask_16x32.0[II_VERT_PRED as usize - 1], - &mut ii_nondc_mask_16x32.0[II_HOR_PRED as usize - 1], - &mut ii_nondc_mask_16x32.0[II_SMOOTH_PRED as usize - 1], - 16, - 32, - 1, - ); - build_nondc_ii_masks( - &mut ii_nondc_mask_16x16.0[II_VERT_PRED as usize - 1], - &mut ii_nondc_mask_16x16.0[II_HOR_PRED as usize - 1], - &mut ii_nondc_mask_16x16.0[II_SMOOTH_PRED as usize - 1], - 16, - 16, - 2, - ); - build_nondc_ii_masks( - &mut ii_nondc_mask_8x32.0[II_VERT_PRED as usize - 1], - &mut ii_nondc_mask_8x32.0[II_HOR_PRED as usize - 1], - &mut ii_nondc_mask_8x32.0[II_SMOOTH_PRED as usize - 1], - 8, - 32, - 1, - ); - build_nondc_ii_masks( - &mut ii_nondc_mask_8x16.0[II_VERT_PRED as usize - 1], - &mut ii_nondc_mask_8x16.0[II_HOR_PRED as usize - 1], - &mut ii_nondc_mask_8x16.0[II_SMOOTH_PRED as usize - 1], - 8, - 16, - 2, - ); - build_nondc_ii_masks( - &mut ii_nondc_mask_8x8.0[II_VERT_PRED as usize - 1], - &mut ii_nondc_mask_8x8.0[II_HOR_PRED as usize - 1], - &mut ii_nondc_mask_8x8.0[II_SMOOTH_PRED as usize - 1], - 8, - 8, - 4, - ); - build_nondc_ii_masks( - &mut ii_nondc_mask_4x16.0[II_VERT_PRED as usize - 1], - &mut ii_nondc_mask_4x16.0[II_HOR_PRED as usize - 1], - &mut ii_nondc_mask_4x16.0[II_SMOOTH_PRED as usize - 1], - 4, - 16, - 2, - ); - build_nondc_ii_masks( - &mut ii_nondc_mask_4x8.0[II_VERT_PRED as usize - 1], - &mut ii_nondc_mask_4x8.0[II_HOR_PRED as usize - 1], - &mut ii_nondc_mask_4x8.0[II_SMOOTH_PRED as usize - 1], - 4, - 8, - 4, - ); - build_nondc_ii_masks( - &mut ii_nondc_mask_4x4.0[II_VERT_PRED as usize - 1], - &mut ii_nondc_mask_4x4.0[II_HOR_PRED as usize - 1], - &mut ii_nondc_mask_4x4.0[II_SMOOTH_PRED as usize - 1], - 4, - 4, - 8, - ); + build_nondc_ii_masks(&mut ii_nondc_mask_32x32.0, 32, 32, 1); + build_nondc_ii_masks(&mut ii_nondc_mask_16x32.0, 16, 32, 1); + build_nondc_ii_masks(&mut ii_nondc_mask_16x16.0, 16, 16, 2); + build_nondc_ii_masks(&mut ii_nondc_mask_8x32.0, 8, 32, 1); + build_nondc_ii_masks(&mut ii_nondc_mask_8x16.0, 8, 16, 2); + build_nondc_ii_masks(&mut ii_nondc_mask_8x8.0, 8, 8, 4); + build_nondc_ii_masks(&mut ii_nondc_mask_4x16.0, 4, 16, 2); + build_nondc_ii_masks(&mut ii_nondc_mask_4x8.0, 4, 8, 4); + build_nondc_ii_masks(&mut ii_nondc_mask_4x4.0, 4, 4, 8); } From e3cb40b101aa5223d0c82e2712fd704ea4eb0d93 Mon Sep 17 00:00:00 2001 From: Khyber Sen Date: Mon, 11 Sep 2023 03:37:32 -0700 Subject: [PATCH 7/8] `fn build_nondc_ii_masks`: `const`ify by passing and returning array by value. Also, use an `if` `else` instead of `cmp::min` and a loop instead of `.fill`. --- src/wedge.rs | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/src/wedge.rs b/src/wedge.rs index c062f38c3..581afb519 100644 --- a/src/wedge.rs +++ b/src/wedge.rs @@ -1,5 +1,3 @@ -use std::cmp; - use crate::src::align::Align16; use crate::src::align::Align32; use crate::src::align::Align64; @@ -580,26 +578,29 @@ pub static dav1d_ii_masks: [[[Option<&'static [u8]>; N_INTER_INTRA_PRED_MODES]; masks }; -#[cold] -fn build_nondc_ii_masks( - masks: &mut [[u8; N]; N_II_PRED_MODES], +const fn build_nondc_ii_masks( + mut masks: [[u8; N]; N_II_PRED_MODES], w: usize, h: usize, step: usize, -) { - static ii_weights_1d: [u8; 32] = [ +) -> [[u8; N]; N_II_PRED_MODES] { + const ii_weights_1d: [u8; 32] = [ 60, 52, 45, 39, 34, 30, 26, 22, 19, 17, 15, 13, 11, 10, 8, 7, 6, 6, 5, 4, 4, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, ]; const_for!(y in 0..h => { let off = y * w; - masks[II_VERT_PRED as usize - 1][off..][..w].fill(ii_weights_1d[y * step]); + const_for!(i in 0..w => { + masks[II_VERT_PRED as usize - 1][off + i] = ii_weights_1d[y * step]; + }); const_for!(x in 0..w => { - masks[II_SMOOTH_PRED as usize - 1][off + x] = ii_weights_1d[cmp::min(x, y) * step]; + masks[II_SMOOTH_PRED as usize - 1][off + x] = ii_weights_1d[if x < y { x } else { y } * step]; masks[II_HOR_PRED as usize - 1][off + x] = ii_weights_1d[x * step]; }); }); + + masks } #[cold] @@ -607,13 +608,13 @@ pub unsafe fn dav1d_init_interintra_masks() { // This function is guaranteed to be called only once memset(ii_dc_mask.0.as_mut_ptr() as *mut libc::c_void, 32, 32 * 32); - build_nondc_ii_masks(&mut ii_nondc_mask_32x32.0, 32, 32, 1); - build_nondc_ii_masks(&mut ii_nondc_mask_16x32.0, 16, 32, 1); - build_nondc_ii_masks(&mut ii_nondc_mask_16x16.0, 16, 16, 2); - build_nondc_ii_masks(&mut ii_nondc_mask_8x32.0, 8, 32, 1); - build_nondc_ii_masks(&mut ii_nondc_mask_8x16.0, 8, 16, 2); - build_nondc_ii_masks(&mut ii_nondc_mask_8x8.0, 8, 8, 4); - build_nondc_ii_masks(&mut ii_nondc_mask_4x16.0, 4, 16, 2); - build_nondc_ii_masks(&mut ii_nondc_mask_4x8.0, 4, 8, 4); - build_nondc_ii_masks(&mut ii_nondc_mask_4x4.0, 4, 4, 8); + ii_nondc_mask_32x32.0 = build_nondc_ii_masks(ii_nondc_mask_32x32.0, 32, 32, 1); + ii_nondc_mask_16x32.0 = build_nondc_ii_masks(ii_nondc_mask_16x32.0, 16, 32, 1); + ii_nondc_mask_16x16.0 = build_nondc_ii_masks(ii_nondc_mask_16x16.0, 16, 16, 2); + ii_nondc_mask_8x32.0 = build_nondc_ii_masks(ii_nondc_mask_8x32.0, 8, 32, 1); + ii_nondc_mask_8x16.0 = build_nondc_ii_masks(ii_nondc_mask_8x16.0, 8, 16, 2); + ii_nondc_mask_8x8.0 = build_nondc_ii_masks(ii_nondc_mask_8x8.0, 8, 8, 4); + ii_nondc_mask_4x16.0 = build_nondc_ii_masks(ii_nondc_mask_4x16.0, 4, 16, 2); + ii_nondc_mask_4x8.0 = build_nondc_ii_masks(ii_nondc_mask_4x8.0, 4, 8, 4); + ii_nondc_mask_4x4.0 = build_nondc_ii_masks(ii_nondc_mask_4x4.0, 4, 4, 8); } From 14cc93a08489fd843f1487affe4580d745fde2bf Mon Sep 17 00:00:00 2001 From: Khyber Sen Date: Mon, 11 Sep 2023 03:51:32 -0700 Subject: [PATCH 8/8] `fn build_nondc_ii_masks`: Create mask array since the arg is always all 0s. --- src/wedge.rs | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/wedge.rs b/src/wedge.rs index 581afb519..bc1cbd2dc 100644 --- a/src/wedge.rs +++ b/src/wedge.rs @@ -579,7 +579,6 @@ pub static dav1d_ii_masks: [[[Option<&'static [u8]>; N_INTER_INTRA_PRED_MODES]; }; const fn build_nondc_ii_masks( - mut masks: [[u8; N]; N_II_PRED_MODES], w: usize, h: usize, step: usize, @@ -589,6 +588,8 @@ const fn build_nondc_ii_masks( 2, 1, 1, 1, 1, 1, ]; + let mut masks = [[0; N]; N_II_PRED_MODES]; + const_for!(y in 0..h => { let off = y * w; const_for!(i in 0..w => { @@ -608,13 +609,13 @@ pub unsafe fn dav1d_init_interintra_masks() { // This function is guaranteed to be called only once memset(ii_dc_mask.0.as_mut_ptr() as *mut libc::c_void, 32, 32 * 32); - ii_nondc_mask_32x32.0 = build_nondc_ii_masks(ii_nondc_mask_32x32.0, 32, 32, 1); - ii_nondc_mask_16x32.0 = build_nondc_ii_masks(ii_nondc_mask_16x32.0, 16, 32, 1); - ii_nondc_mask_16x16.0 = build_nondc_ii_masks(ii_nondc_mask_16x16.0, 16, 16, 2); - ii_nondc_mask_8x32.0 = build_nondc_ii_masks(ii_nondc_mask_8x32.0, 8, 32, 1); - ii_nondc_mask_8x16.0 = build_nondc_ii_masks(ii_nondc_mask_8x16.0, 8, 16, 2); - ii_nondc_mask_8x8.0 = build_nondc_ii_masks(ii_nondc_mask_8x8.0, 8, 8, 4); - ii_nondc_mask_4x16.0 = build_nondc_ii_masks(ii_nondc_mask_4x16.0, 4, 16, 2); - ii_nondc_mask_4x8.0 = build_nondc_ii_masks(ii_nondc_mask_4x8.0, 4, 8, 4); - ii_nondc_mask_4x4.0 = build_nondc_ii_masks(ii_nondc_mask_4x4.0, 4, 4, 8); + ii_nondc_mask_32x32.0 = build_nondc_ii_masks(32, 32, 1); + ii_nondc_mask_16x32.0 = build_nondc_ii_masks(16, 32, 1); + ii_nondc_mask_16x16.0 = build_nondc_ii_masks(16, 16, 2); + ii_nondc_mask_8x32.0 = build_nondc_ii_masks(8, 32, 1); + ii_nondc_mask_8x16.0 = build_nondc_ii_masks(8, 16, 2); + ii_nondc_mask_8x8.0 = build_nondc_ii_masks(8, 8, 4); + ii_nondc_mask_4x16.0 = build_nondc_ii_masks(4, 16, 2); + ii_nondc_mask_4x8.0 = build_nondc_ii_masks(4, 8, 4); + ii_nondc_mask_4x4.0 = build_nondc_ii_masks(4, 4, 8); }