[all-commits] [llvm/llvm-project] 307713: [AArch64] Do not generate uitofp(ld4) where and/sh...

David Green via All-commits all-commits at lists.llvm.org
Sat Sep 7 07:31:48 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 307713aafc011844acdcb18ca6acbf3f2de29f5f
      https://github.com/llvm/llvm-project/commit/307713aafc011844acdcb18ca6acbf3f2de29f5f
  Author: David Green <david.green at arm.com>
  Date:   2024-09-07 (Sat, 07 Sep 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/zext-shuffle.ll

  Log Message:
  -----------
  [AArch64] Do not generate uitofp(ld4) where and/shift can be used. (#107538)

After #107201 and #107367 the codegen for zext(ld4) can use and / shift
to extract the lanes out of the original vectors elements. This avoids
the need for the expensive ld4 operations, so can lead to performance
improvements over using the interleaving loads and ushll.

This patch stops the generation of ld4 for uitofp(ld4) that would become
uitofp(zext(ld4)). It doesn't handle zext yet to make sure that widening
instructions like mull and addl are not adversely affected.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list