This is an archive of the discontinued LLVM Phabricator instance.

[X86] Remove scalar logical op alias instructions. Just use COPY_FROM/TO_REGCLASS and the normal packed instructions instead
ClosedPublic

Authored by craig.topper on Dec 4 2016, 11:14 PM.

Details

Summary

This patch removes the scalar logical operation alias instructions. We can just use reg class copies and use the normal packed instructions instead. This removes the need for putting these instructions in the execution domain fixing tables as was done recently.

I removed the loadf64_128 and loadf32_128 patterns as DAG combine creates a narrower load for (extractelt (loadv4f32)) before we ever get to isel.

I plan to add similar patterns for AVX512DQ in a future commit to allow use of the larger register class when available.

Diff Detail

Repository
rL LLVM

Event Timeline

craig.topper retitled this revision from to [X86] Remove scalar logical op alias instructions. Just use COPY_FROM/TO_REGCLASS and the normal packed instructions instead.
craig.topper updated this object.
craig.topper added reviewers: spatel, zvi, delena, RKSimon.
craig.topper added a subscriber: llvm-commits.
delena accepted this revision.Dec 4 2016, 11:41 PM
delena edited edge metadata.
This revision is now accepted and ready to land.Dec 4 2016, 11:41 PM
zvi edited edge metadata.Dec 4 2016, 11:45 PM

This is great! Thanks.

RKSimon edited edge metadata.Dec 5 2016, 2:36 AM

Maybe add -verify-machineinstrs to tests ? Although I'm not certain if this will work with mir tests

This revision was automatically updated to reflect the committed changes.