[clang] [CIR][X86]Implement handling for Select/Selectsh builtins in CIR (PR #174003)

Priyanshu Kumar via cfe-commits cfe-commits at lists.llvm.org
Thu Jan 1 21:26:57 PST 2026


================
@@ -1474,10 +1505,23 @@ CIRGenFunction::emitX86BuiltinExpr(unsigned builtinID, const CallExpr *expr) {
   case X86::BI__builtin_ia32_selectpd_128:
   case X86::BI__builtin_ia32_selectpd_256:
   case X86::BI__builtin_ia32_selectpd_512:
+    return emitX86Select(builder, getLoc(expr->getExprLoc()), ops[0], ops[1],
+                         ops[2]);
   case X86::BI__builtin_ia32_selectsh_128:
   case X86::BI__builtin_ia32_selectsbf_128:
   case X86::BI__builtin_ia32_selectss_128:
-  case X86::BI__builtin_ia32_selectsd_128:
+  case X86::BI__builtin_ia32_selectsd_128: {
+    mlir::Location loc = getLoc(expr->getExprLoc());
+    auto cirI64Ty =
+        cir::IntType::get(builder.getContext(), 64, /*isSigned=*/true);
+    mlir::Value idx0 = cir::ConstantOp::create(
----------------
Priyanshu3820 wrote:

done

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


More information about the cfe-commits mailing list