[mlir][NFC] Update textual references of `func` to `func.func` in tool/runner testsThe special case parsing of `func` operations is being removed.
[mlir][NFC] Rename StandardToLLVM to FuncToLLVMThe current StandardToLLVM conversion patterns only really handlethe Func dialect. The pass itself adds patterns for Arithmetic/CFToLLVM, butthose s
[mlir][NFC] Rename StandardToLLVM to FuncToLLVMThe current StandardToLLVM conversion patterns only really handlethe Func dialect. The pass itself adds patterns for Arithmetic/CFToLLVM, butthose should be/will be split out in a followup. This commit focuses solelyon being an NFC rename.Aside from the directory change, the pattern and pass creation API have been renamed: * populateStdToLLVMFuncOpConversionPattern -> populateFuncToLLVMFuncOpConversionPattern * populateStdToLLVMConversionPatterns -> populateFuncToLLVMConversionPatterns * createLowerToLLVMPass -> createConvertFuncToLLVMPassDifferential Revision: https://reviews.llvm.org/D120778
show more ...
[MLIR] NFC. Rename test cases in test/mlir-cpu-runner per conventionTest case files at most places in MLIR uses hyphens and not underscores.A counter-pattern was somehow started to use underscores
[MLIR] NFC. Rename test cases in test/mlir-cpu-runner per conventionTest case files at most places in MLIR uses hyphens and not underscores.A counter-pattern was somehow started to use underscores in some places.Rename test cases in test/mlir-cpu-runner to use hyphens so that it'sconsistent at least within its directory.Differential Revision: https://reviews.llvm.org/D114672
[mlir] Add polynomial approximation for vectorized math::RsqrtThis patch adds a polynomial approximation that matches theapproximation in Eigen.Note that the approximation only applies to vector
[mlir] Add polynomial approximation for vectorized math::RsqrtThis patch adds a polynomial approximation that matches theapproximation in Eigen.Note that the approximation only applies to vectorized inputs;the scalar rsqrt is left unmodified.The approximation is protected with a flag since it emits an AVX2intrinsic (generated via the X86Vector). This is the only reasonablyclean way that I could find to generate the exact approximation thatI wanted (i.e. an identical one to Eigen's).I considered two alternatives:1. Introduce a Rsqrt intrinsic in LLVM, which doesn't exist yet. I believe this is because there is no definition of Rsqrt that all backends could agree on, since hardware instructions that implement it have widely varying degrees of precision. This is something that the standard could mandate, but Rsqrt is not part of IEEE754, so I don't think this option is feasible.2. Emit fdiv(1.0, sqrt) with fast math flags to allow reciprocal transformations. Although portable, this doesn't allow us to generate exactly the code we want; it is the LLVM backend, and not MLIR, who controls what code is generated based on the target CPU.Reviewed By: ezhulenevDifferential Revision: https://reviews.llvm.org/D112192