This is an archive of the discontinued LLVM Phabricator instance.

[X86][SSE] Canonicalize scalar fp arithmetic shuffle patterns
ClosedPublic

Authored by RKSimon on Jul 18 2018, 4:43 AM.

Details

Summary

As discussed on PR38197, this canonicalizes MOVS*(N0, OP(N0, N1)) --> MOVS*(N0, SCALAR_TO_VECTOR(OP(N0[0], N1[0])))

This returns the scalar-fp codegen lost by rL336971.

Additionally it handles the OP(N1, N0)) case for commutable (FADD/FMUL) ops.

@craig.topper - This interferes with D49280 but I've tried to make the merge as simple as possible.

Diff Detail

Repository
rL LLVM

Event Timeline

RKSimon created this revision.Jul 18 2018, 4:43 AM
This revision is now accepted and ready to land.Jul 18 2018, 9:40 AM
This revision was automatically updated to reflect the committed changes.