Fix AVX512BW Fletcher code on AVX512-but-not-BW machines
Introduce a specific valid function for avx512f+avx512bw (instead of checking only for avx512f). Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Adam Moss <c@yotes.com> Signed-off-by: Romain Dolbeau <romain@dolbeau.org> Closes #11937 Closes #11938
This commit is contained in:
parent
3c7ad493a6
commit
9a68ceba10
|
@ -210,6 +210,12 @@ fletcher_4_avx512bw_byteswap(fletcher_4_ctx_t *ctx, const void *buf,
|
||||||
}
|
}
|
||||||
STACK_FRAME_NON_STANDARD(fletcher_4_avx512bw_byteswap);
|
STACK_FRAME_NON_STANDARD(fletcher_4_avx512bw_byteswap);
|
||||||
|
|
||||||
|
static boolean_t
|
||||||
|
fletcher_4_avx512bw_valid(void)
|
||||||
|
{
|
||||||
|
return (fletcher_4_avx512f_valid() && zfs_avx512bw_available());
|
||||||
|
}
|
||||||
|
|
||||||
const fletcher_4_ops_t fletcher_4_avx512bw_ops = {
|
const fletcher_4_ops_t fletcher_4_avx512bw_ops = {
|
||||||
.init_native = fletcher_4_avx512f_init,
|
.init_native = fletcher_4_avx512f_init,
|
||||||
.fini_native = fletcher_4_avx512f_fini,
|
.fini_native = fletcher_4_avx512f_fini,
|
||||||
|
@ -217,7 +223,7 @@ const fletcher_4_ops_t fletcher_4_avx512bw_ops = {
|
||||||
.init_byteswap = fletcher_4_avx512f_init,
|
.init_byteswap = fletcher_4_avx512f_init,
|
||||||
.fini_byteswap = fletcher_4_avx512f_fini,
|
.fini_byteswap = fletcher_4_avx512f_fini,
|
||||||
.compute_byteswap = fletcher_4_avx512bw_byteswap,
|
.compute_byteswap = fletcher_4_avx512bw_byteswap,
|
||||||
.valid = fletcher_4_avx512f_valid,
|
.valid = fletcher_4_avx512bw_valid,
|
||||||
.name = "avx512bw"
|
.name = "avx512bw"
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue