SuccessChanges

Summary

  1. [X86] Make deinterleave8bitStride3 use unary CreateShuffleVector (details)
  2. [InstSimplify] Return poison for out of bounds extractelement (details)
Commit 49c2d703d344e8d259a4aee38c8ade1df34bc54a by aqjune
[X86] Make deinterleave8bitStride3 use unary CreateShuffleVector

This patch makes X86InterleavedAccessGroup::deinterleave8bitStride3 use the unary CreateShuffleVector.

This is a continuation of D93923. There were a few missing replacements.

IIUC, this patch does not cause change in the generated programs' semantics because the
function inserts shufflevectors that only choose elements from the first vector.

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D93993
The file was modifiedllvm/lib/Target/X86/X86InterleavedAccess.cpp
The file was modifiedllvm/test/Transforms/InterleavedAccess/X86/interleavedLoad.ll
The file was modifiedllvm/test/Transforms/InterleavedAccess/X86/interleavedStore-inseltpoison.ll
The file was modifiedllvm/test/Transforms/InterleavedAccess/X86/interleavedLoad-inseltpoison.ll
The file was modifiedllvm/test/Transforms/InterleavedAccess/X86/interleavedStore.ll
Commit c6ad00d709853e378cd70e34e755942f9d6f0c8f by nikita.ppv
[InstSimplify] Return poison for out of bounds extractelement

This is the same change as D93990, but for extractelement rather
than insertelement.

> If idx exceeds the length of val for a fixed-length vector, the
> result is a poison value. For a scalable vector, if the value of
> idx exceeds the runtime length of the vector, the result is a
> poison value.
The file was modifiedllvm/test/Transforms/InstSimplify/vscale.ll
The file was modifiedllvm/test/Transforms/InstCombine/extractelement.ll
The file was modifiedllvm/test/Transforms/InstSimplify/2011-09-05-InsertExtractValue.ll
The file was modifiedllvm/test/Transforms/InstSimplify/extract-element.ll
The file was modifiedllvm/test/Transforms/InstSimplify/vscale-inseltpoison.ll
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
The file was modifiedllvm/test/Transforms/InstCombine/extractelement-inseltpoison.ll
The file was modifiedllvm/test/Transforms/InstSimplify/undef.ll