[PATCH] D29489: Optimize SETCC + VSEL of incompatible or illegal types
Eli Friedman via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 8 19:26:40 PST 2017
efriedma added a comment.
For the SystemZ tests, would it make sense to auto-generate the CHECK lines use update_llc_test_checks.py?
Please clang-format the new code.
================
Comment at: lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp:547
+ else if (Cond.getOpcode() == ISD::SETCC)
+ std::tie(CL, CH) = SplitVSETCC(Cond.getNode(), DAG);
// Check if there are already splitted versions of the vector available and
----------------
Does SplitVSETCC do something different from just calling SplitVector? Your patch doesn't show any changes to avx512-mask-op.ll.
================
Comment at: lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp:2932
+ // then) a CONCAT_VECTORS with undef(s).
+ ConvertOpc = ISD::TRUNCATE;
+
----------------
Could you just perform the SIGN_EXTEND/TRUNCATE to match the scalar size, then EXTRACT_SUBVECTOR/CONCAT_SUBVECTORS to match the number of elements? The invariants involving the relationship between the number of elements and the scalar sizes of MaskVT and ToMaskVT are confusing at best.
https://reviews.llvm.org/D29489
More information about the llvm-commits
mailing list