From 65b5e9b4eff84231e48d1be36d4c9de9b945cb2e Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Mon, 24 Mar 2014 16:07:30 +0000 Subject: [PATCH] R600/SI: Promote fp64 SELECT to i64 This type promotion is replacing a Tablegen pattern and it is already covered by existing tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204617 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/R600/SIISelLowering.cpp | 2 ++ lib/Target/R600/SIInstructions.td | 12 ------------ 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/lib/Target/R600/SIISelLowering.cpp b/lib/Target/R600/SIISelLowering.cpp index fd1e3a69bd1..47376b40286 100644 --- a/lib/Target/R600/SIISelLowering.cpp +++ b/lib/Target/R600/SIISelLowering.cpp @@ -104,6 +104,8 @@ SITargetLowering::SITargetLowering(TargetMachine &TM) : setOperationAction(ISD::STORE, MVT::v4i32, Custom); setOperationAction(ISD::SELECT, MVT::i64, Custom); + setOperationAction(ISD::SELECT, MVT::f64, Promote); + AddPromotedToType(ISD::SELECT, MVT::f64, MVT::i64); setOperationAction(ISD::SELECT_CC, MVT::f32, Custom); setOperationAction(ISD::SELECT_CC, MVT::i32, Custom); diff --git a/lib/Target/R600/SIInstructions.td b/lib/Target/R600/SIInstructions.td index eb10541b6f2..8ec29713e07 100644 --- a/lib/Target/R600/SIInstructions.td +++ b/lib/Target/R600/SIInstructions.td @@ -904,18 +904,6 @@ def : Pat < (EXTRACT_SUBREG $val, sub0) >; -//use two V_CNDMASK_B32_e64 instructions for f64 -def : Pat < - (f64 (select i1:$src2, f64:$src1, f64:$src0)), - (INSERT_SUBREG (INSERT_SUBREG (f64 (IMPLICIT_DEF)), - (V_CNDMASK_B32_e64 (EXTRACT_SUBREG $src0, sub0), - (EXTRACT_SUBREG $src1, sub0), - $src2), sub0), - (V_CNDMASK_B32_e64 (EXTRACT_SUBREG $src0, sub1), - (EXTRACT_SUBREG $src1, sub1), - $src2), sub1) ->; - def V_READLANE_B32 : VOP2 < 0x00000001, (outs SReg_32:$vdst), -- 2.34.1