Added estimations for ShuffleVector, some cast and arithmetic instructions
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
- Build Status
Buildable 40514 Build 40626: arc lint + arc unit
Event Timeline
llvm/include/llvm/CodeGen/BasicTTIImpl.h | ||
---|---|---|
668 ↗ | (On Diff #227138) | This seems to now be duplicated in two different places now? Except the other version uses int and is const? |
Comment Actions
@dfukalov this is breaking some of our internal tests. Here's an example:
define amdgpu_kernel void @shufflevector_xxx(<4 x i8> addrspace(1)* %out, <2 x i8> addrspace(1)* %vaddr) { %vec = load <2 x i8>, <2 x i8> addrspace(1)* %vaddr %shuf = shufflevector <2 x i8> %vec, <2 x i8> undef, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef> store <4 x i8> %shuf, <4 x i8> addrspace(1)* %out ret void }
I get:
opt: /home/jayfoad2/git/llvm-project/llvm/lib/Analysis/TargetTransformInfo.cpp:206: int llvm::TargetTransformInfo::getUserCost(const llvm::User *, ArrayRef<const llvm::Value *>) const: Assertion `Cost >= 0 && "TTI should not produce negative costs!"' failed.
Can you take a look please?