mirror of
https://github.com/intel/llvm.git
synced 2026-01-26 12:26:52 +08:00
This PR is a fix for https://github.com/llvm/llvm-project/pull/159878, which failed in postcommit testing due to linker errors that were not caught in precommit. Original PR: --- This PR introduces a `MathToXeVM` pass, which implements support for the `afn` fastmath flag for SPIRV/XeVM targets - It takes supported `Math` Ops with the `afn` flag, and converts them to function calls to OpenCL `native_` intrinsics. These intrinsic functions are supported by the SPIRV backend, and are automatically converted to `OpExtInst` calls to `native_` ops from the OpenCL SPIRV ext. inst. set when outputting to SPIRV/XeVM. Note: - This pass also supports converting `arith.divf` to native equivalents. There is an option provided in the pass to turn this behavior off. - This pass preserves fastmath flags, but these flags are currently ignored by the SPIRV backend. Thus, in order to generate SPIRV that truly preserves fastmath flags, support needs to be added to the SPIRV backend.