Skip to content

v_mad_u64_u32 patterns do not import in globalisel  #63216

Closed
@arsenm

Description

@arsenm
Included from /home/matt/src/llvm-project/llvm/lib/Target/AMDGPU/AMDGPU.td:1908:
Included from /home/matt/src/llvm-project/llvm/lib/Target/AMDGPU/SIInstrInfo.td:2972:
Included from /home/matt/src/llvm-project/llvm/lib/Target/AMDGPU/SIInstructions.td:28:
Included from /home/matt/src/llvm-project/llvm/lib/Target/AMDGPU/VOPInstructions.td:1485:
/home/matt/src/llvm-project/llvm/lib/Target/AMDGPU/VOP3Instructions.td:661:3: warning: Skipped pattern: Could not infer class for EXTRACT_SUBREG operand #0
  def : GCNPat <
  ^
Included from /home/matt/src/llvm-project/llvm/lib/Target/AMDGPU/AMDGPU.td:1908:
Included from /home/matt/src/llvm-project/llvm/lib/Target/AMDGPU/SIInstrInfo.td:2972:
Included from /home/matt/src/llvm-project/llvm/lib/Target/AMDGPU/SIInstructions.td:28:
Included from /home/matt/src/llvm-project/llvm/lib/Target/AMDGPU/VOPInstructions.td:1485:
/home/matt/src/llvm-project/llvm/lib/Target/AMDGPU/VOP3Instructions.td:682:10: note: instantiated from multiclass
  defm : IMAD32_Pats<V_MAD_U64_U32_e64>;
         ^

I'm assuming GlobalISel emitter is getting confused by the 2 outputs on the v_mad_u64_u32, and the extract type should just infer it from the first result.

Additionally the combiner needs to implement the reassociation from f02510e432e2c452e85a2b7450a8588d0f3c526a

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions