[all-commits] [llvm/llvm-project] 96a661: [GlobalISel] Better verification of G_UNMERGE_VALUES

Jay Foad via All-commits all-commits at lists.llvm.org
Thu Nov 17 00:20:15 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 96a661de4b103e05993bec2783b90d300539a05e
      https://github.com/llvm/llvm-project/commit/96a661de4b103e05993bec2783b90d300539a05e
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2022-11-17 (Thu, 17 Nov 2022)

  Changed paths:
    M llvm/lib/CodeGen/MachineVerifier.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-unmerge.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/artifact-combiner-unmerge-values.mir
    A llvm/test/MachineVerifier/test_g_unmerge_values.mir

  Log Message:
  -----------
  [GlobalISel] Better verification of G_UNMERGE_VALUES

Verify three cases of G_UNMERGE_VALUES separately:

1. Splitting a vector into subvectors (the converse of
   G_CONCAT_VECTORS).
2. Splitting a vector into its elements (the converse of
   G_BUILD_VECTOR).
3. Splitting a scalar into smaller scalars (the converse of
   G_MERGE_VALUES).

Previously #1 allowed strange combinations like this:
  %1:_(<2 x s16>),%2:_(<2 x s16>) = G_UNMERGE_VALUES %0(<2 x s32>)
This has been tightened up to check that the source and destination
element types match, and some MIR test cases updated accordingly.

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




More information about the All-commits mailing list