================
@@ -1492,26 +1492,125 @@ mlir::Value
CIRGenFunction::emitX86BuiltinExpr(unsigned builtinID,
case X86::BI__builtin_ia32_vpshrdw128:
case X86::BI__builtin_ia32_vpshrdw256:
case X86::BI__builtin_ia32_vpshrdw512:
+ cgm.errorNYI(expr->getSourceRange(),
+ std::string("unimplemented X86 builtin call: ") +
+ getContext().BuiltinInfo.getName(builtinID));
+ return {};
case X86::BI__builtin_ia32_reduce_fadd_pd512:
case X86::BI__builtin_ia32_reduce_fadd_ps512:
case X86::BI__builtin_ia32_reduce_fadd_ph512:
case X86::BI__builtin_ia32_reduce_fadd_ph256:
- case X86::BI__builtin_ia32_reduce_fadd_ph128:
+ case X86::BI__builtin_ia32_reduce_fadd_ph128: {
+ StringRef intrinsicName = "";
+ switch (builtinID) {
+ case X86::BI__builtin_ia32_reduce_fadd_pd512:
+ intrinsicName = "vector.reduce.fadd.v8f64";
+ break;
+ case X86::BI__builtin_ia32_reduce_fadd_ps512:
+ intrinsicName = "vector.reduce.fadd.v16f32";
+ break;
+ case X86::BI__builtin_ia32_reduce_fadd_ph512:
+ intrinsicName = "vector.reduce.fadd.v32f16";
+ break;
+ case X86::BI__builtin_ia32_reduce_fadd_ph256:
+ intrinsicName = "vector.reduce.fadd.v16f16";
+ break;
+ case X86::BI__builtin_ia32_reduce_fadd_ph128:
+ intrinsicName = "vector.reduce.fadd.v8f16";
+ break;
+ }
----------------
andykaylor wrote:
Is this necessary? These are all the same except for the type suffix. Can you
try generating the intrinsic call without the suffix and see if that works? I
think the suffix will get appended automatically when the call is translated to
LLVM IR if you omit it.
https://github.com/llvm/llvm-project/pull/171633
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits