[X86] Add test case for llvm change r329734
authorCraig Topper <craig.topper@intel.com>
Tue, 10 Apr 2018 18:43:44 +0000 (18:43 +0000)
committerCraig Topper <craig.topper@intel.com>
Tue, 10 Apr 2018 18:43:44 +0000 (18:43 +0000)
This test ensures the popfd instruction in MS inline assembly can properly find a clobber name for the dirflag register. Previously the register was named 'DF', but it needs to be named 'dirflag' to match the name in the GCC register name list.

llvm-svn: 329738

clang/test/CodeGen/ms-inline-asm.c

index 5c3e3ff..edcbaa8 100644 (file)
@@ -754,6 +754,13 @@ void mxcsr() {
 // CHECK-LABEL: define void @mxcsr
 // CHECK: call void asm sideeffect inteldialect "fxrstor $0", "=*m,~{dirflag},~{fpsr},~{flags}"
 
+// Make sure we can find the register for the dirflag for popfd
+void dirflag() {
+  __asm popfd
+}
+// CHECK-LABEL: define void @dirflag
+// CHECK: call void asm sideeffect inteldialect "popfd", "~{dirflag},~{flags},~{esp},~{dirflag},~{fpsr},~{flags}"
+
 typedef union _LARGE_INTEGER {
   struct {
     unsigned int LowPart;