unsigned type_size = ac_get_type_size(LLVMTypeOf(den));
const char *name;
- /* For doubles, we need precise division to pass GLCTS. */
- if (ctx->float_mode == AC_FLOAT_MODE_DEFAULT_OPENGL && type_size == 8)
- return LLVMBuildFDiv(ctx->builder, num, den, "");
-
if (type_size == 2)
name = "llvm.amdgcn.rcp.f16";
else if (type_size == 4)
src, 2, 0);
break;
case nir_op_frcp:
- /* For doubles, we need precise division to pass GLCTS. */
- if (ctx->ac.float_mode == AC_FLOAT_MODE_DEFAULT_OPENGL && ac_get_type_size(def_type) == 8) {
- result = LLVMBuildFDiv(ctx->ac.builder, ctx->ac.f64_1, ac_to_float(&ctx->ac, src[0]), "");
- } else {
- result = emit_intrin_1f_param_scalar(&ctx->ac, "llvm.amdgcn.rcp",
- ac_to_float_type(&ctx->ac, def_type), src[0]);
- }
+ result = emit_intrin_1f_param_scalar(&ctx->ac, "llvm.amdgcn.rcp",
+ ac_to_float_type(&ctx->ac, def_type), src[0]);
if (ctx->abi->clamp_div_by_zero)
result = ac_build_fmin(&ctx->ac, result,
LLVMConstReal(ac_to_float_type(&ctx->ac, def_type), FLT_MAX));