Skip to content

Commit ebfdb17

Browse files
committed
[X86][TMP] Add missing assembly alias for CCMP, CTEST, SETZUCC, CMPCCXADD
1 parent 41491c7 commit ebfdb17

File tree

2 files changed

+72
-1
lines changed

2 files changed

+72
-1
lines changed

llvm/lib/Target/X86/X86InstrAsmAlias.td

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,19 +124,31 @@ def : InstAlias<"ccmp"#Cond#"{q} $dcf\t{$src2, $src1|$src1, $src2}",
124124
defm : CCMP_Aliases<"o" , 0>;
125125
defm : CCMP_Aliases<"no", 1>;
126126
defm : CCMP_Aliases<"b" , 2>;
127+
defm : CCMP_Aliases<"c" , 2>;
128+
defm : CCMP_Aliases<"nae", 2>;
129+
defm : CCMP_Aliases<"nb", 3>;
130+
defm : CCMP_Aliases<"nc", 3>;
127131
defm : CCMP_Aliases<"ae", 3>;
128132
defm : CCMP_Aliases<"e" , 4>;
133+
defm : CCMP_Aliases<"z" , 4>;
129134
defm : CCMP_Aliases<"ne", 5>;
135+
defm : CCMP_Aliases<"nz", 5>;
130136
defm : CCMP_Aliases<"be", 6>;
137+
defm : CCMP_Aliases<"na", 6>;
138+
defm : CCMP_Aliases<"nbe", 7>;
131139
defm : CCMP_Aliases<"a" , 7>;
132140
defm : CCMP_Aliases<"s" , 8>;
133141
defm : CCMP_Aliases<"ns", 9>;
134142
defm : CCMP_Aliases<"t" , 10>;
135143
defm : CCMP_Aliases<"f", 11>;
136144
defm : CCMP_Aliases<"l" , 12>;
145+
defm : CCMP_Aliases<"nge",12>;
146+
defm : CCMP_Aliases<"nl", 13>;
137147
defm : CCMP_Aliases<"ge", 13>;
138148
defm : CCMP_Aliases<"le", 14>;
149+
defm : CCMP_Aliases<"ng", 14>;
139150
defm : CCMP_Aliases<"g" , 15>;
151+
defm : CCMP_Aliases<"nle",15>;
140152

141153
// CTEST Instructions Alias
142154
multiclass CTEST_Aliases<string Cond, int CC> {
@@ -186,19 +198,31 @@ def : InstAlias<"ctest"#Cond#"{q} $dcf\t{$src2, $src1|$src1, $src2}",
186198
defm : CTEST_Aliases<"o" , 0>;
187199
defm : CTEST_Aliases<"no", 1>;
188200
defm : CTEST_Aliases<"b" , 2>;
201+
defm : CTEST_Aliases<"c" , 2>;
202+
defm : CTEST_Aliases<"nae", 2>;
203+
defm : CTEST_Aliases<"nb", 3>;
204+
defm : CTEST_Aliases<"nc", 3>;
189205
defm : CTEST_Aliases<"ae", 3>;
190206
defm : CTEST_Aliases<"e" , 4>;
207+
defm : CTEST_Aliases<"z" , 4>;
191208
defm : CTEST_Aliases<"ne", 5>;
209+
defm : CTEST_Aliases<"nz", 5>;
192210
defm : CTEST_Aliases<"be", 6>;
211+
defm : CTEST_Aliases<"na", 6>;
212+
defm : CTEST_Aliases<"nbe", 7>;
193213
defm : CTEST_Aliases<"a" , 7>;
194214
defm : CTEST_Aliases<"s" , 8>;
195215
defm : CTEST_Aliases<"ns", 9>;
196216
defm : CTEST_Aliases<"t" , 10>;
197217
defm : CTEST_Aliases<"f", 11>;
198218
defm : CTEST_Aliases<"l" , 12>;
219+
defm : CTEST_Aliases<"nge",12>;
220+
defm : CTEST_Aliases<"nl", 13>;
199221
defm : CTEST_Aliases<"ge", 13>;
200222
defm : CTEST_Aliases<"le", 14>;
223+
defm : CTEST_Aliases<"ng", 14>;
201224
defm : CTEST_Aliases<"g" , 15>;
225+
defm : CTEST_Aliases<"nle",15>;
202226

203227
//===----------------------------------------------------------------------===//
204228
// Assembler Mnemonic Aliases
@@ -403,6 +427,7 @@ multiclass IntegerCondCodeMnemonicAlias<string Prefix, string Suffix,
403427

404428
// Aliases for set<CC>
405429
defm : IntegerCondCodeMnemonicAlias<"set", "">;
430+
defm : IntegerCondCodeMnemonicAlias<"setzu", "">;
406431
// Aliases for j<CC>
407432
defm : IntegerCondCodeMnemonicAlias<"j", "">;
408433
// Aliases for cmov<CC>{w,l,q}
@@ -418,6 +443,10 @@ defm : IntegerCondCodeMnemonicAlias<"cfcmov", "l", "att">;
418443
defm : IntegerCondCodeMnemonicAlias<"cfcmov", "q", "att">;
419444
// No size suffix for intel-style asm.
420445
defm : IntegerCondCodeMnemonicAlias<"cfcmov", "", "intel">;
446+
447+
// Aliases for cmp<CC>xadd{l,q}
448+
defm : IntegerCondCodeMnemonicAlias<"cmp", "xadd", "att">;
449+
defm : IntegerCondCodeMnemonicAlias<"cmp", "xadd", "intel">;
421450
//===----------------------------------------------------------------------===//
422451
// Assembler Instruction Aliases
423452
//===----------------------------------------------------------------------===//

llvm/test/MC/X86/apx/setzucc-att.s

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# RUN: llvm-mc -triple x86_64 -show-encoding %s | FileCheck %s
22
# RUN: not llvm-mc -triple i386 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=ERROR
33

4-
# ERROR-COUNT-32: error:
4+
# ERROR-COUNT-46: error:
55
# ERROR-NOT: error:
66
# CHECK: setzuo %al
77
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x40,0xc0]
@@ -12,21 +12,45 @@
1212
# CHECK: setzub %al
1313
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x42,0xc0]
1414
setzub %al
15+
# CHECK: setzub %al
16+
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x42,0xc0]
17+
setzunae %al
18+
# CHECK: setzub %al
19+
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x42,0xc0]
20+
setzuc %al
1521
# CHECK: setzuae %al
1622
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x43,0xc0]
1723
setzuae %al
24+
# CHECK: setzuae %al
25+
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x43,0xc0]
26+
setzunb %al
27+
# CHECK: setzuae %al
28+
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x43,0xc0]
29+
setzunb %al
1830
# CHECK: setzue %al
1931
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x44,0xc0]
2032
setzue %al
33+
# CHECK: setzue %al
34+
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x44,0xc0]
35+
setzuz %al
2136
# CHECK: setzune %al
2237
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x45,0xc0]
2338
setzune %al
39+
# CHECK: setzune %al
40+
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x45,0xc0]
41+
setzunz %al
2442
# CHECK: setzube %al
2543
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x46,0xc0]
2644
setzube %al
45+
# CHECK: setzube %al
46+
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x46,0xc0]
47+
setzuna %al
2748
# CHECK: setzua %al
2849
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x47,0xc0]
2950
setzua %al
51+
# CHECK: setzua %al
52+
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x47,0xc0]
53+
setzunbe %al
3054
# CHECK: setzus %al
3155
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x48,0xc0]
3256
setzus %al
@@ -36,21 +60,39 @@
3660
# CHECK: setzup %al
3761
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x4a,0xc0]
3862
setzup %al
63+
# CHECK: setzup %al
64+
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x4a,0xc0]
65+
setzupe %al
3966
# CHECK: setzunp %al
4067
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x4b,0xc0]
4168
setzunp %al
69+
# CHECK: setzunp %al
70+
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x4b,0xc0]
71+
setzupo %al
4272
# CHECK: setzul %al
4373
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x4c,0xc0]
4474
setzul %al
75+
# CHECK: setzul %al
76+
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x4c,0xc0]
77+
setzunge %al
4578
# CHECK: setzuge %al
4679
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x4d,0xc0]
4780
setzuge %al
81+
# CHECK: setzuge %al
82+
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x4d,0xc0]
83+
setzunl %al
4884
# CHECK: setzule %al
4985
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x4e,0xc0]
5086
setzule %al
87+
# CHECK: setzule %al
88+
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x4e,0xc0]
89+
setzung %al
5190
# CHECK: setzug %al
5291
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x4f,0xc0]
5392
setzug %al
93+
# CHECK: setzug %al
94+
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x4f,0xc0]
95+
setzunle %al
5496
# CHECK: setzuo (%rax)
5597
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x40,0x00]
5698
setzuo (%rax)

0 commit comments

Comments
 (0)