[all-commits] [llvm/llvm-project] 1ee50b: [AArch64] Fix scalar imm variants of SIMD shift le...

Andrew Savonichev via All-commits all-commits at lists.llvm.org
Wed May 5 06:29:42 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 1ee50b473168735752a2f80ae9b356cfa70a76d0
      https://github.com/llvm/llvm-project/commit/1ee50b473168735752a2f80ae9b356cfa70a76d0
  Author: Andrew Savonichev <andrew.savonichev at gmail.com>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64InstrFormats.td
    M llvm/test/CodeGen/AArch64/arm64-vshift.ll

  Log Message:
  -----------
  [AArch64] Fix scalar imm variants of SIMD shift left instructions

This issue was reported in PR50057: Cannot select:
t10: i64 = AArch64ISD::VSHL t2, Constant:i32<2>

Shift intrinsics (llvm.aarch64.neon.ushl.i64 and sshl) with a constant
shift operand are lowered into AArch64ISD::VSHL in tryCombineShiftImm.
VSHL has i64 and v1i64 patterns for a right shift, but only v1i64 for
a left shift.

This patch adds the missing i64 pattern for AArch64ISD::VSHL, and LIT
tests to cover scalar variants (i64 and v1i64) of all shift
intrinsics (only ushl and sshl cases fail without the patch, others
were just not covered).

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




More information about the All-commits mailing list