OSDN Git Service

radeon/llvm: use ceil intrinsic instead of llvm.AMDIL.round.posinf
authorVincent Lejeune <vljn@ovi.com>
Mon, 8 Oct 2012 13:37:39 +0000 (15:37 +0200)
committerVincent Lejeune <vljn@ovi.com>
Wed, 10 Oct 2012 20:03:33 +0000 (22:03 +0200)
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
src/gallium/drivers/radeon/AMDGPUISelLowering.cpp
src/gallium/drivers/radeon/AMDILIntrinsics.td
src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c

index 7d4ce61..d37df6b 100644 (file)
@@ -139,8 +139,6 @@ SDValue AMDGPUTargetLowering::LowerINTRINSIC_WO_CHAIN(SDValue Op,
                                                   Op.getOperand(2));
     case AMDGPUIntrinsic::AMDIL_round_nearest:
       return DAG.getNode(ISD::FRINT, DL, VT, Op.getOperand(1));
-    case AMDGPUIntrinsic::AMDIL_round_posinf:
-      return DAG.getNode(ISD::FCEIL, DL, VT, Op.getOperand(1));
   }
 }
 
index 213c8bb..3f9e20f 100644 (file)
@@ -146,8 +146,6 @@ let TargetPrefix = "AMDIL", isTarget = 1 in {
           UnaryIntFloat;
   def int_AMDIL_round_neginf : GCCBuiltin<"__amdil_round_neginf">,
           UnaryIntFloat;
-  def int_AMDIL_round_posinf : GCCBuiltin<"__amdil_round_posinf">,
-          UnaryIntFloat;
   def int_AMDIL_round_zero : GCCBuiltin<"__amdil_round_zero">,
           UnaryIntFloat;
   def int_AMDIL_acos : GCCBuiltin<"__amdil_acos">,
index 3b25193..57ec372 100644 (file)
@@ -1117,8 +1117,8 @@ void radeon_llvm_context_init(struct radeon_llvm_context * ctx)
        bld_base->op_actions[TGSI_OPCODE_TXF].intr_name = "llvm.AMDGPU.txf";
        bld_base->op_actions[TGSI_OPCODE_TXQ].fetch_args = tex_fetch_args;
        bld_base->op_actions[TGSI_OPCODE_TXQ].intr_name = "llvm.AMDGPU.txq";
-       bld_base->op_actions[TGSI_OPCODE_CEIL].emit = build_tgsi_intrinsic_nomem;
-       bld_base->op_actions[TGSI_OPCODE_CEIL].intr_name = "llvm.AMDIL.round.posinf.";
+       bld_base->op_actions[TGSI_OPCODE_CEIL].emit = build_tgsi_intrinsic_readonly;
+       bld_base->op_actions[TGSI_OPCODE_CEIL].intr_name = "ceil";