llvm-project
638383cb - [SPIRV] Support G_IS_FPCLASS (#148637)

Commit
64 days ago
[SPIRV] Support G_IS_FPCLASS (#148637) This commit adds custom legalization for G_IS_FPCLASS, corresponding to the @llvm.is.fpclass intrinsic. The lowering strategy is essentially copied and adjusted from the target-agnostic LegalizeHelper::lowerISFPCLASS legalization. The reason we can't just use that directly is that the series of instruction it expands to aren't logged in the SPIR-V backend's register/type book-keeping, leading to issues later on in the compilation process. As such the code introduced here was copied from the aforementioned helper method, with some notable changes: * Each new instruction's destination register must have a SPIR-V type registered to it. * Instead of a COPY from the floating-point type to integer, we issue a SPIR-V OpBitcast directly. The backend doesn't currently appear to handle bitcast-like COPYs. Fixes #72862
Author
Parents
Loading