[clang] [llvm] [mlir] [x86][AVX-VNNI] Fix VPDPBXXD Argument Type (PR #159222)
Phoebe Wang via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 17 04:39:15 PDT 2025
================
@@ -594,6 +594,50 @@ static bool upgradeX86IntrinsicFunction(Function *F, StringRef Name,
return false; // No other 'x86.avx512.*'.
}
+ if (Name.consume_front("avx2.")) {
+ if (Name.starts_with("vpdpbssd.") || Name.starts_with("vpdpbssds.") ||
+ Name.starts_with("vpdpbsud.") || Name.starts_with("vpdpbsuds.") ||
+ Name.starts_with("vpdpbuud.") || Name.starts_with("vpdpbuuds.")) {
+ // Added in 21.1
+ ID = StringSwitch<Intrinsic::ID>(Name)
+ .Case("vpdpbssd.128", Intrinsic::x86_avx2_vpdpbssd_128)
+ .Case("vpdpbssd.256", Intrinsic::x86_avx2_vpdpbssd_256)
+ .Case("vpdpbssds.128", Intrinsic::x86_avx2_vpdpbssds_128)
+ .Case("vpdpbssds.256", Intrinsic::x86_avx2_vpdpbssds_256)
+ .Case("vpdpbsud.128", Intrinsic::x86_avx2_vpdpbsud_128)
+ .Case("vpdpbsud.256", Intrinsic::x86_avx2_vpdpbsud_256)
+ .Case("vpdpbsuds.128", Intrinsic::x86_avx2_vpdpbsuds_128)
+ .Case("vpdpbsuds.256", Intrinsic::x86_avx2_vpdpbsuds_256)
+ .Case("vpdpbuud.128", Intrinsic::x86_avx2_vpdpbuud_128)
+ .Case("vpdpbuud.256", Intrinsic::x86_avx2_vpdpbuud_256)
+ .Case("vpdpbuuds.128", Intrinsic::x86_avx2_vpdpbuuds_128)
+ .Case("vpdpbuuds.256", Intrinsic::x86_avx2_vpdpbuuds_256)
+ .Default(Intrinsic::not_intrinsic);
+ if (ID != Intrinsic::not_intrinsic)
+ return upgradeX86MultiplyAddBytes(F, ID, NewFn);
+ }
+ return false; // No other 'x86.avx2.*'
+ }
+
+ if (Name.consume_front("avx10.")) {
----------------
phoebewang wrote:
ditto.
https://github.com/llvm/llvm-project/pull/159222
More information about the llvm-commits
mailing list