[clang] [CIR] Implement folder for VecShuffleDynamicOp (PR #142315)

Henrich Lauko via cfe-commits cfe-commits at lists.llvm.org
Mon Jun 2 13:34:44 PDT 2025


================
@@ -1579,6 +1579,38 @@ OpFoldResult cir::VecExtractOp::fold(FoldAdaptor adaptor) {
 // VecShuffleDynamicOp
 //===----------------------------------------------------------------------===//
 
+OpFoldResult cir::VecShuffleDynamicOp::fold(FoldAdaptor adaptor) {
+  mlir::Attribute vec = adaptor.getVec();
+  mlir::Attribute indices = adaptor.getIndices();
+  if (mlir::isa_and_nonnull<cir::ConstVectorAttr>(vec) &&
+      mlir::isa_and_nonnull<cir::ConstVectorAttr>(indices)) {
+    auto vecAttr = mlir::cast<cir::ConstVectorAttr>(vec);
+    auto indicesAttr = mlir::cast<cir::ConstVectorAttr>(indices);
+    auto vecTy = cast<cir::VectorType>(vecAttr.getType());
----------------
xlauko wrote:

```suggestion
    auto vecTy = mlir::cast<cir::VectorType>(vecAttr.getType());
```

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


More information about the cfe-commits mailing list