refactor util
diff --git a/xbyak/xbyak_util.h b/xbyak/xbyak_util.h
index 649bb4c..6ff9aab 100644
--- a/xbyak/xbyak_util.h
+++ b/xbyak/xbyak_util.h
@@ -385,7 +385,6 @@
 		const unsigned int& EDX = data[3];
 		getCpuid(0, data);
 		const unsigned int maxNum = EAX;
-		unsigned int maxLeaf7Subleafs;
 		static const char intel[] = "ntel";
 		static const char amd[] = "cAMD";
 		if (ECX == get32bitAsBE(amd)) {
@@ -450,7 +449,6 @@
 #endif
 				{
 					getCpuidEx(7, 0, data);
-					maxLeaf7Subleafs = EAX;
 					if (EBX & (1U << 16)) type_ |= tAVX512F;
 					if (type_ & tAVX512F) {
 						if (EBX & (1U << 17)) type_ |= tAVX512DQ;
@@ -472,18 +470,12 @@
 						if (EDX & (1U << 3)) type_ |= tAVX512_4FMAPS;
 						if (EDX & (1U << 8)) type_ |= tAVX512_VP2INTERSECT;
 					}
-					if (maxLeaf7Subleafs >= 1) {
-						getCpuidEx(7, 1, data); // EAX=07H, ECX=1
-						if (type_ & tAVX512F) {
-							if (EAX & (1U << 5)) type_ |= tAVX512_BF16;
-						}
-					}
 				}
 			}
 		}
 		if (maxNum >= 7) {
 			getCpuidEx(7, 0, data);
-			maxLeaf7Subleafs = EAX;
+			const uint32_t maxNumSubLeaves = EAX;
 			if (type_ & tAVX && (EBX & (1U << 5))) type_ |= tAVX2;
 			if (EBX & (1U << 3)) type_ |= tBMI1;
 			if (EBX & (1U << 8)) type_ |= tBMI2;
@@ -499,9 +491,12 @@
 			if (EDX & (1U << 24)) type_ |= tAMX_TILE;
 			if (EDX & (1U << 25)) type_ |= tAMX_INT8;
 			if (EDX & (1U << 22)) type_ |= tAMX_BF16;
-			if (maxLeaf7Subleafs >= 1) {
+			if (maxNumSubLeaves >= 1) {
 				getCpuidEx(7, 1, data);
 				if (EAX & (1U << 4)) type_ |= tAVX_VNNI;
+				if (type_ & tAVX512F) {
+					if (EAX & (1U << 5)) type_ |= tAVX512_BF16;
+				}
 			}
 		}
 		setFamily();