case nir_op_umod:
result = LLVMBuildURem(ctx->ac.builder, src[0], src[1], "");
break;
- case nir_op_fmod:
- /* lower_fmod only lower 16-bit and 32-bit fmod */
- assert(instr->dest.dest.ssa.bit_size == 64);
- src[0] = ac_to_float(&ctx->ac, src[0]);
- src[1] = ac_to_float(&ctx->ac, src[1]);
- result = ac_build_fdiv(&ctx->ac, src[0], src[1]);
- result = emit_intrin_1f_param(&ctx->ac, "llvm.floor",
- ac_to_float_type(&ctx->ac, def_type), result);
- result = LLVMBuildFMul(ctx->ac.builder, src[1] , result, "");
- result = LLVMBuildFSub(ctx->ac.builder, src[0], result, "");
- break;
case nir_op_irem:
result = LLVMBuildSRem(ctx->ac.builder, src[0], src[1], "");
break;