diff options
| author | Sanjay Patel <spatel@rotateright.com> | 2017-10-11 18:24:21 +0000 |
|---|---|---|
| committer | Sanjay Patel <spatel@rotateright.com> | 2017-10-11 18:24:21 +0000 |
| commit | 6c0aef77aacfe46aac81a56cb09090b853d9ff26 (patch) | |
| tree | e7e7e8d0d35ca4daad8dd391fb2331acbbcc8083 /llvm/lib/Target | |
| parent | f03384dce7cff4b250c4814380c03ea6440ebd3b (diff) | |
| download | bcm5719-llvm-6c0aef77aacfe46aac81a56cb09090b853d9ff26.tar.gz bcm5719-llvm-6c0aef77aacfe46aac81a56cb09090b853d9ff26.zip | |
[x86] avoid infinite loop from SoftenFloatOperand (PR34866)
Legalization of fp128 assumes things that we should have asserts for,
so that's another potential improvement.
Differential Revision: https://reviews.llvm.org/D38771
llvm-svn: 315485
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index f95603e9fef..28c4968247a 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -35214,6 +35214,11 @@ static SDValue combineVectorSizedSetCCEquality(SDNode *SetCC, SelectionDAG &DAG, if (!OpVT.isScalarInteger() || OpSize < 128 || isNullConstant(Y)) return SDValue(); + // Bail out if we know that this is not really just an oversized integer. + if (peekThroughBitcasts(X).getValueType() == MVT::f128 || + peekThroughBitcasts(Y).getValueType() == MVT::f128) + return SDValue(); + // TODO: Use PXOR + PTEST for SSE4.1 or later? // TODO: Add support for AVX-512. EVT VT = SetCC->getValueType(0); |

