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

Andy Kaylor via cfe-commits cfe-commits at lists.llvm.org
Mon Jan 5 10:24:49 PST 2026


================
@@ -487,6 +487,37 @@ class CIRBaseBuilderTy : public mlir::OpBuilder {
     return createAddrSpaceCast(src.getLoc(), src, newTy);
   }
 
+  //===--------------------------------------------------------------------===//
+  // Other Instructions
+  //===--------------------------------------------------------------------===//
+
+  mlir::Value createExtractElement(mlir::Location loc, mlir::Value vec,
+                                   mlir::Value idx) {
+    auto vecTy = mlir::cast<cir::VectorType>(vec.getType());
+    mlir::Type eltTy = vecTy.getElementType();
+    auto op = cir::VecExtractOp::create(*this, loc, eltTy, vec, idx);
+    return op.getResult();
----------------
andykaylor wrote:

```suggestion
    return cir::VecExtractOp::create(*this, loc, eltTy, vec, idx);
```
Operations that return a single result can be implicitly cast to `mlir::Value`.

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


More information about the cfe-commits mailing list