[llvm] [X86][TMP] Add missing assembly alias for CCMP, CTEST, SETZUCC, CMPCCXADD (PR #102284)
Freddy Ye via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 7 01:32:10 PDT 2024
https://github.com/FreddyLeaf created https://github.com/llvm/llvm-project/pull/102284
None
>From ebfdb1796a3c01bcf42239e17b31c73e265adf0d Mon Sep 17 00:00:00 2001
From: Freddy Ye <freddy.ye at intel.com>
Date: Wed, 7 Aug 2024 16:31:08 +0800
Subject: [PATCH] [X86][TMP] Add missing assembly alias for CCMP, CTEST,
SETZUCC, CMPCCXADD
---
llvm/lib/Target/X86/X86InstrAsmAlias.td | 29 ++++++++++++++++
llvm/test/MC/X86/apx/setzucc-att.s | 44 ++++++++++++++++++++++++-
2 files changed, 72 insertions(+), 1 deletion(-)
diff --git a/llvm/lib/Target/X86/X86InstrAsmAlias.td b/llvm/lib/Target/X86/X86InstrAsmAlias.td
index 423ee0e8c9bda..b0ccbec98636e 100644
--- a/llvm/lib/Target/X86/X86InstrAsmAlias.td
+++ b/llvm/lib/Target/X86/X86InstrAsmAlias.td
@@ -124,19 +124,31 @@ def : InstAlias<"ccmp"#Cond#"{q} $dcf\t{$src2, $src1|$src1, $src2}",
defm : CCMP_Aliases<"o" , 0>;
defm : CCMP_Aliases<"no", 1>;
defm : CCMP_Aliases<"b" , 2>;
+defm : CCMP_Aliases<"c" , 2>;
+defm : CCMP_Aliases<"nae", 2>;
+defm : CCMP_Aliases<"nb", 3>;
+defm : CCMP_Aliases<"nc", 3>;
defm : CCMP_Aliases<"ae", 3>;
defm : CCMP_Aliases<"e" , 4>;
+defm : CCMP_Aliases<"z" , 4>;
defm : CCMP_Aliases<"ne", 5>;
+defm : CCMP_Aliases<"nz", 5>;
defm : CCMP_Aliases<"be", 6>;
+defm : CCMP_Aliases<"na", 6>;
+defm : CCMP_Aliases<"nbe", 7>;
defm : CCMP_Aliases<"a" , 7>;
defm : CCMP_Aliases<"s" , 8>;
defm : CCMP_Aliases<"ns", 9>;
defm : CCMP_Aliases<"t" , 10>;
defm : CCMP_Aliases<"f", 11>;
defm : CCMP_Aliases<"l" , 12>;
+defm : CCMP_Aliases<"nge",12>;
+defm : CCMP_Aliases<"nl", 13>;
defm : CCMP_Aliases<"ge", 13>;
defm : CCMP_Aliases<"le", 14>;
+defm : CCMP_Aliases<"ng", 14>;
defm : CCMP_Aliases<"g" , 15>;
+defm : CCMP_Aliases<"nle",15>;
// CTEST Instructions Alias
multiclass CTEST_Aliases<string Cond, int CC> {
@@ -186,19 +198,31 @@ def : InstAlias<"ctest"#Cond#"{q} $dcf\t{$src2, $src1|$src1, $src2}",
defm : CTEST_Aliases<"o" , 0>;
defm : CTEST_Aliases<"no", 1>;
defm : CTEST_Aliases<"b" , 2>;
+defm : CTEST_Aliases<"c" , 2>;
+defm : CTEST_Aliases<"nae", 2>;
+defm : CTEST_Aliases<"nb", 3>;
+defm : CTEST_Aliases<"nc", 3>;
defm : CTEST_Aliases<"ae", 3>;
defm : CTEST_Aliases<"e" , 4>;
+defm : CTEST_Aliases<"z" , 4>;
defm : CTEST_Aliases<"ne", 5>;
+defm : CTEST_Aliases<"nz", 5>;
defm : CTEST_Aliases<"be", 6>;
+defm : CTEST_Aliases<"na", 6>;
+defm : CTEST_Aliases<"nbe", 7>;
defm : CTEST_Aliases<"a" , 7>;
defm : CTEST_Aliases<"s" , 8>;
defm : CTEST_Aliases<"ns", 9>;
defm : CTEST_Aliases<"t" , 10>;
defm : CTEST_Aliases<"f", 11>;
defm : CTEST_Aliases<"l" , 12>;
+defm : CTEST_Aliases<"nge",12>;
+defm : CTEST_Aliases<"nl", 13>;
defm : CTEST_Aliases<"ge", 13>;
defm : CTEST_Aliases<"le", 14>;
+defm : CTEST_Aliases<"ng", 14>;
defm : CTEST_Aliases<"g" , 15>;
+defm : CTEST_Aliases<"nle",15>;
//===----------------------------------------------------------------------===//
// Assembler Mnemonic Aliases
@@ -403,6 +427,7 @@ multiclass IntegerCondCodeMnemonicAlias<string Prefix, string Suffix,
// Aliases for set<CC>
defm : IntegerCondCodeMnemonicAlias<"set", "">;
+defm : IntegerCondCodeMnemonicAlias<"setzu", "">;
// Aliases for j<CC>
defm : IntegerCondCodeMnemonicAlias<"j", "">;
// Aliases for cmov<CC>{w,l,q}
@@ -418,6 +443,10 @@ defm : IntegerCondCodeMnemonicAlias<"cfcmov", "l", "att">;
defm : IntegerCondCodeMnemonicAlias<"cfcmov", "q", "att">;
// No size suffix for intel-style asm.
defm : IntegerCondCodeMnemonicAlias<"cfcmov", "", "intel">;
+
+// Aliases for cmp<CC>xadd{l,q}
+defm : IntegerCondCodeMnemonicAlias<"cmp", "xadd", "att">;
+defm : IntegerCondCodeMnemonicAlias<"cmp", "xadd", "intel">;
//===----------------------------------------------------------------------===//
// Assembler Instruction Aliases
//===----------------------------------------------------------------------===//
diff --git a/llvm/test/MC/X86/apx/setzucc-att.s b/llvm/test/MC/X86/apx/setzucc-att.s
index b4b7a633fa319..24da796eaf425 100644
--- a/llvm/test/MC/X86/apx/setzucc-att.s
+++ b/llvm/test/MC/X86/apx/setzucc-att.s
@@ -1,7 +1,7 @@
# RUN: llvm-mc -triple x86_64 -show-encoding %s | FileCheck %s
# RUN: not llvm-mc -triple i386 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=ERROR
-# ERROR-COUNT-32: error:
+# ERROR-COUNT-46: error:
# ERROR-NOT: error:
# CHECK: setzuo %al
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x40,0xc0]
@@ -12,21 +12,45 @@
# CHECK: setzub %al
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x42,0xc0]
setzub %al
+# CHECK: setzub %al
+# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x42,0xc0]
+ setzunae %al
+# CHECK: setzub %al
+# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x42,0xc0]
+ setzuc %al
# CHECK: setzuae %al
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x43,0xc0]
setzuae %al
+# CHECK: setzuae %al
+# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x43,0xc0]
+ setzunb %al
+# CHECK: setzuae %al
+# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x43,0xc0]
+ setzunb %al
# CHECK: setzue %al
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x44,0xc0]
setzue %al
+# CHECK: setzue %al
+# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x44,0xc0]
+ setzuz %al
# CHECK: setzune %al
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x45,0xc0]
setzune %al
+# CHECK: setzune %al
+# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x45,0xc0]
+ setzunz %al
# CHECK: setzube %al
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x46,0xc0]
setzube %al
+# CHECK: setzube %al
+# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x46,0xc0]
+ setzuna %al
# CHECK: setzua %al
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x47,0xc0]
setzua %al
+# CHECK: setzua %al
+# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x47,0xc0]
+ setzunbe %al
# CHECK: setzus %al
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x48,0xc0]
setzus %al
@@ -36,21 +60,39 @@
# CHECK: setzup %al
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x4a,0xc0]
setzup %al
+# CHECK: setzup %al
+# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x4a,0xc0]
+ setzupe %al
# CHECK: setzunp %al
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x4b,0xc0]
setzunp %al
+# CHECK: setzunp %al
+# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x4b,0xc0]
+ setzupo %al
# CHECK: setzul %al
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x4c,0xc0]
setzul %al
+# CHECK: setzul %al
+# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x4c,0xc0]
+ setzunge %al
# CHECK: setzuge %al
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x4d,0xc0]
setzuge %al
+# CHECK: setzuge %al
+# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x4d,0xc0]
+ setzunl %al
# CHECK: setzule %al
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x4e,0xc0]
setzule %al
+# CHECK: setzule %al
+# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x4e,0xc0]
+ setzung %al
# CHECK: setzug %al
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x4f,0xc0]
setzug %al
+# CHECK: setzug %al
+# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x4f,0xc0]
+ setzunle %al
# CHECK: setzuo (%rax)
# CHECK: encoding: [0x62,0xf4,0x7f,0x18,0x40,0x00]
setzuo (%rax)
More information about the llvm-commits
mailing list