[all-commits] [llvm/llvm-project] e5e719: [X86][SSE] lowerV8I16Shuffle - lower compaction sh...
Simon Pilgrim via All-commits
all-commits at lists.llvm.org
Sat Apr 4 05:09:41 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: e5e719d8854a6bca60aff1d87f5b5eb556f55695
https://github.com/llvm/llvm-project/commit/e5e719d8854a6bca60aff1d87f5b5eb556f55695
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2020-04-04 (Sat, 04 Apr 2020)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/cast-vsel.ll
M llvm/test/CodeGen/X86/masked_store_trunc.ll
M llvm/test/CodeGen/X86/masked_store_trunc_ssat.ll
M llvm/test/CodeGen/X86/masked_store_trunc_usat.ll
M llvm/test/CodeGen/X86/phaddsub.ll
M llvm/test/CodeGen/X86/psubus.ll
M llvm/test/CodeGen/X86/shuffle-vs-trunc-256.ll
M llvm/test/CodeGen/X86/shuffle-vs-trunc-512.ll
M llvm/test/CodeGen/X86/vector-reduce-and-bool.ll
M llvm/test/CodeGen/X86/vector-reduce-or-bool.ll
M llvm/test/CodeGen/X86/vector-reduce-xor-bool.ll
M llvm/test/CodeGen/X86/vector-shuffle-128-v8.ll
M llvm/test/CodeGen/X86/vector-trunc-packus.ll
M llvm/test/CodeGen/X86/vector-trunc-ssat.ll
M llvm/test/CodeGen/X86/vector-trunc-usat.ll
M llvm/test/CodeGen/X86/vector-trunc.ll
Log Message:
-----------
[X86][SSE] lowerV8I16Shuffle - lower compaction shuffles using PACKUSDW(PBLENDW,PBLENDW) on SSE41+
Similar to the lowerV16I8Shuffle implementation, for binary compaction v8i16 shuffles we can avoid the PUNPCKLDQ(PSHUFB,PSHUFB) pattern on SSE41+ targets by using PACKUSDW and PBLENDW. Before SSE41 we would need to use PACKSSDW but that requires sign extension that seems to destroy any gains, even on targets without PSHUFB.
This is a bigger gain on AMD than Intel targets but should never be a regression, and avoiding the shuffle mask load(s) is always useful.
Noticed in codegen while dealing with PR31443.
Commit: 87fd686f6fddc0f5cfb78934b01c32c3c8893443
https://github.com/llvm/llvm-project/commit/87fd686f6fddc0f5cfb78934b01c32c3c8893443
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2020-04-04 (Sat, 04 Apr 2020)
Changed paths:
M llvm/test/Analysis/CostModel/X86/vector-extract.ll
M llvm/test/Analysis/CostModel/X86/vector-insert.ll
Log Message:
-----------
[CostModel][X86] Add insert/extract cost tests for sub-128bit vXi8/vXi16 vectors
Commit: 6a57ba17c032807fcea04c622cce32f2c423610f
https://github.com/llvm/llvm-project/commit/6a57ba17c032807fcea04c622cce32f2c423610f
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2020-04-04 (Sat, 04 Apr 2020)
Changed paths:
M llvm/test/Analysis/CostModel/X86/shuffle-broadcast.ll
M llvm/test/Analysis/CostModel/X86/shuffle-reverse.ll
M llvm/test/Analysis/CostModel/X86/shuffle-single-src.ll
M llvm/test/Analysis/CostModel/X86/shuffle-transpose.ll
M llvm/test/Analysis/CostModel/X86/shuffle-two-src.ll
Log Message:
-----------
[CostModel][X86] Add shuffle cost tests for sub-128bit vectors
Compare: https://github.com/llvm/llvm-project/compare/b90ea4f34194...6a57ba17c032
More information about the All-commits
mailing list