================
@@ -642,21 +642,44 @@ OpFoldResult cir::ConstantOp::fold(FoldAdaptor
/*adaptor*/) {
// CastOp
//===----------------------------------------------------------------------===//
+static bool isFloatingPointCastKind(cir::CastKind kind) {
+ switch (kind) {
+ case cir::CastKind::floating:
+ case cir::CastKind::int_to_float:
+ case cir::CastKind::float_to_int:
+ case cir::CastKind::float_to_bool:
+ case cir::CastKind::bool_to_float:
+ case cir::CastKind::float_to_complex:
+ case cir::CastKind::float_complex_to_real:
+ case cir::CastKind::float_complex_to_bool:
+ case cir::CastKind::float_complex:
+ case cir::CastKind::float_complex_to_int_complex:
+ case cir::CastKind::int_complex_to_float_complex:
+ return true;
+ default:
+ return false;
+ }
+}
+
LogicalResult cir::CastOp::verify() {
mlir::Type resType = getType();
mlir::Type srcType = getSrc().getType();
+ cir::CastKind kind = getKind();
+
+ if (getFenvAttr() && !isFloatingPointCastKind(kind))
----------------
erichkeane wrote:
Got it! Thanks. Patch LGTM.
https://github.com/llvm/llvm-project/pull/212899
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits