llvm-project/llvm/test/Transforms/InstSimplify
Andrea Di Biagio 805815f407 [instsimplify] Fix incorrect folding of an ordered fcmp with a vector of all NaN.
This patch fixes a crash caused by an incorrect folding of an ordered comparison
between a packed floating point vector and a splat vector of NaN.

An ordered comparison between a vector and a constant vector of NaN, should
always be folded into a constant vector where each element is i1 false.

Since revision 266175, SimplifyFCmpInst folds the ordered fcmp into a scalar
'false'. Later on, this would cause an assertion failure, since the value type
of the folded value doesn't match the expected value type of the uses of the
original instruction: "Assertion failed: New->getType() == getType() &&
"replaceAllUses of value with new value of different type!".

This patch fixes the issue and adds a test case to the already existing test
InstSimplify/floating-point-compares.ll.

Differential Revision: https://reviews.llvm.org/D24143

llvm-svn: 280488
2016-09-02 14:47:43 +00:00
..
2010-12-20-Boolean.ll [InstSimplify] regenerate checks using a script 2016-03-25 20:12:25 +00:00
2011-01-14-Thread.ll
2011-02-01-Vector.ll
2011-09-05-InsertExtractValue.ll
2011-10-27-BinOpCrash.ll
2011-11-23-MaskedBitsCrash.ll
2013-04-19-ConstantFoldingCrash.ll
AndOrXor.ll [InstSimplify] analyze (optionally casted) icmps to eliminate obviously false logic (PR27869) 2016-06-20 20:59:59 +00:00
add-mask.ll [InstSimplify] regenerate checks using a script 2016-03-25 20:12:25 +00:00
apint-or.ll [InstSimplify] regenerate checks using a script 2016-03-25 20:12:25 +00:00
assume.ll [InstSimplify] regenerate checks using a script 2016-03-25 20:12:25 +00:00
bswap.ll [InstSimplify] regenerate checks using a script 2016-03-25 20:12:25 +00:00
call-callconv.ll
call.ll Simplify llvm.masked.load w/ undef masks 2016-07-14 06:58:37 +00:00
cast.ll [InstSimplify] Fold gep (gep V, C), (xor V, -1) to C-1 2016-08-16 06:13:46 +00:00
compare.ll [InstSimplify] move icmp with constant tests to another file; NFC 2016-08-23 16:46:53 +00:00
dead-code-removal.ll
exact-nsw-nuw.ll
fast-math.ll [InstSimplify] regenerate checks using a script 2016-03-25 20:12:25 +00:00
fdiv.ll [InstSimplify] regenerate checks using a script 2016-03-25 20:12:25 +00:00
floating-point-arithmetic.ll [InstSimplify] regenerate checks using a script 2016-03-25 20:12:25 +00:00
floating-point-compare.ll [instsimplify] Fix incorrect folding of an ordered fcmp with a vector of all NaN. 2016-09-02 14:47:43 +00:00
fold-builtin-fma.ll
gep.ll
icmp-constant.ll [InstSimplify] allow icmp with constant folds for splat vectors, part 2 2016-08-23 18:00:51 +00:00
implies.ll [ValueTracking] Correct lit test comments. NFC. 2016-04-18 19:11:45 +00:00
load-relative-32.ll Introduce llvm.load.relative intrinsic. 2016-04-22 21:18:02 +00:00
load-relative.ll Introduce llvm.load.relative intrinsic. 2016-04-22 21:18:02 +00:00
load.ll [ConstantFolding] Extend FoldReinterpretLoadFromConstPtr to handle negative offsets 2016-07-13 23:33:07 +00:00
maxmin.ll [InstSimplify] regenerate checks using a script 2016-03-25 20:12:25 +00:00
noalias-ptr.ll
past-the-end.ll [InstSimplify] regenerate checks using a script 2016-03-25 20:12:25 +00:00
phi.ll [InstSimplify] regenerate checks using a script 2016-03-25 20:12:25 +00:00
pr28725.ll [ConstantFolding] Use ConstantExpr::getWithOperands 2016-07-29 03:27:31 +00:00
ptr_diff.ll [InstSimplify] regenerate checks using a script 2016-03-25 20:12:25 +00:00
reassociate.ll [InstSimplify] regenerate checks using a script 2016-03-25 20:12:25 +00:00
rem.ll [InstSimplify] regenerate checks using a script 2016-03-25 20:12:25 +00:00
returned.ll Pointer-comparison folding should look through returned-argument functions 2016-07-11 03:37:59 +00:00
select.ll [InstSimplify] don't crash handling a pointer or aggregate type 2016-07-21 21:56:00 +00:00
shift-128-kb.ll [InstSimplify] regenerate checks using a script 2016-03-25 20:12:25 +00:00
shift-knownbits.ll [InstSimplify] use computeKnownBits on shift amount operands 2016-05-10 20:46:54 +00:00
shr-nop.ll [ValueTracking] improve ComputeNumSignBits for vector constants 2016-06-22 19:20:59 +00:00
undef.ll [InstCombine] replace divide-by-constant checks with asserts; NFC 2016-08-30 17:31:34 +00:00
vec-cmp.ll [ValueTracking, InstSimplify] extend isKnownNonZero() to handle vector constants 2016-05-24 14:18:49 +00:00
vector_gep.ll Vector GEP - fixed a crash on InstSimplify Pass. 2016-05-15 12:30:25 +00:00
vector_ptr_bitcast.ll