Index: /trunk/source/compiler/X86/X8664/x8664-vinsns.lisp
===================================================================
--- /trunk/source/compiler/X86/X8664/x8664-vinsns.lisp	(revision 15282)
+++ /trunk/source/compiler/X86/X8664/x8664-vinsns.lisp	(revision 15283)
@@ -1294,13 +1294,8 @@
 
 (define-x8664-vinsn %set-z-flag-if-u64-fits-in-fixnum (((dest :imm))
-                                                       ((src :u64))
-                                                       ((temp :u64)))
-  (movq (:%q src) (:%q temp))
-  (shlq (:$ub (1+ x8664::fixnumshift)) (:%q temp))
-  (movq (:%q temp) (:%q dest))          ; tagged as an even fixnum
-  (shrq (:$ub (1+ x8664::fixnumshift)) (:%q temp))
-  (shrq (:%q dest))
-  (cmpq (:%q src) (:%q temp))
-  :done)
+                                                       ((src :u64)))
+  (movq (:$q (ash #xf 60)) (:%q dest))
+  (testq (:%q dest) (:%q src))
+  (leaq (:@ (:%q src) x8664::fixnumone) (:% dest)))
 
 
