@@ -25,18 +25,18 @@ def X86rao_xor : SDNode<"X86ISD::AXOR", SDTRAOBinaryArith,
25
25
def X86rao_and : SDNode<"X86ISD::AAND", SDTRAOBinaryArith,
26
26
[SDNPHasChain, SDNPMayStore, SDNPMemOperand]>;
27
27
28
- multiclass RAOINT_BASE<string OpcodeStr , string Suffix = ""> {
28
+ multiclass RAOINT_BASE<string m , string suffix = ""> {
29
29
let Predicates = [HasRAOINT] in
30
- def 32mr#Suffix : I<0xfc, MRMDestMem, (outs), (ins i32mem:$dst , GR32:$src ),
31
- !strconcat("a", OpcodeStr , "{l}\t{$src, $dst|$dst, $src}" ),
32
- [(!cast<SDNode>("X86rao_" # OpcodeStr ) addr:$dst , GR32:$src )]>,
33
- Sched<[WriteALURMW]>;
30
+ def 32mr#suffix : I<0xfc, MRMDestMem, (outs), (ins i32mem:$src1 , GR32:$src2 ),
31
+ !strconcat("a", m , "{l}\t", binop_args ),
32
+ [(!cast<SDNode>("X86rao_" # m ) addr:$src1 , GR32:$src2 )]>,
33
+ NoCD8, Sched<[WriteALURMW]>;
34
34
35
35
let Predicates = [HasRAOINT, In64BitMode] in
36
- def 64mr#Suffix : I<0xfc, MRMDestMem, (outs), (ins i64mem:$dst , GR64:$src ),
37
- !strconcat("a", OpcodeStr , "{q}\t{$src, $dst|$dst, $src}" ),
38
- [(!cast<SDNode>("X86rao_" # OpcodeStr ) addr:$dst , GR64:$src )]>,
39
- Sched<[WriteALURMW]>, REX_W;
36
+ def 64mr#suffix : I<0xfc, MRMDestMem, (outs), (ins i64mem:$src1 , GR64:$src2 ),
37
+ !strconcat("a", m , "{q}\t", binop_args ),
38
+ [(!cast<SDNode>("X86rao_" # m ) addr:$src1 , GR64:$src2 )]>,
39
+ NoCD8, Sched<[WriteALURMW]>, REX_W;
40
40
}
41
41
42
42
let Predicates = [HasRAOINT, NoEGPR] in {
@@ -47,8 +47,8 @@ defm AXOR : RAOINT_BASE<"xor">, T8, XS;
47
47
}
48
48
49
49
let Predicates = [HasRAOINT, HasEGPR, In64BitMode] in {
50
- defm AADD : RAOINT_BASE<"add", "_EVEX">, EVEX, NoCD8, T_MAP4;
51
- defm AAND : RAOINT_BASE<"and", "_EVEX">, EVEX, NoCD8, T_MAP4, PD;
52
- defm AOR : RAOINT_BASE<"or", "_EVEX">, EVEX, NoCD8 , T_MAP4, XD;
53
- defm AXOR : RAOINT_BASE<"xor", "_EVEX">, EVEX, NoCD8, T_MAP4, XS;
50
+ defm AADD : RAOINT_BASE<"add", "_EVEX">, EVEX, T_MAP4;
51
+ defm AAND : RAOINT_BASE<"and", "_EVEX">, EVEX, T_MAP4, PD;
52
+ defm AOR : RAOINT_BASE<"or", "_EVEX">, EVEX , T_MAP4, XD;
53
+ defm AXOR : RAOINT_BASE<"xor", "_EVEX">, EVEX, T_MAP4, XS;
54
54
}
0 commit comments