//===-- AMDGPUGIsel.td - AMDGPU GlobalISel Patterns---------*- tablegen -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // This files contains patterns that should only be used by GlobalISel. For // example patterns for V_* instructions that have S_* equivalents. // SelectionDAG does not support selecting V_* instructions. //===----------------------------------------------------------------------===// include "AMDGPU.td" def sd_vsrc0 : ComplexPattern; def gi_vsrc0 : GIComplexOperandMatcher, GIComplexPatternEquiv; def gi_vop3mods0 : GIComplexOperandMatcher, GIComplexPatternEquiv; class GISelSop2Pat < SDPatternOperator node, Instruction inst, ValueType dst_vt, ValueType src0_vt = dst_vt, ValueType src1_vt = src0_vt> : GCNPat < (dst_vt (node (src0_vt SReg_32:$src0), (src1_vt SReg_32:$src1))), (inst src0_vt:$src0, src1_vt:$src1) >; class GISelVop2Pat < SDPatternOperator node, Instruction inst, ValueType dst_vt, ValueType src0_vt = dst_vt, ValueType src1_vt = src0_vt> : GCNPat < (dst_vt (node (src0_vt (sd_vsrc0 src0_vt:$src0)), (src1_vt VGPR_32:$src1))), (inst src0_vt:$src0, src1_vt:$src1) >; def : GISelSop2Pat ; def : GISelVop2Pat ;