| 225 | }; |
| 226 | |
| 227 | struct MlirTestOpt get_mode_opt(opr::Elemwise::Mode mode) { |
| 228 | struct MlirTestOpt opt = {0, 1, 1e-6}; |
| 229 | if (mode == opr::Elemwise::Mode::ABS) { |
| 230 | opt.low = -10; |
| 231 | opt.high = 10; |
| 232 | } else if (mode == opr::Elemwise::Mode::LOG) { |
| 233 | opt.low = 0.1; |
| 234 | opt.high = 4; |
| 235 | } else if (mode == opr::Elemwise::Mode::ERF or mode == opr::Elemwise::Mode::ERFC) { |
| 236 | opt.low = -5; |
| 237 | opt.high = 5; |
| 238 | } else if (mode == opr::Elemwise::Mode::ERFINV) { |
| 239 | opt.low = -0.999; |
| 240 | opt.high = 0.999; |
| 241 | opt.maxerr = 1e-4; |
| 242 | } else if (mode == opr::Elemwise::Mode::ERFCINV) { |
| 243 | opt.low = 0.001; |
| 244 | opt.high = 1.999; |
| 245 | opt.maxerr = 1e-4; |
| 246 | } |
| 247 | return opt; |
| 248 | } |
| 249 | |
| 250 | template <typename tag, int arity> |
| 251 | void run_mlir_mode(CompNode cn) { |