================
@@ -1580,9 +1580,49 @@ OpFoldResult cir::VecExtractOp::fold(FoldAdaptor
adaptor) {
}
//===----------------------------------------------------------------------===//
-// VecShuffle
+// VecShuffleOp
//===----------------------------------------------------------------------===//
+OpFoldResult cir::VecShuffleOp::fold(FoldAdaptor adaptor) {
+ mlir::Attribute vec1 = adaptor.getVec1();
+ mlir::Attribute vec2 = adaptor.getVec2();
+
+ if (!mlir::isa_and_nonnull<cir::ConstVectorAttr>(vec1) ||
+ !mlir::isa_and_nonnull<cir::ConstVectorAttr>(vec2)) {
+ return {};
+ }
+
+ auto vec1Attr = mlir::cast<cir::ConstVectorAttr>(vec1);
+ auto vec2Attr = mlir::cast<cir::ConstVectorAttr>(vec2);
----------------
xlauko wrote:
```suggestion
auto vec1Attr =
mlir::dyn_cast_if_present<cir::ConstVectorAttr>(adaptor.getVec1());
auto vec2Attr =
mlir::dyn_cast_if_present<cir::ConstVectorAttr>(adaptor.getVec2()));
if (!vec1Attr || !vec2Attr)
return {};
```
https://github.com/llvm/llvm-project/pull/143260
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits