[llvm-commits] [llvm] r40628 - in /llvm/trunk: lib/Target/X86/X86InstrFPStack.td lib/Target/X86/X86InstrFormats.td lib/Target/X86/X86InstrInfo.td lib/Target/X86/X86InstrMMX.td lib/Target/X86/X86InstrSSE.td lib/Target/X86/X86InstrX86-64.td test/CodeGen/X86/2007-07-31-VInsertBug.ll

Chris Lattner clattner at apple.com
Wed Aug 1 17:47:09 PDT 2007


On Jul 31, 2007, at 1:04 AM, Evan Cheng wrote:
> Author: evancheng
> Date: Tue Jul 31 03:04:03 2007
> New Revision: 40628
>
> URL: http://llvm.org/viewvc/llvm-project?rev=40628&view=rev
> Log:
> Redo and generalize previously removed opt for pinsrw: (vextract  
> (v4i32 bc (v4f32 s2v (f32 load ))), 0) -> (i32 load )


> +
> +// (vextract (v4i32 bc (v4f32 s2v (f32 load $addr))), 0) -> (i32  
> load $addr)
> +def : Pat<(vector_extract
> +           (bc_v4i32 (v4f32 (scalar_to_vector (loadf32 addr: 
> $src)))), (iPTR 0)),
> +          (MOV32rm addr:$src)>;
> +def : Pat<(vector_extract
> +           (bc_v2i64 (v2f64 (scalar_to_vector (loadf64 addr: 
> $src)))), (iPTR 0)),
> +          (MOV64rm addr:$src)>;

Would it be possible (and would it make sense) to do this in the dag  
combiner rather than as a target-specific pattern?

-Chris



More information about the llvm-commits mailing list