[all-commits] [llvm/llvm-project] 06eae3: [InstCombine] add tests for cast-of-shuffle; NFC
RotateRight via All-commits
all-commits at lists.llvm.org
Tue May 25 05:44:33 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 06eae35689ee1a190cc3f2310e289b2659654755
https://github.com/llvm/llvm-project/commit/06eae35689ee1a190cc3f2310e289b2659654755
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-05-25 (Tue, 25 May 2021)
Changed paths:
M llvm/test/Transforms/InstCombine/vector-casts.ll
Log Message:
-----------
[InstCombine] add tests for cast-of-shuffle; NFC
Commit: 0bab0f6161193cd0cd24b7b0fc51590a60e810d2
https://github.com/llvm/llvm-project/commit/0bab0f6161193cd0cd24b7b0fc51590a60e810d2
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-05-25 (Tue, 25 May 2021)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
M llvm/test/Transforms/InstCombine/X86/x86-f16c-inseltpoison.ll
M llvm/test/Transforms/InstCombine/X86/x86-f16c.ll
M llvm/test/Transforms/InstCombine/shuffle-cast-dist.ll
M llvm/test/Transforms/InstCombine/shufflevec-bitcast-inseltpoison.ll
M llvm/test/Transforms/InstCombine/shufflevec-bitcast.ll
M llvm/test/Transforms/InstCombine/vector-casts.ll
Log Message:
-----------
[InstCombine] canonicalize cast before unary shuffle
We could go either direction on this transform. VectorCombine already goes this
way for bitcasts (and handles more complicated cases using the cost model), so
let's try cast-first.
Deferring completely to VectorCombine is another possibility. But the backend
should be able to invert this easily when the vectors have the same shape, so
it doesn't seem like a transform that we need to avoid.
The motivating example from https://llvm.org/PR49081 has an int-to-float
sandwiched between 2 shuffles, and the backend currently does not reduce that,
so on x86, we get something like:
pshufd $249, %xmm0, %xmm0]
cvtdq2ps %xmm0, %xmm0
shufps $144, %xmm0, %xmm0
...instead of just a single conversion instruction.
Differential Revision: https://reviews.llvm.org/D103038
Compare: https://github.com/llvm/llvm-project/compare/f718a53d7e13...0bab0f616119
More information about the All-commits
mailing list