]> granicus.if.org Git - llvm/commit
Support arbitrary address space pointers in masked gather/scatter intrinsics.
authorElad Cohen <elad2.cohen@intel.com>
Wed, 3 May 2017 12:28:54 +0000 (12:28 +0000)
committerElad Cohen <elad2.cohen@intel.com>
Wed, 3 May 2017 12:28:54 +0000 (12:28 +0000)
commitea59a2471779a76cb73cd4d83bec3a022ff91e21
tree69b5cb1b5ca71d2aecf0829a1bcd41a654bdf988
parent6804210951b1ab7c7b807458ae2a19d03cb4e705
Support arbitrary address space pointers in masked gather/scatter intrinsics.

Fixes PR31789 - When loop-vectorize tries to use these intrinsics for a
non-default address space pointer we fail with a "Calling a function with a
bad singature!" assertion. This patch solves this by adding the 'vector of
pointers' argument as an overloaded type which will determine the address
space.

Differential revision: https://reviews.llvm.org/D31490

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302018 91177308-0d34-0410-b5e6-96231b3b80d8
19 files changed:
docs/LangRef.rst
include/llvm/IR/Intrinsics.h
include/llvm/IR/Intrinsics.td
lib/IR/AutoUpgrade.cpp
lib/IR/Function.cpp
lib/IR/IRBuilder.cpp
test/Analysis/CostModel/X86/masked-intrinsic-cost.ll
test/Analysis/CostModel/X86/vector_gep.ll
test/Assembler/auto_upgrade_intrinsics.ll
test/CodeGen/X86/masked_gather_scatter.ll
test/Transforms/FunctionAttrs/readattrs.ll
test/Transforms/GVN/2016-08-30-MaskedScatterGather.ll
test/Transforms/InstCombine/masked_intrinsics.ll
test/Transforms/LoopVectorize/X86/consecutive-ptr-uniforms.ll
test/Transforms/LoopVectorize/X86/gather_scatter.ll
test/Transforms/LoopVectorize/X86/scatter_crash.ll
test/Transforms/NewGVN/2016-08-30-MaskedScatterGather.ll
test/Verifier/scatter_gather.ll [new file with mode: 0644]
utils/TableGen/IntrinsicEmitter.cpp