[all-commits] [llvm/llvm-project] 802045: [AMDGPU] Changing S_AND_B32 to V_AND_B32_e64 in th...

alex-t via All-commits all-commits at lists.llvm.org
Fri Dec 24 07:22:36 PST 2021

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8020458c5dc2be841c07d26ff75b5471314e6631
  Author: alex-t <alexander.timofeev at amd.com>
  Date:   2021-12-24 (Fri, 24 Dec 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIInstructions.td
    M llvm/lib/Target/AMDGPU/VOPInstructions.td
    A llvm/test/CodeGen/AMDGPU/divergence-driven-trunc-to-i1.ll

  Log Message:
  [AMDGPU] Changing S_AND_B32 to V_AND_B32_e64 in the divergent 'trunc' to i1  pattern

In 'trunc' i16/32/64 to i1 pattern the 'and $src, 1' node supply operand to 'setcc'.
The latter is selected to S_CMP_EQ/V_CMP_EQ dependent on the divergence. In case the 'and' is scalar
and 'setcc' is divergent, we need VGPR to SGPR copy to adjust input operand for V_CMP_EQ.
This patch changes the S_AND_B32 to V_AND_B32_e64 in the 'trunc to i1' divergent patterns.

Reviewed By: rampitec

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

More information about the All-commits mailing list