anchor.diff:  			     (gethash (car (cleavir-ir:defining-instructions input)) owners))
   			 (not (gethash input superfluous-locations))
   			 (typep output 'cleavir-ir:lexical-location)
  -			 (= (length (cleavir-ir:using-instructions output)) 1)
  +			 (= (length (cleavir-ir:defining-instructions output)) 1)
   			 (eq (gethash instruction owners)
   			     (gethash (car (cleavir-ir:using-instructions output)) owners))
   			 (not (gethash output essential-locations)))))
  
positive.code: 	       (declare (ignore value))
  	       (let* ((input (car (cleavir-ir:inputs instruction)))
  		      (output (car (cleavir-ir:outputs instruction)))
  		      (using-instruction (car (cleavir-ir:using-instructions output))))
  		 (nsubstitute input output (cleavir-ir:inputs using-instruction))
  		 (setf (car (cleavir-ir:using-instructions input)) using-instruction)
  		 (cleavir-ir:delete-instruction instruction)))
  	     superfluous-instructions)
      (cleavir-ir:set-predecessors initial-instruction)
  
negative.code: (cl:in-package #:cleavir-hir-transformations)
  
  ;;;; Eliminating superfluous temporaries is a bit tricky.  We can not
  ;;;; guarantee that this function works as expected at the moment.
  
  (defun eliminate-superfluous-temporaries (initial-instruction)
    ;; Make sure we are working with an up-to-date graph, both with
  