llvm-project
88af2807 - [HLSL] Rewrite inline HLSL intrinsics into TableGen (#188362)

Commit
15 days ago
[HLSL] Rewrite inline HLSL intrinsics into TableGen (#188362) Partially addresses https://github.com/llvm/llvm-project/issues/188345. This PR rewrites all applicable inline HLSL intrinsics from `hlsl_intrinsics.h` into TableGen. The unsigned `abs` from `hlsl_alias_intrinsics.h` is also rewritten into TableGen since it can also be defined inline. The `NonUniformResourceIndex` is moved from `hlsl_intrinsics.h` over to `hlsl_alias_intrinsics.h` since it can be defined as an alias. `__detail::.*_impl` helper functions that were one liners have been removed, and their corresponding HLSL intrinsics have been defined in TableGen using the `Body` field instead. Note that rewriting `refract` in TableGen instead of templates introduces some significant changes to error messages and also introduces a new offload test suite failure in the fp16 test because a call to `refract(x, y, 0.5)` where x and y are half-typed vectors is ambiguous due to 0.5 being a 32-bit float literal. The generated `hlsl_inline_intrinsics_gen.inc` file looks like this: https://gist.github.com/Icohedron/a1c4a47ad0bb184f857430835d7d2ca3 Assisted-by: GitHub Copilot --------- Co-authored-by: Justin Bogner <mail@justinbogner.com>
Author
Parents
Loading