ac/llvm: implement v2f16 fsat
authorRhys Perry <pendingchaos02@gmail.com>
Fri, 30 Jul 2021 16:51:53 +0000 (17:51 +0100)
committerMarge Bot <eric+marge@anholt.net>
Mon, 2 Aug 2021 10:02:51 +0000 (10:02 +0000)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12143>

src/amd/llvm/ac_llvm_build.c

index e327652..c605772 100644 (file)
@@ -2499,7 +2499,7 @@ LLVMValueRef ac_build_fsat(struct ac_llvm_context *ctx, LLVMValueRef src,
    LLVMValueRef one = LLVMConstReal(type, 1.0);
    LLVMValueRef result;
 
-   if (bitsize == 64 || (bitsize == 16 && ctx->chip_class <= GFX8)) {
+   if (bitsize == 64 || (bitsize == 16 && ctx->chip_class <= GFX8) || type == ctx->v2f16) {
       /* Use fmin/fmax for 64-bit fsat or 16-bit on GFX6-GFX8 because LLVM
        * doesn't expose an intrinsic.
        */