SuccessChanges

Summary

  1. [CodeGenPrepare] Update optimizeGatherScatterInst for scalable vectors. (details)
  2. [SVE] Move INT_TO_FP i1 promotion into custom lowering. (details)
  3. [RISCV] Define vwadd/vwaddu/vwsub/vwsubu intrinsics. (details)
  4. [InstCombine] Remove scalable vector restriction when fold SelectInst (details)
  5. [InstCombine] Remove scalable vector restriction in InstCombineCompares (details)
  6. [InstCombine][NFC] Change cast of FixedVectorType to dyn_cast. (details)
Commit 6d35bd1d48e9fdde38483e6b22a900daa7e3d46a by paul.walker
[CodeGenPrepare] Update optimizeGatherScatterInst for scalable vectors.

optimizeGatherScatterInst does nothing specific to fixed length vectors
but uses FixedVectorType to extract the number of elements.  This patch
simply updates the code to use VectorType and getElementCount instead.

For testing I just copied Transforms/CodeGenPrepare/X86/gather-scatter-opt.ll
replacing `<4 x ` with `<vscale x 4`.

Differential Revision: https://reviews.llvm.org/D92572
The file was modifiedllvm/lib/CodeGen/CodeGenPrepare.cpp
The file was addedllvm/test/Transforms/CodeGenPrepare/AArch64/gather-scatter-opt.ll
Commit b74c4dbb9634f6210c6539fb4c09b0b68cb3cf0a by paul.walker
[SVE] Move INT_TO_FP i1 promotion into custom lowering.

AddPromotedToType is being used to legalise INT_TO_FP operations
when the source is a predicate. The point where this introduces
vector extends might cause problems in the future so this patch
falls back to manual promotion within custom lowering.

Differential Revision: https://reviews.llvm.org/D90093
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
Commit db48a6de7702570083c9b88f4721701b0f2dbfe1 by kai.wang
[RISCV] Define vwadd/vwaddu/vwsub/vwsubu intrinsics.

Define vwadd/vwaddu/vwsub/vwsubu intrinsics and lower to V instructions.

Authored-by: Roger Ferrer Ibanez <rofirrim@gmail.com>
Co-Authored-by: Hsiangkai Wang <kai.wang@sifive.com>

Differential Revision: https://reviews.llvm.org/D93108
The file was addedllvm/test/CodeGen/RISCV/rvv/vwaddu-rv64.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vwsub-rv32.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vwsub.w-rv64.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vwsub-rv64.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vwsub.w-rv32.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vwadd-rv64.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vwsubu-rv32.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vwsubu-rv64.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vwadd.w-rv32.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vwadd.w-rv64.ll
The file was modifiedllvm/include/llvm/IR/IntrinsicsRISCV.td
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
The file was addedllvm/test/CodeGen/RISCV/rvv/vwsubu.w-rv64.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vwadd-rv32.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVRegisterInfo.td
The file was addedllvm/test/CodeGen/RISCV/rvv/vwaddu-rv32.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vwsubu.w-rv32.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vwaddu.w-rv32.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vwaddu.w-rv64.ll
Commit 2ac58e21a115d16a91578defc4636c43e3608a2e by JunMa
[InstCombine] Remove scalable vector restriction when fold SelectInst

Differential Revision: https://reviews.llvm.org/D93083
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
The file was modifiedllvm/test/Transforms/InstCombine/select.ll
Commit e12f584578006e877cc947cde17c8da86177e9cc by JunMa
[InstCombine] Remove scalable vector restriction in InstCombineCompares

Differential Revision: https://reviews.llvm.org/D93269
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modifiedllvm/test/Transforms/InstCombine/vscale_cmp.ll
Commit ffe84d90e9a7279fafbdcaf70da03174a522ab62 by JunMa
[InstCombine][NFC] Change cast of FixedVectorType to dyn_cast.
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSelect.cpp