================ @@ -1395,6 +1395,26 @@ LogicalResult cir::VecCreateOp::verify() { return success(); } +//===----------------------------------------------------------------------===// +// VecExtractOp +//===----------------------------------------------------------------------===// + +OpFoldResult cir::VecExtractOp::fold(FoldAdaptor adaptor) { + const auto vectorAttr = + llvm::dyn_cast_if_present<cir::ConstVectorAttr>(adaptor.getVec()); + if (!vectorAttr) + return {}; + + const auto indexAttr = + llvm::dyn_cast_if_present<cir::IntAttr>(adaptor.getIndex()); + if (!indexAttr) + return {}; + + const mlir::ArrayAttr elements = vectorAttr.getElts(); + const int64_t index = indexAttr.getSInt(); ---------------- bcardosolopes wrote:
`getUInt()` makes more sense since indexes shouldn't be negative. https://github.com/llvm/llvm-project/pull/139304 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits