mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-26 07:34:06 +00:00
Fix a DAGCombiner abort on a bitcast from a scalar to a vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43470 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a8cc4d3d3c
commit
090b38a0da
@ -4212,7 +4212,8 @@ SDOperand DAGCombiner::visitEXTRACT_VECTOR_ELT(SDNode *N) {
|
|||||||
unsigned NumElts = MVT::getVectorNumElements(VT);
|
unsigned NumElts = MVT::getVectorNumElements(VT);
|
||||||
if (InVec.getOpcode() == ISD::BIT_CONVERT) {
|
if (InVec.getOpcode() == ISD::BIT_CONVERT) {
|
||||||
MVT::ValueType BCVT = InVec.getOperand(0).getValueType();
|
MVT::ValueType BCVT = InVec.getOperand(0).getValueType();
|
||||||
if (NumElts != MVT::getVectorNumElements(BCVT))
|
if (!MVT::isVector(BCVT) ||
|
||||||
|
NumElts != MVT::getVectorNumElements(BCVT))
|
||||||
return SDOperand();
|
return SDOperand();
|
||||||
InVec = InVec.getOperand(0);
|
InVec = InVec.getOperand(0);
|
||||||
EVT = MVT::getVectorElementType(BCVT);
|
EVT = MVT::getVectorElementType(BCVT);
|
||||||
|
10
test/CodeGen/X86/bitcast-int-to-vector.ll
Normal file
10
test/CodeGen/X86/bitcast-int-to-vector.ll
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
; RUN: llvm-as < %s | llc -march=x86
|
||||||
|
|
||||||
|
define i1 @foo(i64 %a)
|
||||||
|
{
|
||||||
|
%t = bitcast i64 %a to <2 x float>
|
||||||
|
%r = extractelement <2 x float> %t, i32 0
|
||||||
|
%s = extractelement <2 x float> %t, i32 1
|
||||||
|
%b = fcmp uno float %r, %s
|
||||||
|
ret i1 %b
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user