diff --git a/sample/test_util.cpp b/sample/test_util.cpp index ef53723..a20d2df 100644 --- a/sample/test_util.cpp +++ b/sample/test_util.cpp @@ -92,6 +92,7 @@ void putCPUinfo(bool onlyCpuidFeature) { Cpu::tAMX_FP16, "amx_fp16" }, { Cpu::tAVX_VNNI_INT8, "avx_vnni_int8" }, { Cpu::tAVX_NE_CONVERT, "avx_ne_convert" }, + { Cpu::tAVX_IFMA, "avx_ifma" }, }; for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) { if (cpu.has(tbl[i].type)) printf(" %s", tbl[i].str); diff --git a/xbyak/xbyak_util.h b/xbyak/xbyak_util.h index e50b850..8431925 100644 --- a/xbyak/xbyak_util.h +++ b/xbyak/xbyak_util.h @@ -413,6 +413,7 @@ public: XBYAK_DEFINE_TYPE(68, tAMX_FP16); XBYAK_DEFINE_TYPE(69, tAVX_VNNI_INT8); XBYAK_DEFINE_TYPE(70, tAVX_NE_CONVERT); + XBYAK_DEFINE_TYPE(71, tAVX_IFMA); #undef XBYAK_SPLIT_ID #undef XBYAK_DEFINE_TYPE @@ -557,6 +558,7 @@ public: if (EAX & (1U << 5)) type_ |= tAVX512_BF16; } if (EAX & (1U << 21)) type_ |= tAMX_FP16; + if (EAX & (1U << 23)) type_ |= tAVX_IFMA; if (EDX & (1U << 4)) type_ |= tAVX_VNNI_INT8; if (EDX & (1U << 5)) type_ |= tAVX_NE_CONVERT; }