This is an archive of the discontinued LLVM Phabricator instance.

[SLPVectorizer] reorderInputsAccordingToOpcode - remove non-Instruction canonicalization
ClosedPublic

Authored by RKSimon on Mar 23 2019, 11:24 AM.

Details

Summary

Remove attempts to commute non-Instructions to the LHS - the codegen changes appear to rely on chance more than anything else and also have a tendency to fight existing instcombine canonicalization which moves constants to the RHS of commutable binary ops.

This is prep work towards:
(a) reusing reorderInputsAccordingToOpcode for alt-shuffles and removing the similar reorderAltShuffleOperands
(b) improving reordering to optimized cases with commutable and non-commutable instructions to still find splat/consecutive ops.

Diff Detail

Repository
rL LLVM