| 67 | } |
| 68 | |
| 69 | XlaOp MinFiniteValue(XlaBuilder* builder, PrimitiveType type) { |
| 70 | switch (type) { |
| 71 | case F16: |
| 72 | return ConstantR0<Eigen::half>(builder, |
| 73 | Eigen::NumTraits<Eigen::half>::lowest()); |
| 74 | case BF16: |
| 75 | return ConstantR0<Eigen::bfloat16>( |
| 76 | builder, Eigen::NumTraits<Eigen::bfloat16>::lowest()); |
| 77 | case F32: |
| 78 | return ConstantR0<float>(builder, -std::numeric_limits<float>::max()); |
| 79 | case F64: |
| 80 | return ConstantR0<double>(builder, -std::numeric_limits<double>::max()); |
| 81 | default: |
| 82 | return MinValue(builder, type); |
| 83 | } |
| 84 | } |
| 85 | |
| 86 | XlaOp MinPositiveNormalValue(XlaBuilder* builder, PrimitiveType type) { |
| 87 | switch (type) { |