llvm-6502/test/CodeGen/Mips/msa
Daniel Sanders 4ac67fa809 Fixed tryFoldToZero() for vector types that need expansion.
Summary:
Moved the requirement for SelectionDAG::getConstant() to return legally
typed nodes slightly earlier. There were two optional DAGCombine passes
that were missed out and were required to produce type-legal DAGs.

Simplified a code-path in tryFoldToZero() to use SelectionDAG::getConstant().
This provides support for both promoted and expanded vector types whereas the
previous code only supported promoted vector types.

Fixes a "Type for zero vector elements is not legal" assertion detected by
an llvm-stress generated test.

Reviewers: resistor

CC: llvm-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D2251

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195635 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-25 11:14:43 +00:00
..
2r_vector_scalar.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
2r.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
2rf_exup.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
2rf_float_int.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
2rf_fq.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
2rf_int_float.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
2rf_tq.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
2rf.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
3r_4r_widen.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
3r_4r.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
3r_splat.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
3r-a.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
3r-b.ll Fix illegal DAG produced by SelectionDAG::getConstant() for v2i64 type 2013-11-15 12:56:49 +00:00
3r-c.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
3r-d.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
3r-i.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
3r-m.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
3r-p.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
3r-s.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
3r-v.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
3rf_4rf_q.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
3rf_4rf.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
3rf_exdo.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
3rf_float_int.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
3rf_int_float.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
3rf_q.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
3rf.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
arithmetic_float.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
arithmetic.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
basic_operations_float.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
basic_operations.ll [mips][msa] Merge basic_operations_little.ll into basic_operations.ll. 2013-11-15 17:24:41 +00:00
bit.ll Fix illegal DAG produced by SelectionDAG::getConstant() for v2i64 type 2013-11-15 12:56:49 +00:00
bitcast.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
bitwise.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
compare_float.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
compare.ll Add support for legalizing SETNE/SETEQ by inverting the condition code and the result of the comparison. 2013-11-21 13:24:49 +00:00
elm_copy.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
elm_cxcmsa.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
elm_insv.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
elm_move.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
elm_shift_slide.ll Fix illegal DAG produced by SelectionDAG::getConstant() for v2i64 type 2013-11-15 12:56:49 +00:00
endian.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
i5_ld_st.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
i5-a.ll Fix illegal DAG produced by SelectionDAG::getConstant() for v2i64 type 2013-11-15 12:56:49 +00:00
i5-b.ll Fix illegal DAG produced by SelectionDAG::getConstant() for v2i64 type 2013-11-15 12:56:49 +00:00
i5-c.ll Fix illegal DAG produced by SelectionDAG::getConstant() for v2i64 type 2013-11-15 12:56:49 +00:00
i5-m.ll Fix illegal DAG produced by SelectionDAG::getConstant() for v2i64 type 2013-11-15 12:56:49 +00:00
i5-s.ll Fix illegal DAG produced by SelectionDAG::getConstant() for v2i64 type 2013-11-15 12:56:49 +00:00
i8.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
i10.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
inline-asm.ll [mips][msa] Enable inlinse assembly for MSA. 2013-11-12 12:56:01 +00:00
llvm-stress-s449609655-simplified.ll [mips][msa] Fix a corner case in performORCombine() when combining nodes into VSELECT. 2013-11-21 16:11:31 +00:00
llvm-stress-s525530439.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
llvm-stress-s997348632.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
llvm-stress-s1704963983.ll Fix illegal DAG produced by SelectionDAG::getConstant() for v2i64 type 2013-11-15 12:56:49 +00:00
llvm-stress-s1935737938.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
llvm-stress-s2090927243-simplified.ll [mips][msa] Add test case that should have been added in r195456. 2013-11-22 15:47:18 +00:00
llvm-stress-s2501752154-simplified.ll [mips][msa] Float vector constants cannot use ldi.[wd] directly. Bitcast from the appropriate integer vector type. 2013-11-22 11:24:50 +00:00
llvm-stress-s2704903805.ll [mips][msa/dsp] Only do DSP combines if DSP is enabled. 2013-11-21 11:40:14 +00:00
llvm-stress-s3861334421.ll Add support for legalizing SETNE/SETEQ by inverting the condition code and the result of the comparison. 2013-11-21 13:24:49 +00:00
llvm-stress-s3926023935.ll Fixed tryFoldToZero() for vector types that need expansion. 2013-11-25 11:14:43 +00:00
llvm-stress-s3997499501.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
llvm-stress-sz1-s742806235.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
shift-dagcombine.ll Vector forms of SHL, SRA, and SRL can be constant folded using SimplifyVBinOp too 2013-11-11 17:23:41 +00:00
shuffle.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
special.ll [mips][msa] Added lsa instruction 2013-10-17 13:38:20 +00:00
spill.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00
vec.ll [mips][msa] Added support for matching bmnz, bmnzi, bmz, and bmzi from normal IR (i.e. not intrinsics) 2013-10-30 15:20:38 +00:00
vecs10.ll [mips][msa] Build all the tests in little and big endian modes and correct an incorrect test. 2013-11-15 11:04:16 +00:00