[llvm-commits] CVS: llvm/lib/Target/X86/X86ISelLowering.cpp X86InstrMMX.td
Chris Lattner
clattner at apple.com
Tue Mar 27 13:56:19 PDT 2007
On Mar 27, 2007, at 1:22 PM, Bill Wendling wrote:
> +// Some special case pandn patterns.
> +def : Pat<(v1i64 (and (xor VR64:$src1, (bc_v1i64 (v2i32
> immAllOnesV))),
> + VR64:$src2)),
> + (MMX_PANDNrr VR64:$src1, VR64:$src2)>;
> +def : Pat<(v1i64 (and (xor VR64:$src1, (bc_v1i64 (v4i16
> immAllOnesV))),
> + VR64:$src2)),
> + (MMX_PANDNrr VR64:$src1, VR64:$src2)>;
> +def : Pat<(v1i64 (and (xor VR64:$src1, (bc_v1i64 (v8i8
> immAllOnesV))),
> + VR64:$src2)),
> + (MMX_PANDNrr VR64:$src1, VR64:$src2)>;
> +
> +def : Pat<(v1i64 (and (xor VR64:$src1, (bc_v1i64 (v2i32
> immAllOnesV))),
> + (load addr:$src2))),
> + (MMX_PANDNrm VR64:$src1, addr:$src2)>;
> +def : Pat<(v1i64 (and (xor VR64:$src1, (bc_v1i64 (v4i16
> immAllOnesV))),
> + (load addr:$src2))),
> + (MMX_PANDNrm VR64:$src1, addr:$src2)>;
> +def : Pat<(v1i64 (and (xor VR64:$src1, (bc_v1i64 (v8i8
> immAllOnesV))),
> + (load addr:$src2))),
> + (MMX_PANDNrm VR64:$src1, addr:$src2)>;
These shouldn't be needed. Please get legalize to promote
"build_vector" to a single vector type like it does for loads. This
would eliminate the need for these patterns.
-chris
More information about the llvm-commits
mailing list