[all-commits] [llvm/llvm-project] 650512: [ARM] Extra vmovn tests to show BE differences. NFC

David Green via All-commits all-commits at lists.llvm.org
Thu Feb 13 01:59:24 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 6505124a0c7c648560aad88bac103b0738a8b5f0
      https://github.com/llvm/llvm-project/commit/6505124a0c7c648560aad88bac103b0738a8b5f0
  Author: David Green <david.green at arm.com>
  Date:   2020-02-13 (Thu, 13 Feb 2020)

  Changed paths:
    A llvm/test/CodeGen/ARM/neon-vmovn.ll
    M llvm/test/CodeGen/Thumb2/mve-vmovn.ll

  Log Message:
  -----------
  [ARM] Extra vmovn tests to show BE differences. NFC


  Commit: 9d4c59754110647f8cc8cdd4fef3114843c91d17
      https://github.com/llvm/llvm-project/commit/9d4c59754110647f8cc8cdd4fef3114843c91d17
  Author: David Green <david.green at arm.com>
  Date:   2020-02-13 (Thu, 13 Feb 2020)

  Changed paths:
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    M llvm/lib/Target/ARM/ARMInstrInfo.td
    M llvm/lib/Target/ARM/ARMInstrMVE.td
    M llvm/lib/Target/ARM/ARMInstrNEON.td
    M llvm/test/CodeGen/ARM/neon-vmovn.ll
    M llvm/test/CodeGen/Thumb2/mve-vmovn.ll

  Log Message:
  -----------
  [ARM] Fix ReconstructShuffle for bigendian

Simon pointed out that this function is doing a bitcast, which can be
incorrect for big endian. That makes the lowering of VMOVN in MVE
wrong, but the function is shared between Neon and MVE so both can
be incorrect.

This attempts to fix things by using the newly added VECTOR_REG_CAST
instead of the BITCAST. As it may now be used on Neon, I've added the
relevant patterns for it there too. I've also added a quick dag combine
for it to remove them where possible.

Differential Revision: https://reviews.llvm.org/D74485


Compare: https://github.com/llvm/llvm-project/compare/cc5549dbc2f4...9d4c59754110


More information about the All-commits mailing list