Mercurial > hg > CbC > CbC_llvm
diff lib/Target/X86/X86Instr3DNow.td @ 121:803732b1fca8
LLVM 5.0
author | kono |
---|---|
date | Fri, 27 Oct 2017 17:07:41 +0900 |
parents | 95c75e76d11b |
children | 3a76565eade5 |
line wrap: on
line diff
--- a/lib/Target/X86/X86Instr3DNow.td Fri Nov 25 19:14:25 2016 +0900 +++ b/lib/Target/X86/X86Instr3DNow.td Fri Oct 27 17:07:41 2017 +0900 @@ -38,7 +38,9 @@ def rm : I3DNow_binop<opc, MRMSrcMem, (ins VR64:$src1, i64mem:$src2), Mn, []>; } -multiclass I3DNow_binop_rm_int<bits<8> opc, string Mn, string Ver = ""> { +multiclass I3DNow_binop_rm_int<bits<8> opc, string Mn, bit Commutable = 0, + string Ver = ""> { + let isCommutable = Commutable in def rr : I3DNow_binop<opc, MRMSrcReg, (ins VR64:$src1, VR64:$src2), Mn, [(set VR64:$dst, (!cast<Intrinsic>( !strconcat("int_x86_3dnow", Ver, "_", Mn)) VR64:$src1, VR64:$src2))]>; @@ -63,25 +65,25 @@ (bitconvert (load_mmx addr:$src))))]>; } -defm PAVGUSB : I3DNow_binop_rm_int<0xBF, "pavgusb">; +defm PAVGUSB : I3DNow_binop_rm_int<0xBF, "pavgusb", 1>; defm PF2ID : I3DNow_conv_rm_int<0x1D, "pf2id">; defm PFACC : I3DNow_binop_rm_int<0xAE, "pfacc">; -defm PFADD : I3DNow_binop_rm_int<0x9E, "pfadd">; -defm PFCMPEQ : I3DNow_binop_rm_int<0xB0, "pfcmpeq">; +defm PFADD : I3DNow_binop_rm_int<0x9E, "pfadd", 1>; +defm PFCMPEQ : I3DNow_binop_rm_int<0xB0, "pfcmpeq", 1>; defm PFCMPGE : I3DNow_binop_rm_int<0x90, "pfcmpge">; defm PFCMPGT : I3DNow_binop_rm_int<0xA0, "pfcmpgt">; defm PFMAX : I3DNow_binop_rm_int<0xA4, "pfmax">; defm PFMIN : I3DNow_binop_rm_int<0x94, "pfmin">; -defm PFMUL : I3DNow_binop_rm_int<0xB4, "pfmul">; +defm PFMUL : I3DNow_binop_rm_int<0xB4, "pfmul", 1>; defm PFRCP : I3DNow_conv_rm_int<0x96, "pfrcp">; defm PFRCPIT1 : I3DNow_binop_rm_int<0xA6, "pfrcpit1">; defm PFRCPIT2 : I3DNow_binop_rm_int<0xB6, "pfrcpit2">; defm PFRSQIT1 : I3DNow_binop_rm_int<0xA7, "pfrsqit1">; defm PFRSQRT : I3DNow_conv_rm_int<0x97, "pfrsqrt">; -defm PFSUB : I3DNow_binop_rm_int<0x9A, "pfsub">; -defm PFSUBR : I3DNow_binop_rm_int<0xAA, "pfsubr">; +defm PFSUB : I3DNow_binop_rm_int<0x9A, "pfsub", 1>; +defm PFSUBR : I3DNow_binop_rm_int<0xAA, "pfsubr", 1>; defm PI2FD : I3DNow_conv_rm_int<0x0D, "pi2fd">; -defm PMULHRW : I3DNow_binop_rm_int<0xB7, "pmulhrw">; +defm PMULHRW : I3DNow_binop_rm_int<0xB7, "pmulhrw", 1>; def FEMMS : I3DNow<0x0E, RawFrm, (outs), (ins), "femms", @@ -98,6 +100,6 @@ // "3DNowA" instructions defm PF2IW : I3DNow_conv_rm_int<0x1C, "pf2iw", "a">; defm PI2FW : I3DNow_conv_rm_int<0x0C, "pi2fw", "a">; -defm PFNACC : I3DNow_binop_rm_int<0x8A, "pfnacc", "a">; -defm PFPNACC : I3DNow_binop_rm_int<0x8E, "pfpnacc", "a">; +defm PFNACC : I3DNow_binop_rm_int<0x8A, "pfnacc", 0, "a">; +defm PFPNACC : I3DNow_binop_rm_int<0x8E, "pfpnacc", 0, "a">; defm PSWAPD : I3DNow_conv_rm_int<0xBB, "pswapd", "a">;