diff options
author | Huihui Zhang <huihuiz@quicinc.com> | 2020-03-20 14:48:18 -0700 |
---|---|---|
committer | Huihui Zhang <huihuiz@quicinc.com> | 2020-03-20 14:48:29 -0700 |
commit | 1993f95f2b1eb2d8da7f1a01e977d8fe06314bcf (patch) | |
tree | 48f59d4e4f33c65d69b07302fb3a9e356fd708a8 /clang/lib/Parse/ParseDecl.cpp | |
parent | 2dec82652e4b6424e46e7bd674cb6404e01e218e (diff) | |
download | llvm-1993f95f2b1eb2d8da7f1a01e977d8fe06314bcf.zip llvm-1993f95f2b1eb2d8da7f1a01e977d8fe06314bcf.tar.gz llvm-1993f95f2b1eb2d8da7f1a01e977d8fe06314bcf.tar.bz2 |
[ValueTracking][SVE] Fix getOffsetFromIndex for scalable vector.
Summary:
Return None if GEP index type is scalable vector. Size of scalable vectors
are multiplied by a runtime constant.
Avoid transforming:
%a = bitcast i8* %p to <vscale x 16 x i8>*
%tmp0 = getelementptr <vscale x 16 x i8>, <vscale x 16 x i8>* %a, i64 0
store <vscale x 16 x i8> zeroinitializer, <vscale x 16 x i8>* %tmp0
%tmp1 = getelementptr <vscale x 16 x i8>, <vscale x 16 x i8>* %a, i64 1
store <vscale x 16 x i8> zeroinitializer, <vscale x 16 x i8>* %tmp1
into:
%a = bitcast i8* %p to <vscale x 16 x i8>*
%tmp0 = getelementptr <vscale x 16 x i8>, <vscale x 16 x i8>* %a, i64 0
%1 = bitcast <vscale x 16 x i8>* %tmp0 to i8*
call void @llvm.memset.p0i8.i64(i8* align 16 %1, i8 0, i64 32, i1 false)
Reviewers: sdesmalen, efriedma, apazos, reames
Reviewed By: sdesmalen
Subscribers: tschuett, hiraditya, rkruppe, arphaman, psnobl, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D76464
Diffstat (limited to 'clang/lib/Parse/ParseDecl.cpp')
0 files changed, 0 insertions, 0 deletions