diff options
author | Elena Demikhovsky <elena.demikhovsky@intel.com> | 2015-07-09 07:42:48 +0000 |
---|---|---|
committer | Elena Demikhovsky <elena.demikhovsky@intel.com> | 2015-07-09 07:42:48 +0000 |
commit | 37a4da825f3fc3845cb66e46b9bead240666955c (patch) | |
tree | 5dc5f19ab4f2fc4906253f87f8e940dc739fb133 /clang/unittests/libclang/LibclangTest.cpp | |
parent | 16c4403a91c71ce44645c1a8ad797ffb6a6e1f0a (diff) | |
download | llvm-37a4da825f3fc3845cb66e46b9bead240666955c.zip llvm-37a4da825f3fc3845cb66e46b9bead240666955c.tar.gz llvm-37a4da825f3fc3845cb66e46b9bead240666955c.tar.bz2 |
Extended syntax of vector version of getelementptr instruction.
The justification of this change is here: http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-March/082989.html
According to the current GEP syntax, vector GEP requires that each index must be a vector with the same number of elements.
%A = getelementptr i8, <4 x i8*> %ptrs, <4 x i64> %offsets
In this implementation I let each index be or vector or scalar. All vector indices must have the same number of elements. The scalar value will mean the splat vector value.
(1) %A = getelementptr i8, i8* %ptr, <4 x i64> %offsets
or
(2) %A = getelementptr i8, <4 x i8*> %ptrs, i64 %offset
In all cases the %A type is <4 x i8*>
In the case (2) we add the same offset to all pointers.
The case (1) covers C[B[i]] case, when we have the same base C and different offsets B[i].
The documentation is updated.
http://reviews.llvm.org/D10496
llvm-svn: 241788
Diffstat (limited to 'clang/unittests/libclang/LibclangTest.cpp')
0 files changed, 0 insertions, 0 deletions