add detection of movrs
diff --git a/sample/cpuid/dmr.txt b/sample/cpuid/dmr.txt index 680ea30..2afa498 100644 --- a/sample/cpuid/dmr.txt +++ b/sample/cpuid/dmr.txt
@@ -1,2 +1,2 @@ vendor intel - mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp xsave(xgetvb) osxsave pclmulqdq avx fma avx2 bmi1 bmi2 lzcnt prefetchw enh_rep rdrand adx rdseed smap sha f16c movbe avx512f avx512dq avx512_ifma avx512cd avx512bw avx512vl avx512_vbmi avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq avx512_bf16 amx(tile) amx(int8) amx(bf16) avx_vnni avx512_fp16 waitpkg clflushopt cldemote clwb movdiri movdir64b uintr serialize amx_fp16 avx_vnni_int8 avx_ne_convert avx_ifma cmpccxadd prefetchiti sha512 sm3 sm4 avx_vnni_int16 apx_f avx10 amx_fp8 amx_transpose amx_tf32 amx_avx512 amx_movrs + mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp xsave(xgetvb) osxsave pclmulqdq avx fma avx2 bmi1 bmi2 lzcnt prefetchw enh_rep rdrand adx rdseed smap sha f16c movbe avx512f avx512dq avx512_ifma avx512cd avx512bw avx512vl avx512_vbmi avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq avx512_bf16 amx(tile) amx(int8) amx(bf16) avx_vnni avx512_fp16 waitpkg clflushopt cldemote clwb movdiri movdir64b uintr serialize amx_fp16 avx_vnni_int8 avx_ne_convert avx_ifma cmpccxadd prefetchiti sha512 sm3 sm4 avx_vnni_int16 apx_f avx10 amx_fp8 amx_transpose amx_tf32 amx_avx512 amx_movrs movrs
diff --git a/sample/test_util.cpp b/sample/test_util.cpp index a083dd1..60e32e4 100644 --- a/sample/test_util.cpp +++ b/sample/test_util.cpp
@@ -117,6 +117,7 @@ { Cpu::tAMX_TF32, "amx_tf32" }, { Cpu::tAMX_AVX512, "amx_avx512" }, { Cpu::tAMX_MOVRS, "amx_movrs" }, + { Cpu::tMOVRS, "movrs" }, }; 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 b851d66..3f883d0 100644 --- a/xbyak/xbyak_util.h +++ b/xbyak/xbyak_util.h
@@ -553,6 +553,7 @@ XBYAK_DEFINE_TYPE(93, tAMX_AVX512); XBYAK_DEFINE_TYPE(94, tAMX_MOVRS); XBYAK_DEFINE_TYPE(95, tAMX_FP8); + XBYAK_DEFINE_TYPE(96, tMOVRS); #undef XBYAK_SPLIT_ID #undef XBYAK_DEFINE_TYPE @@ -707,6 +708,7 @@ if (EAX & (1U << 7)) type_ |= tCMPCCXADD; if (EAX & (1U << 21)) type_ |= tAMX_FP16; if (EAX & (1U << 23)) type_ |= tAVX_IFMA; + if (EAX & (1U << 31)) type_ |= tMOVRS; if (EDX & (1U << 4)) type_ |= tAVX_VNNI_INT8; if (EDX & (1U << 5)) type_ |= tAVX_NE_CONVERT; if (EDX & (1U << 10)) type_ |= tAVX_VNNI_INT16;