[all-commits] [llvm/llvm-project] 3f9998: [NVPTX] Prefer prmt.b32 over bfi.b32 (#110766)

Justin Fargnoli via All-commits all-commits at lists.llvm.org
Thu Oct 10 10:24:24 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 3f9998af4f79e95fe8be615df9d6b898008044b9
      https://github.com/llvm/llvm-project/commit/3f9998af4f79e95fe8be615df9d6b898008044b9
  Author: Justin Fargnoli <jfargnoli at nvidia.com>
  Date:   2024-10-10 (Thu, 10 Oct 2024)

  Changed paths:
    M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
    M llvm/test/CodeGen/NVPTX/i8x4-instructions.ll
    M llvm/test/CodeGen/NVPTX/sext-setcc.ll

  Log Message:
  -----------
  [NVPTX] Prefer prmt.b32 over bfi.b32 (#110766)

In [[NVPTX] Improve lowering of
v4i8](https://github.com/llvm/llvm-project/commit/cbafb6f2f5c99474164dcc725820cbbeb2e02e14)
@Artem-B add the ability to lower ISD::BUILD_VECTOR with bfi PTX
instructions. @Artem-B did this because:
([source](https://github.com/llvm/llvm-project/pull/67866#discussion_r1343066911))

> Under the hood byte extraction/insertion ends up as BFI/BFE
instructions, so we may as well do that in PTX, too.
https://godbolt.org/z/Tb3zWbj9b

However, the example that @Artem-B linked was targeting sm_52. On modern
architectures, ptxas uses prmt.b32.
[Example](https://godbolt.org/z/Ye4W1n84o).

Thus, remove uses of NVPTXISD::BFI in favor of NVPTXISD::PRMT.



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