[llvm] [X86][tablgen] Auto-gen broadcast tables (PR #73654)

Shengchen Kan via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 30 03:00:50 PST 2023


================
@@ -5995,3 +5995,2634 @@ static const X86FoldTableEntry Table4[] = {
   {X86::VXORPSZrrk, X86::VXORPSZrmk, 0},
 };
 
+static const X86FoldTableEntry BroadcastTable1[] = {
+  {X86::VCVTDQ2PDZ128rr, X86::VCVTDQ2PDZ128rmb, TB_BCAST_SD},
+  {X86::VCVTDQ2PDZ256rr, X86::VCVTDQ2PDZ256rmb, TB_BCAST_SD},
+  {X86::VCVTDQ2PDZrr, X86::VCVTDQ2PDZrmb, TB_BCAST_SD},
+  {X86::VCVTDQ2PHZ128rr, X86::VCVTDQ2PHZ128rmb, TB_BCAST_SH},
+  {X86::VCVTDQ2PHZ256rr, X86::VCVTDQ2PHZ256rmb, TB_BCAST_SH},
+  {X86::VCVTDQ2PHZrr, X86::VCVTDQ2PHZrmb, TB_BCAST_SH},
+  {X86::VCVTDQ2PSZ128rr, X86::VCVTDQ2PSZ128rmb, TB_BCAST_SS},
+  {X86::VCVTDQ2PSZ256rr, X86::VCVTDQ2PSZ256rmb, TB_BCAST_SS},
+  {X86::VCVTDQ2PSZrr, X86::VCVTDQ2PSZrmb, TB_BCAST_SS},
+  {X86::VCVTNEPS2BF16Z128rr, X86::VCVTNEPS2BF16Z128rmb, TB_BCAST_SS},
+  {X86::VCVTNEPS2BF16Z256rr, X86::VCVTNEPS2BF16Z256rmb, TB_BCAST_SS},
+  {X86::VCVTNEPS2BF16Zrr, X86::VCVTNEPS2BF16Zrmb, TB_BCAST_SS},
+  {X86::VCVTPD2DQZ128rr, X86::VCVTPD2DQZ128rmb, TB_BCAST_SD},
+  {X86::VCVTPD2DQZ256rr, X86::VCVTPD2DQZ256rmb, TB_BCAST_SD},
+  {X86::VCVTPD2DQZrr, X86::VCVTPD2DQZrmb, TB_BCAST_SD},
+  {X86::VCVTPD2PHZ128rr, X86::VCVTPD2PHZ128rmb, TB_BCAST_SD},
+  {X86::VCVTPD2PHZ256rr, X86::VCVTPD2PHZ256rmb, TB_BCAST_SD},
+  {X86::VCVTPD2PHZrr, X86::VCVTPD2PHZrmb, TB_BCAST_SD},
+  {X86::VCVTPD2PSZ128rr, X86::VCVTPD2PSZ128rmb, TB_BCAST_SS},
+  {X86::VCVTPD2PSZ256rr, X86::VCVTPD2PSZ256rmb, TB_BCAST_SS},
+  {X86::VCVTPD2PSZrr, X86::VCVTPD2PSZrmb, TB_BCAST_SS},
+  {X86::VCVTPD2QQZ128rr, X86::VCVTPD2QQZ128rmb, TB_BCAST_SD},
+  {X86::VCVTPD2QQZ256rr, X86::VCVTPD2QQZ256rmb, TB_BCAST_SD},
+  {X86::VCVTPD2QQZrr, X86::VCVTPD2QQZrmb, TB_BCAST_SD},
+  {X86::VCVTPD2UDQZ128rr, X86::VCVTPD2UDQZ128rmb, TB_BCAST_SD},
+  {X86::VCVTPD2UDQZ256rr, X86::VCVTPD2UDQZ256rmb, TB_BCAST_SD},
+  {X86::VCVTPD2UDQZrr, X86::VCVTPD2UDQZrmb, TB_BCAST_SD},
+  {X86::VCVTPD2UQQZ128rr, X86::VCVTPD2UQQZ128rmb, TB_BCAST_SD},
+  {X86::VCVTPD2UQQZ256rr, X86::VCVTPD2UQQZ256rmb, TB_BCAST_SD},
+  {X86::VCVTPD2UQQZrr, X86::VCVTPD2UQQZrmb, TB_BCAST_SD},
+  {X86::VCVTPH2DQZ128rr, X86::VCVTPH2DQZ128rmb, TB_BCAST_SH},
+  {X86::VCVTPH2DQZ256rr, X86::VCVTPH2DQZ256rmb, TB_BCAST_SH},
+  {X86::VCVTPH2DQZrr, X86::VCVTPH2DQZrmb, TB_BCAST_SH},
+  {X86::VCVTPH2PDZ128rr, X86::VCVTPH2PDZ128rmb, TB_BCAST_SD},
+  {X86::VCVTPH2PDZ256rr, X86::VCVTPH2PDZ256rmb, TB_BCAST_SD},
+  {X86::VCVTPH2PDZrr, X86::VCVTPH2PDZrmb, TB_BCAST_SD},
+  {X86::VCVTPH2PSXZ128rr, X86::VCVTPH2PSXZ128rmb, TB_BCAST_SS},
+  {X86::VCVTPH2PSXZ256rr, X86::VCVTPH2PSXZ256rmb, TB_BCAST_SS},
+  {X86::VCVTPH2PSXZrr, X86::VCVTPH2PSXZrmb, TB_BCAST_SS},
+  {X86::VCVTPH2QQZ128rr, X86::VCVTPH2QQZ128rmb, TB_BCAST_SH},
+  {X86::VCVTPH2QQZ256rr, X86::VCVTPH2QQZ256rmb, TB_BCAST_SH},
+  {X86::VCVTPH2QQZrr, X86::VCVTPH2QQZrmb, TB_BCAST_SH},
+  {X86::VCVTPH2UDQZ128rr, X86::VCVTPH2UDQZ128rmb, TB_BCAST_SH},
+  {X86::VCVTPH2UDQZ256rr, X86::VCVTPH2UDQZ256rmb, TB_BCAST_SH},
+  {X86::VCVTPH2UDQZrr, X86::VCVTPH2UDQZrmb, TB_BCAST_SH},
+  {X86::VCVTPH2UQQZ128rr, X86::VCVTPH2UQQZ128rmb, TB_BCAST_SH},
+  {X86::VCVTPH2UQQZ256rr, X86::VCVTPH2UQQZ256rmb, TB_BCAST_SH},
+  {X86::VCVTPH2UQQZrr, X86::VCVTPH2UQQZrmb, TB_BCAST_SH},
+  {X86::VCVTPH2UWZ128rr, X86::VCVTPH2UWZ128rmb, TB_BCAST_SH},
+  {X86::VCVTPH2UWZ256rr, X86::VCVTPH2UWZ256rmb, TB_BCAST_SH},
+  {X86::VCVTPH2UWZrr, X86::VCVTPH2UWZrmb, TB_BCAST_SH},
+  {X86::VCVTPH2WZ128rr, X86::VCVTPH2WZ128rmb, TB_BCAST_SH},
+  {X86::VCVTPH2WZ256rr, X86::VCVTPH2WZ256rmb, TB_BCAST_SH},
+  {X86::VCVTPH2WZrr, X86::VCVTPH2WZrmb, TB_BCAST_SH},
+  {X86::VCVTPS2DQZ128rr, X86::VCVTPS2DQZ128rmb, TB_BCAST_SS},
+  {X86::VCVTPS2DQZ256rr, X86::VCVTPS2DQZ256rmb, TB_BCAST_SS},
+  {X86::VCVTPS2DQZrr, X86::VCVTPS2DQZrmb, TB_BCAST_SS},
+  {X86::VCVTPS2PDZ128rr, X86::VCVTPS2PDZ128rmb, TB_BCAST_SS},
+  {X86::VCVTPS2PDZ256rr, X86::VCVTPS2PDZ256rmb, TB_BCAST_SS},
+  {X86::VCVTPS2PDZrr, X86::VCVTPS2PDZrmb, TB_BCAST_SS},
+  {X86::VCVTPS2PHXZ128rr, X86::VCVTPS2PHXZ128rmb, TB_BCAST_SS},
+  {X86::VCVTPS2PHXZ256rr, X86::VCVTPS2PHXZ256rmb, TB_BCAST_SS},
+  {X86::VCVTPS2PHXZrr, X86::VCVTPS2PHXZrmb, TB_BCAST_SS},
+  {X86::VCVTPS2QQZ128rr, X86::VCVTPS2QQZ128rmb, TB_BCAST_SS},
+  {X86::VCVTPS2QQZ256rr, X86::VCVTPS2QQZ256rmb, TB_BCAST_SS},
+  {X86::VCVTPS2QQZrr, X86::VCVTPS2QQZrmb, TB_BCAST_SS},
+  {X86::VCVTPS2UDQZ128rr, X86::VCVTPS2UDQZ128rmb, TB_BCAST_SS},
+  {X86::VCVTPS2UDQZ256rr, X86::VCVTPS2UDQZ256rmb, TB_BCAST_SS},
+  {X86::VCVTPS2UDQZrr, X86::VCVTPS2UDQZrmb, TB_BCAST_SS},
+  {X86::VCVTPS2UQQZ128rr, X86::VCVTPS2UQQZ128rmb, TB_BCAST_SS},
+  {X86::VCVTPS2UQQZ256rr, X86::VCVTPS2UQQZ256rmb, TB_BCAST_SS},
+  {X86::VCVTPS2UQQZrr, X86::VCVTPS2UQQZrmb, TB_BCAST_SS},
+  {X86::VCVTQQ2PDZ128rr, X86::VCVTQQ2PDZ128rmb, TB_BCAST_SD},
+  {X86::VCVTQQ2PDZ256rr, X86::VCVTQQ2PDZ256rmb, TB_BCAST_SD},
+  {X86::VCVTQQ2PDZrr, X86::VCVTQQ2PDZrmb, TB_BCAST_SD},
+  {X86::VCVTQQ2PHZ128rr, X86::VCVTQQ2PHZ128rmb, TB_BCAST_SH},
+  {X86::VCVTQQ2PHZ256rr, X86::VCVTQQ2PHZ256rmb, TB_BCAST_SH},
+  {X86::VCVTQQ2PHZrr, X86::VCVTQQ2PHZrmb, TB_BCAST_SH},
+  {X86::VCVTQQ2PSZ128rr, X86::VCVTQQ2PSZ128rmb, TB_BCAST_SS},
+  {X86::VCVTQQ2PSZ256rr, X86::VCVTQQ2PSZ256rmb, TB_BCAST_SS},
+  {X86::VCVTQQ2PSZrr, X86::VCVTQQ2PSZrmb, TB_BCAST_SS},
+  {X86::VCVTTPD2DQZ128rr, X86::VCVTTPD2DQZ128rmb, TB_BCAST_SD},
+  {X86::VCVTTPD2DQZ256rr, X86::VCVTTPD2DQZ256rmb, TB_BCAST_SD},
+  {X86::VCVTTPD2DQZrr, X86::VCVTTPD2DQZrmb, TB_BCAST_SD},
+  {X86::VCVTTPD2QQZ128rr, X86::VCVTTPD2QQZ128rmb, TB_BCAST_SD},
+  {X86::VCVTTPD2QQZ256rr, X86::VCVTTPD2QQZ256rmb, TB_BCAST_SD},
+  {X86::VCVTTPD2QQZrr, X86::VCVTTPD2QQZrmb, TB_BCAST_SD},
+  {X86::VCVTTPD2UDQZ128rr, X86::VCVTTPD2UDQZ128rmb, TB_BCAST_SD},
+  {X86::VCVTTPD2UDQZ256rr, X86::VCVTTPD2UDQZ256rmb, TB_BCAST_SD},
+  {X86::VCVTTPD2UDQZrr, X86::VCVTTPD2UDQZrmb, TB_BCAST_SD},
+  {X86::VCVTTPD2UQQZ128rr, X86::VCVTTPD2UQQZ128rmb, TB_BCAST_SD},
+  {X86::VCVTTPD2UQQZ256rr, X86::VCVTTPD2UQQZ256rmb, TB_BCAST_SD},
+  {X86::VCVTTPD2UQQZrr, X86::VCVTTPD2UQQZrmb, TB_BCAST_SD},
+  {X86::VCVTTPH2DQZ128rr, X86::VCVTTPH2DQZ128rmb, TB_BCAST_SH},
+  {X86::VCVTTPH2DQZ256rr, X86::VCVTTPH2DQZ256rmb, TB_BCAST_SH},
+  {X86::VCVTTPH2DQZrr, X86::VCVTTPH2DQZrmb, TB_BCAST_SH},
+  {X86::VCVTTPH2QQZ128rr, X86::VCVTTPH2QQZ128rmb, TB_BCAST_SH},
+  {X86::VCVTTPH2QQZ256rr, X86::VCVTTPH2QQZ256rmb, TB_BCAST_SH},
+  {X86::VCVTTPH2QQZrr, X86::VCVTTPH2QQZrmb, TB_BCAST_SH},
+  {X86::VCVTTPH2UDQZ128rr, X86::VCVTTPH2UDQZ128rmb, TB_BCAST_SH},
+  {X86::VCVTTPH2UDQZ256rr, X86::VCVTTPH2UDQZ256rmb, TB_BCAST_SH},
+  {X86::VCVTTPH2UDQZrr, X86::VCVTTPH2UDQZrmb, TB_BCAST_SH},
+  {X86::VCVTTPH2UQQZ128rr, X86::VCVTTPH2UQQZ128rmb, TB_BCAST_SH},
+  {X86::VCVTTPH2UQQZ256rr, X86::VCVTTPH2UQQZ256rmb, TB_BCAST_SH},
+  {X86::VCVTTPH2UQQZrr, X86::VCVTTPH2UQQZrmb, TB_BCAST_SH},
+  {X86::VCVTTPH2UWZ128rr, X86::VCVTTPH2UWZ128rmb, TB_BCAST_SH},
+  {X86::VCVTTPH2UWZ256rr, X86::VCVTTPH2UWZ256rmb, TB_BCAST_SH},
+  {X86::VCVTTPH2UWZrr, X86::VCVTTPH2UWZrmb, TB_BCAST_SH},
+  {X86::VCVTTPH2WZ128rr, X86::VCVTTPH2WZ128rmb, TB_BCAST_SH},
+  {X86::VCVTTPH2WZ256rr, X86::VCVTTPH2WZ256rmb, TB_BCAST_SH},
+  {X86::VCVTTPH2WZrr, X86::VCVTTPH2WZrmb, TB_BCAST_SH},
+  {X86::VCVTTPS2DQZ128rr, X86::VCVTTPS2DQZ128rmb, TB_BCAST_SS},
+  {X86::VCVTTPS2DQZ256rr, X86::VCVTTPS2DQZ256rmb, TB_BCAST_SS},
+  {X86::VCVTTPS2DQZrr, X86::VCVTTPS2DQZrmb, TB_BCAST_SS},
+  {X86::VCVTTPS2QQZ128rr, X86::VCVTTPS2QQZ128rmb, TB_BCAST_SS},
+  {X86::VCVTTPS2QQZ256rr, X86::VCVTTPS2QQZ256rmb, TB_BCAST_SS},
+  {X86::VCVTTPS2QQZrr, X86::VCVTTPS2QQZrmb, TB_BCAST_SS},
+  {X86::VCVTTPS2UDQZ128rr, X86::VCVTTPS2UDQZ128rmb, TB_BCAST_SS},
+  {X86::VCVTTPS2UDQZ256rr, X86::VCVTTPS2UDQZ256rmb, TB_BCAST_SS},
+  {X86::VCVTTPS2UDQZrr, X86::VCVTTPS2UDQZrmb, TB_BCAST_SS},
+  {X86::VCVTTPS2UQQZ128rr, X86::VCVTTPS2UQQZ128rmb, TB_BCAST_SS},
+  {X86::VCVTTPS2UQQZ256rr, X86::VCVTTPS2UQQZ256rmb, TB_BCAST_SS},
+  {X86::VCVTTPS2UQQZrr, X86::VCVTTPS2UQQZrmb, TB_BCAST_SS},
+  {X86::VCVTUDQ2PDZ128rr, X86::VCVTUDQ2PDZ128rmb, TB_BCAST_SD},
+  {X86::VCVTUDQ2PDZ256rr, X86::VCVTUDQ2PDZ256rmb, TB_BCAST_SD},
+  {X86::VCVTUDQ2PDZrr, X86::VCVTUDQ2PDZrmb, TB_BCAST_SD},
+  {X86::VCVTUDQ2PHZ128rr, X86::VCVTUDQ2PHZ128rmb, TB_BCAST_SH},
+  {X86::VCVTUDQ2PHZ256rr, X86::VCVTUDQ2PHZ256rmb, TB_BCAST_SH},
+  {X86::VCVTUDQ2PHZrr, X86::VCVTUDQ2PHZrmb, TB_BCAST_SH},
+  {X86::VCVTUDQ2PSZ128rr, X86::VCVTUDQ2PSZ128rmb, TB_BCAST_SS},
+  {X86::VCVTUDQ2PSZ256rr, X86::VCVTUDQ2PSZ256rmb, TB_BCAST_SS},
+  {X86::VCVTUDQ2PSZrr, X86::VCVTUDQ2PSZrmb, TB_BCAST_SS},
+  {X86::VCVTUQQ2PDZ128rr, X86::VCVTUQQ2PDZ128rmb, TB_BCAST_SD},
+  {X86::VCVTUQQ2PDZ256rr, X86::VCVTUQQ2PDZ256rmb, TB_BCAST_SD},
+  {X86::VCVTUQQ2PDZrr, X86::VCVTUQQ2PDZrmb, TB_BCAST_SD},
+  {X86::VCVTUQQ2PHZ128rr, X86::VCVTUQQ2PHZ128rmb, TB_BCAST_SH},
+  {X86::VCVTUQQ2PHZ256rr, X86::VCVTUQQ2PHZ256rmb, TB_BCAST_SH},
+  {X86::VCVTUQQ2PHZrr, X86::VCVTUQQ2PHZrmb, TB_BCAST_SH},
+  {X86::VCVTUQQ2PSZ128rr, X86::VCVTUQQ2PSZ128rmb, TB_BCAST_SS},
+  {X86::VCVTUQQ2PSZ256rr, X86::VCVTUQQ2PSZ256rmb, TB_BCAST_SS},
+  {X86::VCVTUQQ2PSZrr, X86::VCVTUQQ2PSZrmb, TB_BCAST_SS},
+  {X86::VCVTUW2PHZ128rr, X86::VCVTUW2PHZ128rmb, TB_BCAST_SH},
+  {X86::VCVTUW2PHZ256rr, X86::VCVTUW2PHZ256rmb, TB_BCAST_SH},
+  {X86::VCVTUW2PHZrr, X86::VCVTUW2PHZrmb, TB_BCAST_SH},
+  {X86::VCVTW2PHZ128rr, X86::VCVTW2PHZ128rmb, TB_BCAST_SH},
+  {X86::VCVTW2PHZ256rr, X86::VCVTW2PHZ256rmb, TB_BCAST_SH},
+  {X86::VCVTW2PHZrr, X86::VCVTW2PHZrmb, TB_BCAST_SH},
+  {X86::VEXP2PDZr, X86::VEXP2PDZmb, TB_BCAST_SD},
+  {X86::VEXP2PSZr, X86::VEXP2PSZmb, TB_BCAST_SS},
+  {X86::VFPCLASSPDZ128rr, X86::VFPCLASSPDZ128rmb, TB_BCAST_SD},
+  {X86::VFPCLASSPDZ256rr, X86::VFPCLASSPDZ256rmb, TB_BCAST_SD},
+  {X86::VFPCLASSPDZrr, X86::VFPCLASSPDZrmb, TB_BCAST_SD},
+  {X86::VFPCLASSPHZ128rr, X86::VFPCLASSPHZ128rmb, TB_BCAST_SH},
+  {X86::VFPCLASSPHZ256rr, X86::VFPCLASSPHZ256rmb, TB_BCAST_SH},
+  {X86::VFPCLASSPHZrr, X86::VFPCLASSPHZrmb, TB_BCAST_SH},
+  {X86::VFPCLASSPSZ128rr, X86::VFPCLASSPSZ128rmb, TB_BCAST_SS},
+  {X86::VFPCLASSPSZ256rr, X86::VFPCLASSPSZ256rmb, TB_BCAST_SS},
+  {X86::VFPCLASSPSZrr, X86::VFPCLASSPSZrmb, TB_BCAST_SS},
+  {X86::VGETEXPPDZ128r, X86::VGETEXPPDZ128mb, TB_BCAST_SD},
+  {X86::VGETEXPPDZ256r, X86::VGETEXPPDZ256mb, TB_BCAST_SD},
+  {X86::VGETEXPPDZr, X86::VGETEXPPDZmb, TB_BCAST_SD},
+  {X86::VGETEXPPHZ128r, X86::VGETEXPPHZ128mb, TB_BCAST_SH},
+  {X86::VGETEXPPHZ256r, X86::VGETEXPPHZ256mb, TB_BCAST_SH},
+  {X86::VGETEXPPHZr, X86::VGETEXPPHZmb, TB_BCAST_SH},
+  {X86::VGETEXPPSZ128r, X86::VGETEXPPSZ128mb, TB_BCAST_SS},
+  {X86::VGETEXPPSZ256r, X86::VGETEXPPSZ256mb, TB_BCAST_SS},
+  {X86::VGETEXPPSZr, X86::VGETEXPPSZmb, TB_BCAST_SS},
+  {X86::VGETMANTPDZ128rri, X86::VGETMANTPDZ128rmbi, TB_BCAST_SD},
+  {X86::VGETMANTPDZ256rri, X86::VGETMANTPDZ256rmbi, TB_BCAST_SD},
+  {X86::VGETMANTPDZrri, X86::VGETMANTPDZrmbi, TB_BCAST_SD},
+  {X86::VGETMANTPHZ128rri, X86::VGETMANTPHZ128rmbi, TB_BCAST_SH},
+  {X86::VGETMANTPHZ256rri, X86::VGETMANTPHZ256rmbi, TB_BCAST_SH},
+  {X86::VGETMANTPHZrri, X86::VGETMANTPHZrmbi, TB_BCAST_SH},
+  {X86::VGETMANTPSZ128rri, X86::VGETMANTPSZ128rmbi, TB_BCAST_SS},
+  {X86::VGETMANTPSZ256rri, X86::VGETMANTPSZ256rmbi, TB_BCAST_SS},
+  {X86::VGETMANTPSZrri, X86::VGETMANTPSZrmbi, TB_BCAST_SS},
+  {X86::VPABSDZ128rr, X86::VPABSDZ128rmb, TB_BCAST_D},
+  {X86::VPABSDZ256rr, X86::VPABSDZ256rmb, TB_BCAST_D},
+  {X86::VPABSDZrr, X86::VPABSDZrmb, TB_BCAST_D},
+  {X86::VPABSQZ128rr, X86::VPABSQZ128rmb, TB_BCAST_Q},
+  {X86::VPABSQZ256rr, X86::VPABSQZ256rmb, TB_BCAST_Q},
+  {X86::VPABSQZrr, X86::VPABSQZrmb, TB_BCAST_Q},
+  {X86::VPCONFLICTDZ128rr, X86::VPCONFLICTDZ128rmb, TB_BCAST_D},
+  {X86::VPCONFLICTDZ256rr, X86::VPCONFLICTDZ256rmb, TB_BCAST_D},
+  {X86::VPCONFLICTDZrr, X86::VPCONFLICTDZrmb, TB_BCAST_D},
+  {X86::VPCONFLICTQZ128rr, X86::VPCONFLICTQZ128rmb, TB_BCAST_Q},
+  {X86::VPCONFLICTQZ256rr, X86::VPCONFLICTQZ256rmb, TB_BCAST_Q},
+  {X86::VPCONFLICTQZrr, X86::VPCONFLICTQZrmb, TB_BCAST_Q},
+  {X86::VPERMILPDZ128ri, X86::VPERMILPDZ128mbi, TB_BCAST_SD},
+  {X86::VPERMILPDZ256ri, X86::VPERMILPDZ256mbi, TB_BCAST_SD},
+  {X86::VPERMILPDZri, X86::VPERMILPDZmbi, TB_BCAST_SD},
+  {X86::VPERMILPSZ128ri, X86::VPERMILPSZ128mbi, TB_BCAST_SS},
+  {X86::VPERMILPSZ256ri, X86::VPERMILPSZ256mbi, TB_BCAST_SS},
+  {X86::VPERMILPSZri, X86::VPERMILPSZmbi, TB_BCAST_SS},
+  {X86::VPERMPDZ256ri, X86::VPERMPDZ256mbi, TB_BCAST_SD},
+  {X86::VPERMPDZri, X86::VPERMPDZmbi, TB_BCAST_SD},
+  {X86::VPERMQZ256ri, X86::VPERMQZ256mbi, TB_BCAST_Q},
+  {X86::VPERMQZri, X86::VPERMQZmbi, TB_BCAST_Q},
+  {X86::VPLZCNTDZ128rr, X86::VPLZCNTDZ128rmb, TB_BCAST_D},
+  {X86::VPLZCNTDZ256rr, X86::VPLZCNTDZ256rmb, TB_BCAST_D},
+  {X86::VPLZCNTDZrr, X86::VPLZCNTDZrmb, TB_BCAST_D},
+  {X86::VPLZCNTQZ128rr, X86::VPLZCNTQZ128rmb, TB_BCAST_Q},
+  {X86::VPLZCNTQZ256rr, X86::VPLZCNTQZ256rmb, TB_BCAST_Q},
+  {X86::VPLZCNTQZrr, X86::VPLZCNTQZrmb, TB_BCAST_Q},
+  {X86::VPOPCNTDZ128rr, X86::VPOPCNTDZ128rmb, TB_BCAST_D},
+  {X86::VPOPCNTDZ256rr, X86::VPOPCNTDZ256rmb, TB_BCAST_D},
+  {X86::VPOPCNTDZrr, X86::VPOPCNTDZrmb, TB_BCAST_D},
+  {X86::VPOPCNTQZ128rr, X86::VPOPCNTQZ128rmb, TB_BCAST_Q},
+  {X86::VPOPCNTQZ256rr, X86::VPOPCNTQZ256rmb, TB_BCAST_Q},
+  {X86::VPOPCNTQZrr, X86::VPOPCNTQZrmb, TB_BCAST_Q},
+  {X86::VPROLDZ128ri, X86::VPROLDZ128mbi, TB_BCAST_D},
+  {X86::VPROLDZ256ri, X86::VPROLDZ256mbi, TB_BCAST_D},
+  {X86::VPROLDZri, X86::VPROLDZmbi, TB_BCAST_D},
+  {X86::VPROLQZ128ri, X86::VPROLQZ128mbi, TB_BCAST_Q},
+  {X86::VPROLQZ256ri, X86::VPROLQZ256mbi, TB_BCAST_Q},
+  {X86::VPROLQZri, X86::VPROLQZmbi, TB_BCAST_Q},
+  {X86::VPRORDZ128ri, X86::VPRORDZ128mbi, TB_BCAST_D},
+  {X86::VPRORDZ256ri, X86::VPRORDZ256mbi, TB_BCAST_D},
+  {X86::VPRORDZri, X86::VPRORDZmbi, TB_BCAST_D},
+  {X86::VPRORQZ128ri, X86::VPRORQZ128mbi, TB_BCAST_Q},
+  {X86::VPRORQZ256ri, X86::VPRORQZ256mbi, TB_BCAST_Q},
+  {X86::VPRORQZri, X86::VPRORQZmbi, TB_BCAST_Q},
+  {X86::VPSHUFDZ128ri, X86::VPSHUFDZ128mbi, TB_BCAST_D},
+  {X86::VPSHUFDZ256ri, X86::VPSHUFDZ256mbi, TB_BCAST_D},
+  {X86::VPSHUFDZri, X86::VPSHUFDZmbi, TB_BCAST_D},
+  {X86::VPSLLDZ128ri, X86::VPSLLDZ128mbi, TB_BCAST_D},
+  {X86::VPSLLDZ256ri, X86::VPSLLDZ256mbi, TB_BCAST_D},
+  {X86::VPSLLDZri, X86::VPSLLDZmbi, TB_BCAST_D},
+  {X86::VPSLLQZ128ri, X86::VPSLLQZ128mbi, TB_BCAST_Q},
+  {X86::VPSLLQZ256ri, X86::VPSLLQZ256mbi, TB_BCAST_Q},
+  {X86::VPSLLQZri, X86::VPSLLQZmbi, TB_BCAST_Q},
+  {X86::VPSRADZ128ri, X86::VPSRADZ128mbi, TB_BCAST_D},
+  {X86::VPSRADZ256ri, X86::VPSRADZ256mbi, TB_BCAST_D},
+  {X86::VPSRADZri, X86::VPSRADZmbi, TB_BCAST_D},
+  {X86::VPSRAQZ128ri, X86::VPSRAQZ128mbi, TB_BCAST_Q},
+  {X86::VPSRAQZ256ri, X86::VPSRAQZ256mbi, TB_BCAST_Q},
+  {X86::VPSRAQZri, X86::VPSRAQZmbi, TB_BCAST_Q},
+  {X86::VPSRLDZ128ri, X86::VPSRLDZ128mbi, TB_BCAST_D},
+  {X86::VPSRLDZ256ri, X86::VPSRLDZ256mbi, TB_BCAST_D},
+  {X86::VPSRLDZri, X86::VPSRLDZmbi, TB_BCAST_D},
+  {X86::VPSRLQZ128ri, X86::VPSRLQZ128mbi, TB_BCAST_Q},
+  {X86::VPSRLQZ256ri, X86::VPSRLQZ256mbi, TB_BCAST_Q},
+  {X86::VPSRLQZri, X86::VPSRLQZmbi, TB_BCAST_Q},
+  {X86::VRCP14PDZ128r, X86::VRCP14PDZ128mb, TB_BCAST_SD},
+  {X86::VRCP14PDZ256r, X86::VRCP14PDZ256mb, TB_BCAST_SD},
+  {X86::VRCP14PDZr, X86::VRCP14PDZmb, TB_BCAST_SD},
+  {X86::VRCP14PSZ128r, X86::VRCP14PSZ128mb, TB_BCAST_SS},
+  {X86::VRCP14PSZ256r, X86::VRCP14PSZ256mb, TB_BCAST_SS},
+  {X86::VRCP14PSZr, X86::VRCP14PSZmb, TB_BCAST_SS},
+  {X86::VRCP28PDZr, X86::VRCP28PDZmb, TB_BCAST_SD},
+  {X86::VRCP28PSZr, X86::VRCP28PSZmb, TB_BCAST_SS},
+  {X86::VRCPPHZ128r, X86::VRCPPHZ128mb, TB_BCAST_SH},
+  {X86::VRCPPHZ256r, X86::VRCPPHZ256mb, TB_BCAST_SH},
+  {X86::VRCPPHZr, X86::VRCPPHZmb, TB_BCAST_SH},
+  {X86::VREDUCEPDZ128rri, X86::VREDUCEPDZ128rmbi, TB_BCAST_SD},
+  {X86::VREDUCEPDZ256rri, X86::VREDUCEPDZ256rmbi, TB_BCAST_SD},
+  {X86::VREDUCEPDZrri, X86::VREDUCEPDZrmbi, TB_BCAST_SD},
+  {X86::VREDUCEPHZ128rri, X86::VREDUCEPHZ128rmbi, TB_BCAST_SH},
+  {X86::VREDUCEPHZ256rri, X86::VREDUCEPHZ256rmbi, TB_BCAST_SH},
+  {X86::VREDUCEPHZrri, X86::VREDUCEPHZrmbi, TB_BCAST_SH},
+  {X86::VREDUCEPSZ128rri, X86::VREDUCEPSZ128rmbi, TB_BCAST_SS},
+  {X86::VREDUCEPSZ256rri, X86::VREDUCEPSZ256rmbi, TB_BCAST_SS},
+  {X86::VREDUCEPSZrri, X86::VREDUCEPSZrmbi, TB_BCAST_SS},
+  {X86::VRNDSCALEPDZ128rri, X86::VRNDSCALEPDZ128rmbi, TB_BCAST_SD},
+  {X86::VRNDSCALEPDZ256rri, X86::VRNDSCALEPDZ256rmbi, TB_BCAST_SD},
+  {X86::VRNDSCALEPDZrri, X86::VRNDSCALEPDZrmbi, TB_BCAST_SD},
+  {X86::VRNDSCALEPHZ128rri, X86::VRNDSCALEPHZ128rmbi, TB_BCAST_SH},
+  {X86::VRNDSCALEPHZ256rri, X86::VRNDSCALEPHZ256rmbi, TB_BCAST_SH},
+  {X86::VRNDSCALEPHZrri, X86::VRNDSCALEPHZrmbi, TB_BCAST_SH},
+  {X86::VRNDSCALEPSZ128rri, X86::VRNDSCALEPSZ128rmbi, TB_BCAST_SS},
+  {X86::VRNDSCALEPSZ256rri, X86::VRNDSCALEPSZ256rmbi, TB_BCAST_SS},
+  {X86::VRNDSCALEPSZrri, X86::VRNDSCALEPSZrmbi, TB_BCAST_SS},
+  {X86::VRSQRT14PDZ128r, X86::VRSQRT14PDZ128mb, TB_BCAST_SD},
+  {X86::VRSQRT14PDZ256r, X86::VRSQRT14PDZ256mb, TB_BCAST_SD},
+  {X86::VRSQRT14PDZr, X86::VRSQRT14PDZmb, TB_BCAST_SD},
+  {X86::VRSQRT14PSZ128r, X86::VRSQRT14PSZ128mb, TB_BCAST_SS},
+  {X86::VRSQRT14PSZ256r, X86::VRSQRT14PSZ256mb, TB_BCAST_SS},
+  {X86::VRSQRT14PSZr, X86::VRSQRT14PSZmb, TB_BCAST_SS},
+  {X86::VRSQRT28PDZr, X86::VRSQRT28PDZmb, TB_BCAST_SD},
+  {X86::VRSQRT28PSZr, X86::VRSQRT28PSZmb, TB_BCAST_SS},
+  {X86::VRSQRTPHZ128r, X86::VRSQRTPHZ128mb, TB_BCAST_SH},
+  {X86::VRSQRTPHZ256r, X86::VRSQRTPHZ256mb, TB_BCAST_SH},
+  {X86::VRSQRTPHZr, X86::VRSQRTPHZmb, TB_BCAST_SH},
+  {X86::VSQRTPDZ128r, X86::VSQRTPDZ128mb, TB_BCAST_SD},
+  {X86::VSQRTPDZ256r, X86::VSQRTPDZ256mb, TB_BCAST_SD},
+  {X86::VSQRTPDZr, X86::VSQRTPDZmb, TB_BCAST_SD},
+  {X86::VSQRTPHZ128r, X86::VSQRTPHZ128mb, TB_BCAST_SH},
+  {X86::VSQRTPHZ256r, X86::VSQRTPHZ256mb, TB_BCAST_SH},
+  {X86::VSQRTPHZr, X86::VSQRTPHZmb, TB_BCAST_SH},
+  {X86::VSQRTPSZ128r, X86::VSQRTPSZ128mb, TB_BCAST_SS},
+  {X86::VSQRTPSZ256r, X86::VSQRTPSZ256mb, TB_BCAST_SS},
+  {X86::VSQRTPSZr, X86::VSQRTPSZmb, TB_BCAST_SS},
+};
+
+static const X86FoldTableEntry BroadcastTable2[] = {
+  {X86::VADDPDZ128rr, X86::VADDPDZ128rmb, TB_BCAST_SD},
+  {X86::VADDPDZ256rr, X86::VADDPDZ256rmb, TB_BCAST_SD},
+  {X86::VADDPDZrr, X86::VADDPDZrmb, TB_BCAST_SD},
+  {X86::VADDPHZ128rr, X86::VADDPHZ128rmb, TB_BCAST_SH},
+  {X86::VADDPHZ256rr, X86::VADDPHZ256rmb, TB_BCAST_SH},
+  {X86::VADDPHZrr, X86::VADDPHZrmb, TB_BCAST_SH},
+  {X86::VADDPSZ128rr, X86::VADDPSZ128rmb, TB_BCAST_SS},
+  {X86::VADDPSZ256rr, X86::VADDPSZ256rmb, TB_BCAST_SS},
+  {X86::VADDPSZrr, X86::VADDPSZrmb, TB_BCAST_SS},
+  {X86::VALIGNDZ128rri, X86::VALIGNDZ128rmbi, TB_BCAST_D},
+  {X86::VALIGNDZ256rri, X86::VALIGNDZ256rmbi, TB_BCAST_D},
+  {X86::VALIGNDZrri, X86::VALIGNDZrmbi, TB_BCAST_D},
+  {X86::VALIGNQZ128rri, X86::VALIGNQZ128rmbi, TB_BCAST_Q},
+  {X86::VALIGNQZ256rri, X86::VALIGNQZ256rmbi, TB_BCAST_Q},
+  {X86::VALIGNQZrri, X86::VALIGNQZrmbi, TB_BCAST_Q},
+  {X86::VANDNPDZ128rr, X86::VANDNPDZ128rmb, TB_BCAST_SD},
+  {X86::VANDNPDZ256rr, X86::VANDNPDZ256rmb, TB_BCAST_SD},
+  {X86::VANDNPDZrr, X86::VANDNPDZrmb, TB_BCAST_SD},
+  {X86::VANDNPSZ128rr, X86::VANDNPSZ128rmb, TB_BCAST_SS},
+  {X86::VANDNPSZ256rr, X86::VANDNPSZ256rmb, TB_BCAST_SS},
+  {X86::VANDNPSZrr, X86::VANDNPSZrmb, TB_BCAST_SS},
+  {X86::VANDPDZ128rr, X86::VANDPDZ128rmb, TB_BCAST_SD},
+  {X86::VANDPDZ256rr, X86::VANDPDZ256rmb, TB_BCAST_SD},
+  {X86::VANDPDZrr, X86::VANDPDZrmb, TB_BCAST_SD},
+  {X86::VANDPSZ128rr, X86::VANDPSZ128rmb, TB_BCAST_SS},
+  {X86::VANDPSZ256rr, X86::VANDPSZ256rmb, TB_BCAST_SS},
+  {X86::VANDPSZrr, X86::VANDPSZrmb, TB_BCAST_SS},
+  {X86::VBLENDMPDZ128rr, X86::VBLENDMPDZ128rmb, TB_BCAST_SD},
+  {X86::VBLENDMPDZ256rr, X86::VBLENDMPDZ256rmb, TB_BCAST_SD},
+  {X86::VBLENDMPDZrr, X86::VBLENDMPDZrmb, TB_BCAST_SD},
+  {X86::VBLENDMPSZ128rr, X86::VBLENDMPSZ128rmb, TB_BCAST_SS},
+  {X86::VBLENDMPSZ256rr, X86::VBLENDMPSZ256rmb, TB_BCAST_SS},
+  {X86::VBLENDMPSZrr, X86::VBLENDMPSZrmb, TB_BCAST_SS},
+  {X86::VCMPPDZ128rri, X86::VCMPPDZ128rmbi, TB_BCAST_SD},
+  {X86::VCMPPDZ256rri, X86::VCMPPDZ256rmbi, TB_BCAST_SD},
+  {X86::VCMPPDZrri, X86::VCMPPDZrmbi, TB_BCAST_SD},
+  {X86::VCMPPHZ128rri, X86::VCMPPHZ128rmbi, TB_BCAST_SH},
+  {X86::VCMPPHZ256rri, X86::VCMPPHZ256rmbi, TB_BCAST_SH},
+  {X86::VCMPPHZrri, X86::VCMPPHZrmbi, TB_BCAST_SH},
+  {X86::VCMPPSZ128rri, X86::VCMPPSZ128rmbi, TB_BCAST_SS},
+  {X86::VCMPPSZ256rri, X86::VCMPPSZ256rmbi, TB_BCAST_SS},
+  {X86::VCMPPSZrri, X86::VCMPPSZrmbi, TB_BCAST_SS},
+  {X86::VCVTDQ2PDZ128rrkz, X86::VCVTDQ2PDZ128rmbkz, TB_BCAST_SD},
+  {X86::VCVTDQ2PDZ256rrkz, X86::VCVTDQ2PDZ256rmbkz, TB_BCAST_SD},
+  {X86::VCVTDQ2PDZrrkz, X86::VCVTDQ2PDZrmbkz, TB_BCAST_SD},
+  {X86::VCVTDQ2PHZ128rrkz, X86::VCVTDQ2PHZ128rmbkz, TB_BCAST_SH},
+  {X86::VCVTDQ2PHZ256rrkz, X86::VCVTDQ2PHZ256rmbkz, TB_BCAST_SH},
+  {X86::VCVTDQ2PHZrrkz, X86::VCVTDQ2PHZrmbkz, TB_BCAST_SH},
+  {X86::VCVTDQ2PSZ128rrkz, X86::VCVTDQ2PSZ128rmbkz, TB_BCAST_SS},
+  {X86::VCVTDQ2PSZ256rrkz, X86::VCVTDQ2PSZ256rmbkz, TB_BCAST_SS},
+  {X86::VCVTDQ2PSZrrkz, X86::VCVTDQ2PSZrmbkz, TB_BCAST_SS},
+  {X86::VCVTNE2PS2BF16Z128rr, X86::VCVTNE2PS2BF16Z128rmb, TB_BCAST_SS},
+  {X86::VCVTNE2PS2BF16Z256rr, X86::VCVTNE2PS2BF16Z256rmb, TB_BCAST_SS},
+  {X86::VCVTNE2PS2BF16Zrr, X86::VCVTNE2PS2BF16Zrmb, TB_BCAST_SS},
+  {X86::VCVTNEPS2BF16Z128rrkz, X86::VCVTNEPS2BF16Z128rmbkz, TB_BCAST_SS},
+  {X86::VCVTNEPS2BF16Z256rrkz, X86::VCVTNEPS2BF16Z256rmbkz, TB_BCAST_SS},
+  {X86::VCVTNEPS2BF16Zrrkz, X86::VCVTNEPS2BF16Zrmbkz, TB_BCAST_SS},
+  {X86::VCVTPD2DQZ128rrkz, X86::VCVTPD2DQZ128rmbkz, TB_BCAST_SD},
+  {X86::VCVTPD2DQZ256rrkz, X86::VCVTPD2DQZ256rmbkz, TB_BCAST_SD},
+  {X86::VCVTPD2DQZrrkz, X86::VCVTPD2DQZrmbkz, TB_BCAST_SD},
+  {X86::VCVTPD2PHZ128rrkz, X86::VCVTPD2PHZ128rmbkz, TB_BCAST_SD},
+  {X86::VCVTPD2PHZ256rrkz, X86::VCVTPD2PHZ256rmbkz, TB_BCAST_SD},
+  {X86::VCVTPD2PHZrrkz, X86::VCVTPD2PHZrmbkz, TB_BCAST_SD},
+  {X86::VCVTPD2PSZ128rrkz, X86::VCVTPD2PSZ128rmbkz, TB_BCAST_SS},
+  {X86::VCVTPD2PSZ256rrkz, X86::VCVTPD2PSZ256rmbkz, TB_BCAST_SS},
+  {X86::VCVTPD2PSZrrkz, X86::VCVTPD2PSZrmbkz, TB_BCAST_SS},
+  {X86::VCVTPD2QQZ128rrkz, X86::VCVTPD2QQZ128rmbkz, TB_BCAST_SD},
+  {X86::VCVTPD2QQZ256rrkz, X86::VCVTPD2QQZ256rmbkz, TB_BCAST_SD},
+  {X86::VCVTPD2QQZrrkz, X86::VCVTPD2QQZrmbkz, TB_BCAST_SD},
+  {X86::VCVTPD2UDQZ128rrkz, X86::VCVTPD2UDQZ128rmbkz, TB_BCAST_SD},
+  {X86::VCVTPD2UDQZ256rrkz, X86::VCVTPD2UDQZ256rmbkz, TB_BCAST_SD},
+  {X86::VCVTPD2UDQZrrkz, X86::VCVTPD2UDQZrmbkz, TB_BCAST_SD},
+  {X86::VCVTPD2UQQZ128rrkz, X86::VCVTPD2UQQZ128rmbkz, TB_BCAST_SD},
+  {X86::VCVTPD2UQQZ256rrkz, X86::VCVTPD2UQQZ256rmbkz, TB_BCAST_SD},
+  {X86::VCVTPD2UQQZrrkz, X86::VCVTPD2UQQZrmbkz, TB_BCAST_SD},
+  {X86::VCVTPH2DQZ128rrkz, X86::VCVTPH2DQZ128rmbkz, TB_BCAST_SH},
+  {X86::VCVTPH2DQZ256rrkz, X86::VCVTPH2DQZ256rmbkz, TB_BCAST_SH},
+  {X86::VCVTPH2DQZrrkz, X86::VCVTPH2DQZrmbkz, TB_BCAST_SH},
+  {X86::VCVTPH2PDZ128rrkz, X86::VCVTPH2PDZ128rmbkz, TB_BCAST_SD},
+  {X86::VCVTPH2PDZ256rrkz, X86::VCVTPH2PDZ256rmbkz, TB_BCAST_SD},
+  {X86::VCVTPH2PDZrrkz, X86::VCVTPH2PDZrmbkz, TB_BCAST_SD},
+  {X86::VCVTPH2PSXZ128rrkz, X86::VCVTPH2PSXZ128rmbkz, TB_BCAST_SS},
+  {X86::VCVTPH2PSXZ256rrkz, X86::VCVTPH2PSXZ256rmbkz, TB_BCAST_SS},
+  {X86::VCVTPH2PSXZrrkz, X86::VCVTPH2PSXZrmbkz, TB_BCAST_SS},
+  {X86::VCVTPH2QQZ128rrkz, X86::VCVTPH2QQZ128rmbkz, TB_BCAST_SH},
+  {X86::VCVTPH2QQZ256rrkz, X86::VCVTPH2QQZ256rmbkz, TB_BCAST_SH},
+  {X86::VCVTPH2QQZrrkz, X86::VCVTPH2QQZrmbkz, TB_BCAST_SH},
+  {X86::VCVTPH2UDQZ128rrkz, X86::VCVTPH2UDQZ128rmbkz, TB_BCAST_SH},
+  {X86::VCVTPH2UDQZ256rrkz, X86::VCVTPH2UDQZ256rmbkz, TB_BCAST_SH},
+  {X86::VCVTPH2UDQZrrkz, X86::VCVTPH2UDQZrmbkz, TB_BCAST_SH},
+  {X86::VCVTPH2UQQZ128rrkz, X86::VCVTPH2UQQZ128rmbkz, TB_BCAST_SH},
+  {X86::VCVTPH2UQQZ256rrkz, X86::VCVTPH2UQQZ256rmbkz, TB_BCAST_SH},
+  {X86::VCVTPH2UQQZrrkz, X86::VCVTPH2UQQZrmbkz, TB_BCAST_SH},
+  {X86::VCVTPH2UWZ128rrkz, X86::VCVTPH2UWZ128rmbkz, TB_BCAST_SH},
+  {X86::VCVTPH2UWZ256rrkz, X86::VCVTPH2UWZ256rmbkz, TB_BCAST_SH},
+  {X86::VCVTPH2UWZrrkz, X86::VCVTPH2UWZrmbkz, TB_BCAST_SH},
+  {X86::VCVTPH2WZ128rrkz, X86::VCVTPH2WZ128rmbkz, TB_BCAST_SH},
+  {X86::VCVTPH2WZ256rrkz, X86::VCVTPH2WZ256rmbkz, TB_BCAST_SH},
+  {X86::VCVTPH2WZrrkz, X86::VCVTPH2WZrmbkz, TB_BCAST_SH},
+  {X86::VCVTPS2DQZ128rrkz, X86::VCVTPS2DQZ128rmbkz, TB_BCAST_SS},
+  {X86::VCVTPS2DQZ256rrkz, X86::VCVTPS2DQZ256rmbkz, TB_BCAST_SS},
+  {X86::VCVTPS2DQZrrkz, X86::VCVTPS2DQZrmbkz, TB_BCAST_SS},
+  {X86::VCVTPS2PDZ128rrkz, X86::VCVTPS2PDZ128rmbkz, TB_BCAST_SS},
+  {X86::VCVTPS2PDZ256rrkz, X86::VCVTPS2PDZ256rmbkz, TB_BCAST_SS},
+  {X86::VCVTPS2PDZrrkz, X86::VCVTPS2PDZrmbkz, TB_BCAST_SS},
+  {X86::VCVTPS2PHXZ128rrkz, X86::VCVTPS2PHXZ128rmbkz, TB_BCAST_SS},
+  {X86::VCVTPS2PHXZ256rrkz, X86::VCVTPS2PHXZ256rmbkz, TB_BCAST_SS},
+  {X86::VCVTPS2PHXZrrkz, X86::VCVTPS2PHXZrmbkz, TB_BCAST_SS},
+  {X86::VCVTPS2QQZ128rrkz, X86::VCVTPS2QQZ128rmbkz, TB_BCAST_SS},
+  {X86::VCVTPS2QQZ256rrkz, X86::VCVTPS2QQZ256rmbkz, TB_BCAST_SS},
+  {X86::VCVTPS2QQZrrkz, X86::VCVTPS2QQZrmbkz, TB_BCAST_SS},
+  {X86::VCVTPS2UDQZ128rrkz, X86::VCVTPS2UDQZ128rmbkz, TB_BCAST_SS},
+  {X86::VCVTPS2UDQZ256rrkz, X86::VCVTPS2UDQZ256rmbkz, TB_BCAST_SS},
+  {X86::VCVTPS2UDQZrrkz, X86::VCVTPS2UDQZrmbkz, TB_BCAST_SS},
+  {X86::VCVTPS2UQQZ128rrkz, X86::VCVTPS2UQQZ128rmbkz, TB_BCAST_SS},
+  {X86::VCVTPS2UQQZ256rrkz, X86::VCVTPS2UQQZ256rmbkz, TB_BCAST_SS},
+  {X86::VCVTPS2UQQZrrkz, X86::VCVTPS2UQQZrmbkz, TB_BCAST_SS},
+  {X86::VCVTQQ2PDZ128rrkz, X86::VCVTQQ2PDZ128rmbkz, TB_BCAST_SD},
+  {X86::VCVTQQ2PDZ256rrkz, X86::VCVTQQ2PDZ256rmbkz, TB_BCAST_SD},
+  {X86::VCVTQQ2PDZrrkz, X86::VCVTQQ2PDZrmbkz, TB_BCAST_SD},
+  {X86::VCVTQQ2PHZ128rrkz, X86::VCVTQQ2PHZ128rmbkz, TB_BCAST_SH},
+  {X86::VCVTQQ2PHZ256rrkz, X86::VCVTQQ2PHZ256rmbkz, TB_BCAST_SH},
+  {X86::VCVTQQ2PHZrrkz, X86::VCVTQQ2PHZrmbkz, TB_BCAST_SH},
+  {X86::VCVTQQ2PSZ128rrkz, X86::VCVTQQ2PSZ128rmbkz, TB_BCAST_SS},
+  {X86::VCVTQQ2PSZ256rrkz, X86::VCVTQQ2PSZ256rmbkz, TB_BCAST_SS},
+  {X86::VCVTQQ2PSZrrkz, X86::VCVTQQ2PSZrmbkz, TB_BCAST_SS},
+  {X86::VCVTTPD2DQZ128rrkz, X86::VCVTTPD2DQZ128rmbkz, TB_BCAST_SD},
+  {X86::VCVTTPD2DQZ256rrkz, X86::VCVTTPD2DQZ256rmbkz, TB_BCAST_SD},
+  {X86::VCVTTPD2DQZrrkz, X86::VCVTTPD2DQZrmbkz, TB_BCAST_SD},
+  {X86::VCVTTPD2QQZ128rrkz, X86::VCVTTPD2QQZ128rmbkz, TB_BCAST_SD},
+  {X86::VCVTTPD2QQZ256rrkz, X86::VCVTTPD2QQZ256rmbkz, TB_BCAST_SD},
+  {X86::VCVTTPD2QQZrrkz, X86::VCVTTPD2QQZrmbkz, TB_BCAST_SD},
+  {X86::VCVTTPD2UDQZ128rrkz, X86::VCVTTPD2UDQZ128rmbkz, TB_BCAST_SD},
+  {X86::VCVTTPD2UDQZ256rrkz, X86::VCVTTPD2UDQZ256rmbkz, TB_BCAST_SD},
+  {X86::VCVTTPD2UDQZrrkz, X86::VCVTTPD2UDQZrmbkz, TB_BCAST_SD},
+  {X86::VCVTTPD2UQQZ128rrkz, X86::VCVTTPD2UQQZ128rmbkz, TB_BCAST_SD},
+  {X86::VCVTTPD2UQQZ256rrkz, X86::VCVTTPD2UQQZ256rmbkz, TB_BCAST_SD},
+  {X86::VCVTTPD2UQQZrrkz, X86::VCVTTPD2UQQZrmbkz, TB_BCAST_SD},
+  {X86::VCVTTPH2DQZ128rrkz, X86::VCVTTPH2DQZ128rmbkz, TB_BCAST_SH},
+  {X86::VCVTTPH2DQZ256rrkz, X86::VCVTTPH2DQZ256rmbkz, TB_BCAST_SH},
+  {X86::VCVTTPH2DQZrrkz, X86::VCVTTPH2DQZrmbkz, TB_BCAST_SH},
+  {X86::VCVTTPH2QQZ128rrkz, X86::VCVTTPH2QQZ128rmbkz, TB_BCAST_SH},
+  {X86::VCVTTPH2QQZ256rrkz, X86::VCVTTPH2QQZ256rmbkz, TB_BCAST_SH},
+  {X86::VCVTTPH2QQZrrkz, X86::VCVTTPH2QQZrmbkz, TB_BCAST_SH},
+  {X86::VCVTTPH2UDQZ128rrkz, X86::VCVTTPH2UDQZ128rmbkz, TB_BCAST_SH},
+  {X86::VCVTTPH2UDQZ256rrkz, X86::VCVTTPH2UDQZ256rmbkz, TB_BCAST_SH},
+  {X86::VCVTTPH2UDQZrrkz, X86::VCVTTPH2UDQZrmbkz, TB_BCAST_SH},
+  {X86::VCVTTPH2UQQZ128rrkz, X86::VCVTTPH2UQQZ128rmbkz, TB_BCAST_SH},
+  {X86::VCVTTPH2UQQZ256rrkz, X86::VCVTTPH2UQQZ256rmbkz, TB_BCAST_SH},
+  {X86::VCVTTPH2UQQZrrkz, X86::VCVTTPH2UQQZrmbkz, TB_BCAST_SH},
+  {X86::VCVTTPH2UWZ128rrkz, X86::VCVTTPH2UWZ128rmbkz, TB_BCAST_SH},
+  {X86::VCVTTPH2UWZ256rrkz, X86::VCVTTPH2UWZ256rmbkz, TB_BCAST_SH},
+  {X86::VCVTTPH2UWZrrkz, X86::VCVTTPH2UWZrmbkz, TB_BCAST_SH},
+  {X86::VCVTTPH2WZ128rrkz, X86::VCVTTPH2WZ128rmbkz, TB_BCAST_SH},
+  {X86::VCVTTPH2WZ256rrkz, X86::VCVTTPH2WZ256rmbkz, TB_BCAST_SH},
+  {X86::VCVTTPH2WZrrkz, X86::VCVTTPH2WZrmbkz, TB_BCAST_SH},
+  {X86::VCVTTPS2DQZ128rrkz, X86::VCVTTPS2DQZ128rmbkz, TB_BCAST_SS},
+  {X86::VCVTTPS2DQZ256rrkz, X86::VCVTTPS2DQZ256rmbkz, TB_BCAST_SS},
+  {X86::VCVTTPS2DQZrrkz, X86::VCVTTPS2DQZrmbkz, TB_BCAST_SS},
+  {X86::VCVTTPS2QQZ128rrkz, X86::VCVTTPS2QQZ128rmbkz, TB_BCAST_SS},
+  {X86::VCVTTPS2QQZ256rrkz, X86::VCVTTPS2QQZ256rmbkz, TB_BCAST_SS},
+  {X86::VCVTTPS2QQZrrkz, X86::VCVTTPS2QQZrmbkz, TB_BCAST_SS},
+  {X86::VCVTTPS2UDQZ128rrkz, X86::VCVTTPS2UDQZ128rmbkz, TB_BCAST_SS},
+  {X86::VCVTTPS2UDQZ256rrkz, X86::VCVTTPS2UDQZ256rmbkz, TB_BCAST_SS},
+  {X86::VCVTTPS2UDQZrrkz, X86::VCVTTPS2UDQZrmbkz, TB_BCAST_SS},
+  {X86::VCVTTPS2UQQZ128rrkz, X86::VCVTTPS2UQQZ128rmbkz, TB_BCAST_SS},
+  {X86::VCVTTPS2UQQZ256rrkz, X86::VCVTTPS2UQQZ256rmbkz, TB_BCAST_SS},
+  {X86::VCVTTPS2UQQZrrkz, X86::VCVTTPS2UQQZrmbkz, TB_BCAST_SS},
+  {X86::VCVTUDQ2PDZ128rrkz, X86::VCVTUDQ2PDZ128rmbkz, TB_BCAST_SD},
+  {X86::VCVTUDQ2PDZ256rrkz, X86::VCVTUDQ2PDZ256rmbkz, TB_BCAST_SD},
+  {X86::VCVTUDQ2PDZrrkz, X86::VCVTUDQ2PDZrmbkz, TB_BCAST_SD},
+  {X86::VCVTUDQ2PHZ128rrkz, X86::VCVTUDQ2PHZ128rmbkz, TB_BCAST_SH},
+  {X86::VCVTUDQ2PHZ256rrkz, X86::VCVTUDQ2PHZ256rmbkz, TB_BCAST_SH},
+  {X86::VCVTUDQ2PHZrrkz, X86::VCVTUDQ2PHZrmbkz, TB_BCAST_SH},
+  {X86::VCVTUDQ2PSZ128rrkz, X86::VCVTUDQ2PSZ128rmbkz, TB_BCAST_SS},
+  {X86::VCVTUDQ2PSZ256rrkz, X86::VCVTUDQ2PSZ256rmbkz, TB_BCAST_SS},
+  {X86::VCVTUDQ2PSZrrkz, X86::VCVTUDQ2PSZrmbkz, TB_BCAST_SS},
+  {X86::VCVTUQQ2PDZ128rrkz, X86::VCVTUQQ2PDZ128rmbkz, TB_BCAST_SD},
+  {X86::VCVTUQQ2PDZ256rrkz, X86::VCVTUQQ2PDZ256rmbkz, TB_BCAST_SD},
+  {X86::VCVTUQQ2PDZrrkz, X86::VCVTUQQ2PDZrmbkz, TB_BCAST_SD},
+  {X86::VCVTUQQ2PHZ128rrkz, X86::VCVTUQQ2PHZ128rmbkz, TB_BCAST_SH},
+  {X86::VCVTUQQ2PHZ256rrkz, X86::VCVTUQQ2PHZ256rmbkz, TB_BCAST_SH},
+  {X86::VCVTUQQ2PHZrrkz, X86::VCVTUQQ2PHZrmbkz, TB_BCAST_SH},
+  {X86::VCVTUQQ2PSZ128rrkz, X86::VCVTUQQ2PSZ128rmbkz, TB_BCAST_SS},
+  {X86::VCVTUQQ2PSZ256rrkz, X86::VCVTUQQ2PSZ256rmbkz, TB_BCAST_SS},
+  {X86::VCVTUQQ2PSZrrkz, X86::VCVTUQQ2PSZrmbkz, TB_BCAST_SS},
+  {X86::VCVTUW2PHZ128rrkz, X86::VCVTUW2PHZ128rmbkz, TB_BCAST_SH},
+  {X86::VCVTUW2PHZ256rrkz, X86::VCVTUW2PHZ256rmbkz, TB_BCAST_SH},
+  {X86::VCVTUW2PHZrrkz, X86::VCVTUW2PHZrmbkz, TB_BCAST_SH},
+  {X86::VCVTW2PHZ128rrkz, X86::VCVTW2PHZ128rmbkz, TB_BCAST_SH},
+  {X86::VCVTW2PHZ256rrkz, X86::VCVTW2PHZ256rmbkz, TB_BCAST_SH},
+  {X86::VCVTW2PHZrrkz, X86::VCVTW2PHZrmbkz, TB_BCAST_SH},
+  {X86::VDIVPDZ128rr, X86::VDIVPDZ128rmb, TB_BCAST_SD},
+  {X86::VDIVPDZ256rr, X86::VDIVPDZ256rmb, TB_BCAST_SD},
+  {X86::VDIVPDZrr, X86::VDIVPDZrmb, TB_BCAST_SD},
+  {X86::VDIVPHZ128rr, X86::VDIVPHZ128rmb, TB_BCAST_SH},
+  {X86::VDIVPHZ256rr, X86::VDIVPHZ256rmb, TB_BCAST_SH},
+  {X86::VDIVPHZrr, X86::VDIVPHZrmb, TB_BCAST_SH},
+  {X86::VDIVPSZ128rr, X86::VDIVPSZ128rmb, TB_BCAST_SS},
+  {X86::VDIVPSZ256rr, X86::VDIVPSZ256rmb, TB_BCAST_SS},
+  {X86::VDIVPSZrr, X86::VDIVPSZrmb, TB_BCAST_SS},
+  {X86::VEXP2PDZrkz, X86::VEXP2PDZmbkz, TB_BCAST_SD},
+  {X86::VEXP2PSZrkz, X86::VEXP2PSZmbkz, TB_BCAST_SS},
+  {X86::VFCMULCPHZ128rr, X86::VFCMULCPHZ128rmb, TB_BCAST_SH},
+  {X86::VFCMULCPHZ256rr, X86::VFCMULCPHZ256rmb, TB_BCAST_SH},
+  {X86::VFCMULCPHZrr, X86::VFCMULCPHZrmb, TB_BCAST_SH},
+  {X86::VFMULCPHZ128rr, X86::VFMULCPHZ128rmb, TB_BCAST_SH},
+  {X86::VFMULCPHZ256rr, X86::VFMULCPHZ256rmb, TB_BCAST_SH},
+  {X86::VFMULCPHZrr, X86::VFMULCPHZrmb, TB_BCAST_SH},
----------------
KanRobert wrote:

Do you mean `TB_BCAST_SS` should be used for  FMULCPH/FCMULCPH or we should not add this entry at all? `TB_BCAST_SH` is newly added , so I am not clear how you will use it.


https://github.com/llvm/llvm-project/pull/73654


More information about the llvm-commits mailing list