================ @@ -114,19 +92,42 @@ void LoweringPreparePass::lowerCastOp(cir::CastOp op) { break; case cir::CastKind::float_complex_to_real: - case cir::CastKind::int_complex_to_real: - case cir::CastKind::float_complex_to_bool: + case cir::CastKind::int_complex_to_real: { + loweredValue = lowerComplexToScalarCast(getContext(), op, op.getKind()); + break; + } + + case cir::CastKind::float_complex_to_bool: { + loweredValue = lowerComplexToScalarCast(getContext(), op, + cir::CastKind::float_to_bool); + break; + } case cir::CastKind::int_complex_to_bool: { - loweredValue = lowerComplexToScalarCast(getContext(), op); + loweredValue = + lowerComplexToScalarCast(getContext(), op, cir::CastKind::int_to_bool); break; } - case cir::CastKind::float_complex: - case cir::CastKind::float_complex_to_int_complex: - case cir::CastKind::int_complex: - case cir::CastKind::int_complex_to_float_complex: - loweredValue = lowerComplexToComplexCast(getContext(), op); + case cir::CastKind::float_complex: { + loweredValue = + lowerComplexToComplexCast(getContext(), op, cir::CastKind::floating); + break; + } + case cir::CastKind::float_complex_to_int_complex: { + loweredValue = lowerComplexToComplexCast(getContext(), op, + cir::CastKind::float_to_int); break; + } + case cir::CastKind::int_complex: { + loweredValue = + lowerComplexToComplexCast(getContext(), op, cir::CastKind::integral); + break; + } + case cir::CastKind::int_complex_to_float_complex: { + loweredValue = lowerComplexToComplexCast(getContext(), op, + cir::CastKind::int_to_float); + break; + } ---------------- AmrDeveloper wrote:
Very nice, i will do that https://github.com/llvm/llvm-project/pull/149717 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits