@@ -45,22 +45,21 @@ let Predicates = [HasCMOV, HasCF, HasNDD, In64BitMode] in
45
45
(ins t.RegClass:$src1, t.RegClass:$src2, ccode:$cond),
46
46
"cfcmov${cond}", binop_ndd_args, []>, UseEFLAGS, NDD<1>, NF;
47
47
}
48
- let SchedRW = [WriteCMOV.Folded, WriteCMOV.ReadAfterFold] in {
49
- let Predicates = [HasCMOV, HasCF, In64BitMode] in {
50
- let mayLoad = 1 in
48
+ let SchedRW = [WriteCMOV, ReadDefault, ReadDefault, ReadDefault, ReadDefault, ReadDefault] in {
49
+ let Predicates = [HasCMOV, HasCF, In64BitMode], mayLoad = 1 in
51
50
def rm : ITy<0x40, MRMSrcMemCC, t, (outs t.RegClass:$dst),
52
51
(ins t.MemOperand:$src1, ccode:$cond),
53
52
"cfcmov${cond}", unaryop_ndd_args, []>, UseEFLAGS, EVEX, T_MAP4;
54
- let mayStore = 1 in
55
- def mr : ITy<0x40, MRMDestMemCC, t, (outs t.MemOperand:$dst),
56
- (ins t.RegClass:$src1, ccode:$cond),
57
- "cfcmov${cond}", unaryop_ndd_args, []>, UseEFLAGS, NF;
58
- }
59
- let Predicates = [HasCMOV, HasCF, HasNDD, In64BitMode], mayLoad = 1 in
60
- def rm_ND : ITy<0x40, MRMSrcMemCC, t, (outs t.RegClass:$dst),
61
- (ins t.RegClass:$src1, t.MemOperand:$src2, ccode:$cond),
62
- "cfcmov${cond}", binop_ndd_args, []>, UseEFLAGS, NDD<1>, NF;
53
+ let Predicates = [HasCMOV, HasCF, HasNDD, In64BitMode], mayLoad = 1 in
54
+ def rm_ND : ITy<0x40, MRMSrcMemCC, t, (outs t.RegClass:$dst),
55
+ (ins t.RegClass:$src1, t.MemOperand:$src2, ccode:$cond),
56
+ "cfcmov${cond}", binop_ndd_args, []>, UseEFLAGS, NDD<1>, NF;
63
57
}
58
+ let SchedRW = [ReadDefault, ReadDefault, ReadDefault, ReadDefault, ReadDefault, WriteCMOV],
59
+ Predicates = [HasCMOV, HasCF, In64BitMode], mayStore = 1 in
60
+ def mr : ITy<0x40, MRMDestMemCC, t, (outs t.MemOperand:$dst),
61
+ (ins t.RegClass:$src1, ccode:$cond),
62
+ "cfcmov${cond}", unaryop_ndd_args, []>, UseEFLAGS, NF;
64
63
}
65
64
66
65
let isCodeGenOnly = 1, ForceDisassemble = 1 in {
0 commit comments