slavapestov/factor — Issue #393: (simd-select) intrinsic doesn't propagate output type as much as it could
Author: jckarter
Created: 2011-11-13 00:45:45+00:00
State: open
Labels: compiler

This should optimize the shift to fixnum-shift-fast on 64-bit, but doesn't:

```text

IN: scratchpad : wut ( x -- y ) { int-4 } declare 0 swap nth -4 shift ;
IN: scratchpad \ wut regs.
=== word: wut, label: wut

=== Basic block #0

##prologue
##branch

Successors: 1

=== Basic block #1

##inc-d 1
##peek RAX D 1
##replace-imm -4 D 0
##slot-imm RAX RAX 2 7
##load-memory-imm XMM0 RAX 7 int-4-rep f
##select-vector RAX XMM0 0 int-4-rep
##shl-imm RAX RAX 4
##replace RAX D 1
##branch

Successors: 2

=== Basic block #2

##safepoint
##epilogue
##jump shift

=== stack frame: f
```