* EQL -1, not 1 -- no easily observable difference, but this one gets
the branchless version actually used.
(deftransform expt ((x y) ((constant-arg (member -1 -1.0 -1.0d0)) integer) *)
"recode as an ODDP check"
(let ((val (lvar-value x)))
(deftransform expt ((x y) ((constant-arg (member -1 -1.0 -1.0d0)) integer) *)
"recode as an ODDP check"
(let ((val (lvar-value x)))
'(- 1 (* 2 (logand 1 y)))
`(if (oddp y)
,val
'(- 1 (* 2 (logand 1 y)))
`(if (oddp y)
,val
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)