[PATCH] D26257: [AVX512][llvm] Amending vpmultishiftqb
coby via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 3 16:39:54 PDT 2016
coby added a comment.
In https://reviews.llvm.org/D26257#586935, @craig.topper wrote:
> Can you please clarify what the perceived problem is? The encodings already match your test case before this change and the result type change doesn't make sense given that the instruction really does write bytes.
Simple.
1. While the inst. does accesses/writes bytes, it defined to operate upon qword elements, and to 'emit' qword elements (each 8 selected 'unaligned' bytes is assembled as one 'aligned' qword). So, if nothing else, it should be well represented.
2. consider the following case :
//vpmultishiftqb xmm1, xmm2, [rax]{1to2}//
would it fly?
================
Comment at: include/llvm/IR/IntrinsicsX86.td:2136
GCCBuiltin<"__builtin_ia32_vpmultishiftqb128_mask">,
- Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty,
- llvm_v16i8_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>;
+ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty,
+ llvm_v2i64_ty, llvm_v2i64_ty, llvm_i16_ty], [IntrNoMem]>;
----------------
craig.topper wrote:
> I think the result type should still be byte elements to match the number of elements in the write mask.
1. As far as practical matters is to be concerned - the 'raw' result will remain the same.
2. One may expect to be supplied with a result which is partitioned as it spec'd to be, i.e. at a qword granularity. hence, I think it should remain as such.
Repository:
rL LLVM
https://reviews.llvm.org/D26257
More information about the llvm-commits
mailing list