summaryrefslogtreecommitdiff
path: root/lib/Target
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2014-04-17 02:03:08 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2014-04-17 02:03:08 +0000
commit003de065a3648287fc72be1d6f87abc3a00f2c59 (patch)
treed7fda6fdb0e51bcd3f92006aeab9848638895fa8 /lib/Target
parente1a38f70414e10c7ac239dcc5b72fcdf6df1ccdb (diff)
downloadllvm-003de065a3648287fc72be1d6f87abc3a00f2c59.tar.gz
llvm-003de065a3648287fc72be1d6f87abc3a00f2c59.tar.bz2
llvm-003de065a3648287fc72be1d6f87abc3a00f2c59.tar.xz
R600/SI: Fix zext from i1 to i64
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206437 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r--lib/Target/R600/SIISelLowering.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/Target/R600/SIISelLowering.cpp b/lib/Target/R600/SIISelLowering.cpp
index 175709cad6..235665ab89 100644
--- a/lib/Target/R600/SIISelLowering.cpp
+++ b/lib/Target/R600/SIISelLowering.cpp
@@ -972,8 +972,12 @@ SDValue SITargetLowering::LowerZERO_EXTEND(SDValue Op,
return SDValue();
}
- return DAG.getNode(ISD::BUILD_PAIR, DL, VT, Op.getOperand(0),
- DAG.getConstant(0, MVT::i32));
+ SDValue Src = Op.getOperand(0);
+ if (Src.getValueType() != MVT::i32)
+ Src = DAG.getNode(ISD::ZERO_EXTEND, DL, MVT::i32, Src);
+
+ SDValue Zero = DAG.getConstant(0, MVT::i32);
+ return DAG.getNode(ISD::BUILD_PAIR, DL, VT, Src, Zero);
}
//===----------------------------------------------------------------------===//