[clang] [CIR] Upstream CIR codegen for blend x86 builtins (PR #174236)
Thibault Monnier via cfe-commits
cfe-commits at lists.llvm.org
Wed Jan 7 11:24:04 PST 2026
================
@@ -1275,18 +1275,30 @@ CIRGenFunction::emitX86BuiltinExpr(unsigned builtinID, const CallExpr *expr) {
}
case X86::BI__builtin_ia32_pmovqd512_mask:
case X86::BI__builtin_ia32_pmovwb512_mask:
+ cgm.errorNYI(expr->getSourceRange(),
+ std::string("unimplemented X86 builtin call: ") +
+ getContext().BuiltinInfo.getName(builtinID));
+ return mlir::Value{};
case X86::BI__builtin_ia32_pblendw128:
case X86::BI__builtin_ia32_blendpd:
case X86::BI__builtin_ia32_blendps:
case X86::BI__builtin_ia32_blendpd256:
case X86::BI__builtin_ia32_blendps256:
case X86::BI__builtin_ia32_pblendw256:
case X86::BI__builtin_ia32_pblendd128:
- case X86::BI__builtin_ia32_pblendd256:
- cgm.errorNYI(expr->getSourceRange(),
- std::string("unimplemented X86 builtin call: ") +
- getContext().BuiltinInfo.getName(builtinID));
- return mlir::Value{};
+ case X86::BI__builtin_ia32_pblendd256: {
+ uint32_t imm = getZExtIntValueFromConstOp(ops[2]);
+ unsigned numElts = cast<cir::VectorType>(ops[0].getType()).getSize();
+
+ int64_t indices[16];
----------------
Thibault-Monnier wrote:
Done, thanks.
https://github.com/llvm/llvm-project/pull/174236
More information about the cfe-commits
mailing list