[PATCH] D41811: X86: Add pattern matching for PMADDWD
Simon Pilgrim via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 12 03:58:07 PST 2018
RKSimon added a comment.
You can probably make this completely generic and support fully random odd/even pairs:
define <4 x i32> @pmaddwd_8_interleaved(<8 x i16> %A, <8 x i16> %B) {
%a = sext <8 x i16> %A to <8 x i32>
%b = sext <8 x i16> %B to <8 x i32>
%m = mul nsw <8 x i32> %a, %b
%odd = shufflevector <8 x i32> %m, <8 x i32> undef, <4 x i32> <i32 0, i32 3, i32 4, i32 7>
%even = shufflevector <8 x i32> %m, <8 x i32> undef, <4 x i32> <i32 1, i32 2, i32 5, i32 6>
%ret = add <4 x i32> %even, %odd
ret <4 x i32> %ret
}
https://reviews.llvm.org/D41811
More information about the llvm-commits
mailing list