From 0bcaa7b0249656eec41a8422b26579429c883fce Mon Sep 17 00:00:00 2001 From: "William S. Moses" Date: Mon, 4 Mar 2024 21:10:59 -0600 Subject: [PATCH] Add complex sqrt --- enzyme/Enzyme/InstructionDerivatives.td | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/enzyme/Enzyme/InstructionDerivatives.td b/enzyme/Enzyme/InstructionDerivatives.td index e309055c34d2..22bf2058be22 100644 --- a/enzyme/Enzyme/InstructionDerivatives.td +++ b/enzyme/Enzyme/InstructionDerivatives.td @@ -934,6 +934,13 @@ def : IntrPattern<(Op $x), (ForwardFromSummedReverse) >; + +def : CallPattern<(Op (Op $x, $y):$z), + ["cmplx_sqrt"], + [(Select (And (FCmpUEQ $x, (ConstantFP<"0"> $x)), (FCmpUEQ $y, (ConstantFP<"0"> $y))), (ConstantCFP<"0", "0"> $z), (Conj (CFDiv (Conj (DiffeRet)), (CFMul (ConstantCFP<"2", "0"> $z), (Call<(SameFunc), [ReadNone,NoUnwind]> $z)))))], + (Select (And (FCmpUEQ $x, (ConstantFP<"0"> $x)), (FCmpUEQ $y, (ConstantFP<"0"> $y))), (ConstantCFP<"0", "0"> $z), (CFDiv (Shadow $z), (CFMul (ConstantCFP<"2", "0"> $z), (Call<(SameFunc), [ReadNone,NoUnwind]> $z)))) + >; + def : IntrPattern<(Op $x, $y), [["pow"]], [