================ @@ -3013,6 +3014,47 @@ def CIR_ComplexMulOp : CIR_Op<"complex.mul", [ }]; } +def CIR_ComplexDivOp : CIR_Op<"complex.div", [ + Pure, SameOperandsAndResultType +]> { + let summary = "Complex division"; + let description = [{ + The `cir.complex.div` operation takes two complex numbers and returns + their quotient. + + For complex types with floating-point components, the `range` attribute + specifies the algorithm to be used when the operation is lowered to + the LLVM dialect. For division, 'improved' produces Smith's algorithms for + Complex division with no additional handling for NaN values. If 'promoted' + is used, the values are promoted to a higher precision type, if possible, + and the calculation is performed using the algebraic formula, with + no additional handling for NaN values. We fall back on Smith's algorithm + when the target does not support a higher precision type. + If 'full' is used, a runtime-library function is called if one of the ---------------- andykaylor wrote:
The formatting is a bit off here. https://github.com/llvm/llvm-project/pull/153796 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits