[PATCH] D27105: [Constants] Add "stepvector" to represent the sequence 0, 1, 2, 3... [IR support for SVE scalable vectors 4/4]

Paul Walker via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 24 07:25:14 PST 2016


paulwalker-arm created this revision.
paulwalker-arm added reviewers: hfinkel, mkuper.
paulwalker-arm added a subscriber: llvm-commits.
Herald added a subscriber: mehdi_amini.
Herald added a reviewer: deadalnix.

  [Constants] Add "stepvector" to represent the sequence 0,1,2,3...
  
  The sequence "<i32 0, i32 1, i32 2, i32 3...>" is represented by
  a ConstantVector containing an ArrayRef of all element values.
  For scalable vectors, where the element count is unknown, such a
  representation is impossible.
  
  Instead the complex constant "stepvector" can be used wherever an
  integer vector is expected. This allows the majority of vector
  sequences required for vectorisation to be produced for all vector
  types. Example Usage:
  
    getelementptr i8, i8* %ptr, <n x 4 x i32> stepvector
    getelementptr i8, i8* %ptr, <4 x i32> stepvector
  
  NOTE: The non-scalable vector case will utilise ConstantVector.


https://reviews.llvm.org/D27105

Files:
  docs/LangRef.rst
  include/llvm-c/Core.h
  include/llvm/Bitcode/LLVMBitCodes.h
  include/llvm/IR/Constants.h
  include/llvm/IR/Value.def
  lib/AsmParser/LLLexer.cpp
  lib/AsmParser/LLParser.cpp
  lib/AsmParser/LLParser.h
  lib/AsmParser/LLToken.h
  lib/Bitcode/Reader/BitcodeReader.cpp
  lib/Bitcode/Writer/BitcodeWriter.cpp
  lib/IR/AsmWriter.cpp
  lib/IR/Constants.cpp
  lib/IR/LLVMContextImpl.cpp
  lib/IR/LLVMContextImpl.h
  test/Bitcode/compatibility.ll
  test/Transforms/ConstProp/constant-expr.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D27105.79234.patch
Type: text/x-patch
Size: 10933 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161124/27ba0118/attachment.bin>


More information about the llvm-commits mailing list