summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2014-02-06 18:18:36 +0000
committerTim Northover <tnorthover@apple.com>2014-02-06 18:18:36 +0000
commit0c245b69f7a6b9eaa1386f7c2251a47a253ced62 (patch)
treeda0f2a7a9d37fa05b043a4a3f3505531a8facc43 /include
parent6984ee6aa262a0ab3b49a161066f4fab941a2ee6 (diff)
downloadllvm-0c245b69f7a6b9eaa1386f7c2251a47a253ced62.tar.gz
llvm-0c245b69f7a6b9eaa1386f7c2251a47a253ced62.tar.bz2
llvm-0c245b69f7a6b9eaa1386f7c2251a47a253ced62.tar.xz
X86: add costs for 64-bit vector ext/trunc & rebalance
The most important part of this is probably adding any cost at all for operations like zext <8 x i8> to <8 x i32>. Before they were being recorded as extremely costly (24, I believe) which made LLVM fall back on a 4-wide vectorisation of a loop. It also rebalances the values for sext, zext and trunc. Lacking any other sane metric that might work across CPU microarchitectures I went for instructions. This seems to be in reasonable accord with the rest of the table (sitofp, ...) though no doubt at least one value is sub-optimal for some bizarre reason. Finally, separate AVX and AVX2 values are provided where appropriate. The CodeGen is quite different in many cases. rdar://problem/15981990 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200928 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions