diff options
Diffstat (limited to 'lib/Target/X86/X86InstrXOP.td')
-rw-r--r-- | lib/Target/X86/X86InstrXOP.td | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/lib/Target/X86/X86InstrXOP.td b/lib/Target/X86/X86InstrXOP.td index dfcfe8f..b806c44 100644 --- a/lib/Target/X86/X86InstrXOP.td +++ b/lib/Target/X86/X86InstrXOP.td @@ -305,128 +305,3 @@ defm VPERMIL2PD : xop5op<0x49, "vpermil2pd", int_x86_xop_vpermil2pd, defm VPERMIL2PS : xop5op<0x48, "vpermil2ps", int_x86_xop_vpermil2ps, int_x86_xop_vpermil2ps_256, memopv4f32, memopv8f32>; -// XOP Intrinsics patterns - -let Predicates = [HasXOP] in { -// VPCMOV di -def : Pat<(int_x86_xop_vpcmov_v2di VR128:$src1, VR128:$src2, VR128:$src3), - (VPCMOVrr VR128:$src1, VR128:$src2, VR128:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v2di VR128:$src1, VR128:$src2, - (bitconvert (memopv2i64 addr:$src3))), - (VPCMOVrm VR128:$src1, VR128:$src2, addr:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v2di VR128:$src1, - (bitconvert (memopv2i64 addr:$src2)), - VR128:$src3), - (VPCMOVmr VR128:$src1, addr:$src2, VR128:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v4di_256 VR256:$src1, VR256:$src2, VR256:$src3), - (VPCMOVrrY VR256:$src1, VR256:$src2, VR256:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v4di_256 VR256:$src1, VR256:$src2, - (bitconvert (memopv2i64 addr:$src3))), - (VPCMOVrmY VR256:$src1, VR256:$src2, addr:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v4di_256 VR256:$src1, - (bitconvert (memopv2i64 addr:$src2)), - VR256:$src3), - (VPCMOVmrY VR256:$src1, addr:$src2, VR256:$src3)>; - -// VPCMOV si -def : Pat<(int_x86_xop_vpcmov_v4si VR128:$src1, VR128:$src2, VR128:$src3), - (VPCMOVrr VR128:$src1, VR128:$src2, VR128:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v4si VR128:$src1, VR128:$src2, - (bitconvert (memopv2i64 addr:$src3))), - (VPCMOVrm VR128:$src1, VR128:$src2, addr:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v4si VR128:$src1, - (bitconvert (memopv2i64 addr:$src2)), - VR128:$src3), - (VPCMOVmr VR128:$src1, addr:$src2, VR128:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v8si_256 VR256:$src1, VR256:$src2, VR256:$src3), - (VPCMOVrrY VR256:$src1, VR256:$src2, VR256:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v8si_256 VR256:$src1, VR256:$src2, - (bitconvert (memopv2i64 addr:$src3))), - (VPCMOVrmY VR256:$src1, VR256:$src2, addr:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v8si_256 VR256:$src1, - (bitconvert (memopv2i64 addr:$src2)), - VR256:$src3), - (VPCMOVmrY VR256:$src1, addr:$src2, VR256:$src3)>; - - -// VPCMOV hi -def : Pat<(int_x86_xop_vpcmov_v8hi VR128:$src1, VR128:$src2, VR128:$src3), - (VPCMOVrr VR128:$src1, VR128:$src2, VR128:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v8hi VR128:$src1, VR128:$src2, - (bitconvert (memopv2i64 addr:$src3))), - (VPCMOVrm VR128:$src1, VR128:$src2, addr:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v8hi VR128:$src1, - (bitconvert (memopv2i64 addr:$src2)), - VR128:$src3), - (VPCMOVmr VR128:$src1, addr:$src2, VR128:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v16hi_256 VR256:$src1, VR256:$src2, VR256:$src3), - (VPCMOVrrY VR256:$src1, VR256:$src2, VR256:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v16hi_256 VR256:$src1, VR256:$src2, - (bitconvert (memopv2i64 addr:$src3))), - (VPCMOVrmY VR256:$src1, VR256:$src2, addr:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v16hi_256 VR256:$src1, - (bitconvert (memopv2i64 addr:$src2)), - VR256:$src3), - (VPCMOVmrY VR256:$src1, addr:$src2, VR256:$src3)>; - -// VPCMOV qi -def : Pat<(int_x86_xop_vpcmov_v16qi VR128:$src1, VR128:$src2, VR128:$src3), - (VPCMOVrr VR128:$src1, VR128:$src2, VR128:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v16qi VR128:$src1, VR128:$src2, - (bitconvert (memopv2i64 addr:$src3))), - (VPCMOVrm VR128:$src1, VR128:$src2, addr:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v16qi VR128:$src1, - (bitconvert (memopv2i64 addr:$src2)), - VR128:$src3), - (VPCMOVmr VR128:$src1, addr:$src2, VR128:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v32qi_256 VR256:$src1, VR256:$src2, VR256:$src3), - (VPCMOVrrY VR256:$src1, VR256:$src2, VR256:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v32qi_256 VR256:$src1, VR256:$src2, - (bitconvert (memopv2i64 addr:$src3))), - (VPCMOVrmY VR256:$src1, VR256:$src2, addr:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v32qi_256 VR256:$src1, - (bitconvert (memopv2i64 addr:$src2)), - VR256:$src3), - (VPCMOVmrY VR256:$src1, addr:$src2, VR256:$src3)>; - -// VPCMOV df -def : Pat<(int_x86_xop_vpcmov_v2df VR128:$src1, VR128:$src2, VR128:$src3), - (VPCMOVrr VR128:$src1, VR128:$src2, VR128:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v2df VR128:$src1, VR128:$src2, - (bitconvert (memopv2i64 addr:$src3))), - (VPCMOVrm VR128:$src1, VR128:$src2, addr:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v2df VR128:$src1, - (bitconvert (memopv2i64 addr:$src2)), - VR128:$src3), - (VPCMOVmr VR128:$src1, addr:$src2, VR128:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v4df_256 VR256:$src1, VR256:$src2, VR256:$src3), - (VPCMOVrrY VR256:$src1, VR256:$src2, VR256:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v4df_256 VR256:$src1, VR256:$src2, - (bitconvert (memopv2i64 addr:$src3))), - (VPCMOVrmY VR256:$src1, VR256:$src2, addr:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v4df_256 VR256:$src1, - (bitconvert (memopv2i64 addr:$src2)), - VR256:$src3), - (VPCMOVmrY VR256:$src1, addr:$src2, VR256:$src3)>; - -// VPCMOV sf -def : Pat<(int_x86_xop_vpcmov_v4sf VR128:$src1, VR128:$src2, VR128:$src3), - (VPCMOVrr VR128:$src1, VR128:$src2, VR128:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v4sf VR128:$src1, VR128:$src2, - (bitconvert (memopv2i64 addr:$src3))), - (VPCMOVrm VR128:$src1, VR128:$src2, addr:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v4sf VR128:$src1, - (bitconvert (memopv2i64 addr:$src2)), - VR128:$src3), - (VPCMOVmr VR128:$src1, addr:$src2, VR128:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v8sf_256 VR256:$src1, VR256:$src2, VR256:$src3), - (VPCMOVrrY VR256:$src1, VR256:$src2, VR256:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v8sf_256 VR256:$src1, VR256:$src2, - (bitconvert (memopv2i64 addr:$src3))), - (VPCMOVrmY VR256:$src1, VR256:$src2, addr:$src3)>; -def : Pat<(int_x86_xop_vpcmov_v8sf_256 VR256:$src1, - (bitconvert (memopv2i64 addr:$src2)), - VR256:$src3), - (VPCMOVmrY VR256:$src1, addr:$src2, VR256:$src3)>; -} // let Predicates = [HasXOP] - |