[all-commits] [llvm/llvm-project] 48879c: [llvm][CodeGen] Fix issue for SVE gather prefetch.

Francesco Petrogalli via All-commits all-commits at lists.llvm.org
Fri Apr 17 11:25:45 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 48879c02bfc40017ec7d4dcfbd920ef949b53cf6
      https://github.com/llvm/llvm-project/commit/48879c02bfc40017ec7d4dcfbd920ef949b53cf6
  Author: Francesco Petrogalli <francesco.petrogalli at arm.com>
  Date:   2020-04-17 (Fri, 17 Apr 2020)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/sve-intrinsics-gather-prefetches-vect-base-invalid-imm-offset.ll

  Log Message:
  -----------
  [llvm][CodeGen] Fix issue for SVE gather prefetch.

Summary:
This change is fixing an issue where the dagcombine incorrectly used an addressing mode with scaled offsets (indices), instead of unscaled offsets.
Those addressing modes do not exist for `prfh` , `prfw` and `prfd`, hence we can reuse `prfb` because that has unscaled offsets, and because the pseudo-code in the XML spec suggests that the element size is not used for the amount of data that is prefetched by the instruction.

FWIW, GCC also emits a `prfb` for these cases.

Reviewers: sdesmalen, andwar, rengolin

Reviewed By: sdesmalen

Subscribers: tschuett, hiraditya, llvm-commits

Tags: #llvm

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




More information about the All-commits mailing list