| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[mlir][math] powi with negative exponent should invert at the end (#135735) Previously, an FPowI operation would invert the base *before* performing a sequence of multiplications, but this led to discrepancies between LLVM pow intrinsic folding and that coming from the math dialect. See compiler-rt's version, which does the inverse at the end of the calculation: compiler-rt/lib/builtins/powidf2.c | 1 年前 | |
[MLIR][Math] Add floating point value folders (#127947) | 1 年前 | |
[MLIR][Vector] Remove vector.splat (#162167) vector.splat has been deprecated (user: please use the very similar vector.broadcast instead) with the last PR landing about 6 weeks ago. The discourse discussion is at https://discourse.llvm.org/t/rfc-mlir-vector-deprecate-then-remove-vector-splat/87143/1 The last PR was #152230 This PR completely removes vector.splat. In addition to removing vector.splat from VectorOps.td, it - Updates the few remaining places where vector::SplatOp is created (now vector::BroadcastOp is created) - Removes temporary patterns where vector.splat is replaced by vector.broadcast The only place 'vector.splat' appears is now the files https://github.com/llvm/llvm-project/blob/main/mlir/utils/tree-sitter-mlir/test/corpus/op.txt and https://github.com/llvm/llvm-project/blob/main/mlir/utils/tree-sitter-mlir/dialect/vector.js --------- Signed-off-by: James Newling <james.newling@gmail.com> | 9 个月前 | |
[mlir] rename Math/dependent-dialect.mlir to depends-on-arith.mlir | 3 年前 | |
[mlir][math] Add clampf and clean math ExpandOps API (#151153) This patch adds the clampf operation to the math dialect. The semantics op are defined as: clampf(x, min_v, max_v) = max(min(x, min_v), max_v) The reasoning behind adding this operation is that some GPU vendors offer specialized intrinsics for this operation, or subsets of this operation. For example, [__saturatef](https://docs.nvidia.com/cuda/cuda-math-api/cuda_math_api/group__CUDA__MATH__INTRINSIC__SINGLE.html#group__cuda__math__intrinsic__single_1ga2c84f08e0db7117a14509d21c3aec04e) in NVIDIA GPUs, or __builtin_amdgcn_fmed3f in AMD GPUs. This patch also removes test-expand-math in favor of math-expand-ops. Finally, it removes individual expansion population API calls like populateExpandCoshPattern in favor of: C++ void populateExpansionPatterns(RewritePatternSet &patterns, ArrayRef<StringRef> opMnemonics = {}); | 10 个月前 | |
[mlir] Refactor LegalizeToF32 to specify extra supported float types and target type as arguments (#108815) Instead of hardcoding all fp smaller than 32 bits are unsupported we provide a way to pass supported floating point types as well as the target type. fp64 and fp32 are implicitly supported. CC: @krzysz00 @manupak | 1 年前 | |
[mlir] Refactor LegalizeToF32 to specify extra supported float types and target type as arguments (#108815) Instead of hardcoding all fp smaller than 32 bits are unsupported we provide a way to pass supported floating point types as well as the target type. fp64 and fp32 are implicitly supported. CC: @krzysz00 @manupak | 1 年前 | |
[MLIR] Add sincos op to math dialect (#160772) Now that sincos is a supported intrinsic in the LLVM dialect (#160561) we are able to add the corresponding operation in the math dialect and add conversion patterns for LLVM and NVVM. We have several benchmarks that use sine and cosine in hot-loops, and saving some calculations by performing them together can benefit performance. We would like to have a way to represent sincos in the math dialect. | 9 个月前 | |
[MLIR][Math] Add erfc to math dialect (#126439) This patch adds the erfc op to the math dialect. It also does lowering of the math.erfc op to libm calls. There is also a f32 polynomial approximation for the function based on https://stackoverflow.com/questions/35966695/vectorizable-implementation-of-complementary-error-function-erfcf This is in turn based on M. M. Shepherd and J. G. Laframboise, "Chebyshev Approximation of (1+2x)exp(x^2)erfc x in 0 <= x < INF", Mathematics of Computation, Vol. 36, No. 153, January 1981, pp. 249-253. The code has a ULP error less than 3, which was tested, and MLIR test values were verified against the C implementation. | 1 年前 | |
[MLIR] Add sincos fusion pass (#161413) We see performance improvements from using sincos to reuse calculations in hot loops that compute sin() and cos() of the same operand. Add a pass to identify sin() and cos() calls in the same block with the same operand and fast-math flags, and fuse them into a sincos op. Follow-up to: * #160561 * #160772 | 9 个月前 | |
[mlir][math] Uplift from arith to math.fma Add pass to uplift from arith mulf + addf ops to math.fma if fastmath flags allow it. Differential Revision: https://reviews.llvm.org/D152633 | 3 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 年前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 3 年前 | ||
| 10 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 3 年前 |