[llvm-commits] XOP Intrinsics patch

Jan Sjodin jan_sjodin at yahoo.com
Tue Jan 3 12:00:48 PST 2012


>All integer vector loads in patterns need to be memopv2i64(!28-bit) or memopv4i64(256-bit) and bitcasted to the correct type because all integer vector loads are promoted to v2i64 or v4i64. So for instance

>
>+def : Pat<(int_x86_xop_vphsubwd (alignedloadv8i16 addr:$src1)),
>+          (VPHSUBWDrm addr:$src1)>;
>
>Needs to be 
>
>+def : Pat<(int_x86_xop_vphsubwd (bc_v8i16 (memopv2i64 addr:$src1))),
>+          (VPHSUBWDrm addr:$src1)>;
>

If the promotion always happens, maybe it would be best to remove patterns like: 

def memopv8i16 : PatFrag<(ops node:$ptr), (v8i16 (memop node:$ptr))>;
def memopv16i8 : PatFrag<(ops node:$ptr), (v16i8 (memop node:$ptr))>;


- Jan





More information about the llvm-commits mailing list