They map directly to LLVM opcodes so it's really easy.
---
 src/amd/common/ac_nir_to_llvm.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index c82c2ab548d..97a553505bc 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -708,8 +708,8 @@ static void visit_alu(struct ac_nir_context *ctx, const 
nir_alu_instr *instr)
        case nir_op_feq:
                result = emit_float_cmp(&ctx->ac, LLVMRealOEQ, src[0], src[1]);
                break;
-       case nir_op_fneu:
-               result = emit_float_cmp(&ctx->ac, LLVMRealUNE, src[0], src[1]);
+       case nir_op_fne:
+               result = emit_float_cmp(&ctx->ac, LLVMRealONE, src[0], src[1]);
                break;
        case nir_op_flt:
                result = emit_float_cmp(&ctx->ac, LLVMRealOLT, src[0], src[1]);
@@ -717,6 +717,18 @@ static void visit_alu(struct ac_nir_context *ctx, const 
nir_alu_instr *instr)
        case nir_op_fge:
                result = emit_float_cmp(&ctx->ac, LLVMRealOGE, src[0], src[1]);
                break;
+       case nir_op_fequ:
+               result = emit_float_cmp(&ctx->ac, LLVMRealUEQ, src[0], src[1]);
+               break;
+       case nir_op_fneu:
+               result = emit_float_cmp(&ctx->ac, LLVMRealUNE, src[0], src[1]);
+               break;
+       case nir_op_fltu:
+               result = emit_float_cmp(&ctx->ac, LLVMRealULT, src[0], src[1]);
+               break;
+       case nir_op_fgeu:
+               result = emit_float_cmp(&ctx->ac, LLVMRealUGE, src[0], src[1]);
+               break;
        case nir_op_fabs:
                result = emit_intrin_1f_param(&ctx->ac, "llvm.fabs",
                                              ac_to_float_type(&ctx->ac, 
def_type), src[0]);
-- 
2.19.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to