Index: llvm/trunk/lib/Target/X86/X86InstrInfo.td
===================================================================
--- llvm/trunk/lib/Target/X86/X86InstrInfo.td
+++ llvm/trunk/lib/Target/X86/X86InstrInfo.td
@@ -2769,6 +2769,7 @@
 def : MnemonicAlias<"popf",  "popfw", "att">, Requires<[In16BitMode]>;
 def : MnemonicAlias<"popf",  "popfl", "att">, Requires<[In32BitMode]>;
 def : MnemonicAlias<"popf",  "popfq", "att">, Requires<[In64BitMode]>;
+def : MnemonicAlias<"popf",  "popfq", "intel">, Requires<[In64BitMode]>;
 def : MnemonicAlias<"popfd", "popfl", "att">;
 
 // FIXME: This is wrong for "push reg".  "push %bx" should turn into pushw in
@@ -2780,6 +2781,7 @@
 def : MnemonicAlias<"pushf",  "pushfw", "att">, Requires<[In16BitMode]>;
 def : MnemonicAlias<"pushf",  "pushfl", "att">, Requires<[In32BitMode]>;
 def : MnemonicAlias<"pushf",  "pushfq", "att">, Requires<[In64BitMode]>;
+def : MnemonicAlias<"pushf",  "pushfq", "intel">, Requires<[In64BitMode]>;
 def : MnemonicAlias<"pushfd", "pushfl", "att">;
 
 def : MnemonicAlias<"popad",  "popal",  "intel">, Requires<[Not64BitMode]>;
Index: llvm/trunk/test/MC/X86/intel-syntax-encoding.s
===================================================================
--- llvm/trunk/test/MC/X86/intel-syntax-encoding.s
+++ llvm/trunk/test/MC/X86/intel-syntax-encoding.s
@@ -61,6 +61,11 @@
 // CHECK: encoding: [0xf0]
 // CHECK: encoding: [0x48,0x01,0x00]
 
+// CHECK: encoding: [0x9c]
+// CHECK: encoding: [0x9d]
+pushf
+popf
+
 LBB0_3:
 // CHECK: encoding: [0xeb,A]
 	jmp	LBB0_3