add t2rpntlvwz{0,1}[,t1]
diff --git a/gen/gen_code.cpp b/gen/gen_code.cpp
index 650ebc2..2809760 100644
--- a/gen/gen_code.cpp
+++ b/gen/gen_code.cpp
@@ -2063,6 +2063,9 @@
 		{ "tileloaddrs", T_F2 | T_0F38 | T_W0, 0x4A },
 		{ "tileloaddrst1", T_66 | T_0F38 | T_W0, 0x4A },
 		{ "t2rpntlvwz0", T_0F38 | T_W0, 0x6E },
+		{ "t2rpntlvwz0t1", T_0F38 | T_W0, 0x6F },
+		{ "t2rpntlvwz1", T_66 | T_0F38 | T_W0, 0x6E },
+		{ "t2rpntlvwz1t1", T_66 | T_0F38 | T_W0, 0x6F },
 	};
 	for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
 		const Tbl& t = tbl[i];
diff --git a/test/avx10/amx.txt b/test/avx10/amx.txt
index 10f78ea..00e605d 100644
--- a/test/avx10/amx.txt
+++ b/test/avx10/amx.txt
@@ -34,3 +34,12 @@
 
 t2rpntlvwz0(tmm1, ptr[rax+rax*2+0x80]);
 t2rpntlvwz0(tmm7, ptr[r30+rax*2+0x80]);
+
+t2rpntlvwz0t1(tmm1, ptr[rax+rax*2+0x80]);
+t2rpntlvwz0t1(tmm7, ptr[r30+rax*2+0x80]);
+
+t2rpntlvwz1(tmm1, ptr[rax+rax*2+0x80]);
+t2rpntlvwz1(tmm7, ptr[r30+rax*2+0x80]);
+
+t2rpntlvwz1t1(tmm1, ptr[rax+rax*2+0x80]);
+t2rpntlvwz1t1(tmm7, ptr[r30+rax*2+0x80]);
diff --git a/xbyak/xbyak_mnemonic.h b/xbyak/xbyak_mnemonic.h
index 9a07c66..33caea7 100644
--- a/xbyak/xbyak_mnemonic.h
+++ b/xbyak/xbyak_mnemonic.h
@@ -1944,6 +1944,9 @@
 void tileloaddrs(const Tmm& tm, const Address& addr) { opAMX(tm, addr, T_F2|T_0F38|T_W0, 0x4A); }
 void tileloaddrst1(const Tmm& tm, const Address& addr) { opAMX(tm, addr, T_66|T_0F38|T_W0, 0x4A); }
 void t2rpntlvwz0(const Tmm& tm, const Address& addr) { opAMX(tm, addr, T_0F38|T_W0, 0x6E); }
+void t2rpntlvwz0t1(const Tmm& tm, const Address& addr) { opAMX(tm, addr, T_0F38|T_W0, 0x6F); }
+void t2rpntlvwz1(const Tmm& tm, const Address& addr) { opAMX(tm, addr, T_66|T_0F38|T_W0, 0x6E); }
+void t2rpntlvwz1t1(const Tmm& tm, const Address& addr) { opAMX(tm, addr, T_66|T_0F38|T_W0, 0x6F); }
 #else
 void jcxz(std::string label) { db(0x67); opJmp(label, T_SHORT, 0xe3, 0, 0); }
 void jcxz(const Label& label) { db(0x67); opJmp(label, T_SHORT, 0xe3, 0, 0); }