[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