add the missing aliases for fp stack cmovs, rdar://8456391
authorChris Lattner <sabre@nondot.org>
Wed, 22 Sep 2010 04:56:20 +0000 (04:56 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 22 Sep 2010 04:56:20 +0000 (04:56 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114531 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/AsmParser/X86AsmParser.cpp
test/MC/AsmParser/X86/x86_instructions.s

index 4fbe7f68e6d153b846090f52f14f5a1fd274b5c2..6826223fd8cf3b482b48558377eeab020ccd941d 100644 (file)
@@ -685,6 +685,12 @@ ParseInstruction(StringRef Name, SMLoc NameLoc,
     .Case("cmovnzq", "cmovneq").Case("cmovnz",  "cmovne")
     .Case("cmovzw",  "cmovew") .Case("cmovzl",  "cmovel")
     .Case("cmovzq",  "cmoveq") .Case("cmovz",   "cmove")
+    // Floating point stack cmov aliases.
+    .Case("fcmovz", "fcmove")
+    .Case("fcmova", "fcmovnbe")
+    .Case("fcmovnae", "fcmovb")
+    .Case("fcmovna", "fcmovbe")
+    .Case("fcmovae", "fcmovnb")
     .Case("fwait", "wait")
     .Case("movzx", "movzb")  // FIXME: Not correct.
     .Case("fildq", "fildll")
index a37af85b858fca9cd37e1dbcd0c1a17973eb24bc..cfea1bde9e35586c95e8ab5d71e17ed33855e5f1 100644 (file)
@@ -319,3 +319,20 @@ fstp       (%eax)
 // rdar://8456364
 // CHECK: movw %cs, %ax
 mov %CS, %ax
+
+// rdar://8456391
+fcmovb %st(1), %st(0)   // CHECK: fcmovb       %st(1), %st(0)
+fcmove %st(1), %st(0)   // CHECK: fcmove       %st(1), %st(0)
+fcmovbe %st(1), %st(0)  // CHECK: fcmovbe      %st(1), %st(0)
+fcmovu %st(1), %st(0)   // CHECK: fcmovu        %st(1), %st(0)
+
+fcmovnb %st(1), %st(0)  // CHECK: fcmovnb      %st(1), %st(0)
+fcmovne %st(1), %st(0)  // CHECK: fcmovne      %st(1), %st(0)
+fcmovnbe %st(1), %st(0) // CHECK: fcmovnbe     %st(1), %st(0)
+fcmovnu %st(1), %st(0)  // CHECK: fcmovnu      %st(1), %st(0)
+
+fcmovnae %st(1), %st(0) // CHECK: fcmovb       %st(1), %st(0)
+fcmovna %st(1), %st(0)  // CHECK: fcmovbe      %st(1), %st(0)
+
+fcmovae %st(1), %st(0)  // CHECK: fcmovnb      %st(1), %st(0)
+fcmova %st(1), %st(0)   // CHECK: fcmovnbe     %st(1), %st(0)