[all-commits] [llvm/llvm-project] 203d0b: [AMDGPU] Fix V_CMP_CLASS_F16_t16_e64 src1 type.

Joe Nash via All-commits all-commits at lists.llvm.org
Wed Oct 5 08:16:03 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 203d0b0ee1369b1479da98922797ce68827fcd55
      https://github.com/llvm/llvm-project/commit/203d0b0ee1369b1479da98922797ce68827fcd55
  Author: Joe Nash <Joseph.Nash at amd.com>
  Date:   2022-10-05 (Wed, 05 Oct 2022)

  Changed paths:
    M llvm/lib/Target/AMDGPU/VOPCInstructions.td
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3c.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3cx.s
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3c.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3cx.txt

  Log Message:
  -----------
  [AMDGPU] Fix V_CMP_CLASS_F16_t16_e64 src1 type.

For V_CMP_CLASS_F16_t16_e64 and V_CMPX_CLASS_F16_t16_e64,
https://reviews.llvm.org/D133723 changed the value type of src1 from i32 to i16.
These src1 operands are 16 bits, therefore need to be encoded as true16
operands. So the _e32 type was correctly set to VGPR_32_Lo128.
In _e64 form the operand class went from
VSrc_b32 to VSrc_b16. For some reason, we cannot encode inline literals for
VSrc_b16, see 5f5f566b265db00f577ead268400d99f34ba9cdd. In this phase of
the true16 implementation, VSrc_b16 and VSrc_b32 are still similar,
except from that quirk of inlines. So set the operand class to regain
that function.

Reviewed By: dp, arsenm

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




More information about the All-commits mailing list