[all-commits] [llvm/llvm-project] 6549d7: M68k: Use data register classes for the 16->32 ext...

Matt Arsenault via All-commits all-commits at lists.llvm.org
Thu Sep 24 03:06:37 PDT 2026


  Branch: refs/heads/users/arsenm/m68k/movszx-32-16-data-regclass
  Home:   https://github.com/llvm/llvm-project
  Commit: 6549d7fdca2813bc32cf1512f58f427a54468da6
      https://github.com/llvm/llvm-project/commit/6549d7fdca2813bc32cf1512f58f427a54468da6
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2026-09-24 (Thu, 24 Sep 2026)

  Changed paths:
    M llvm/lib/Target/M68k/M68kInstrData.td
    M llvm/test/CodeGen/M68k/register-spills.ll

  Log Message:
  -----------
  M68k: Use data register classes for the 16->32 extending move pseudos

MOVSXd32d16 and MOVZXd32d16 declared both operands with the XR32/XR16
classes, which include the address registers. The post-RA expansion of
these pseudos emits AND32di, MOV16dd and EXT32, all of which require a
data register, so allocating an address register produces invalid code:

  $a6 = AND32di $a6(tied-def 0), 65535, implicit-def $ccr

Every pattern selecting these pseudos already restricts the source to
MxDRD16, so constrain the pseudos to the data register classes.

This fixes machine verifier errors in the touched test.

Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>



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