[InstCombine] Transform extelt-trunc -> bitcast-extelt
authorDaan Sprenkels <daan@dsprenkels.com>
Sun, 29 Mar 2020 19:48:54 +0000 (21:48 +0200)
committerDaan Sprenkels <daan@dsprenkels.com>
Tue, 31 Mar 2020 09:53:41 +0000 (11:53 +0200)
commit464b9aeafe29104a1a8391f43f91835eeca473b3
tree8afd0c3b4e3566b9e99cc317bb4b371cf5c3b3ed
parentb6d2212f5276bcf0e5ef6b5dc0c985b72664ae34
[InstCombine] Transform extelt-trunc -> bitcast-extelt

Canonicalize the case when a scalar extracted from a vector is
truncated.  Transform such cases to bitcast-then-extractelement.
This will enable erasing the truncate operation.

This commit fixes PR45314.

reviewers: spatel

Differential revision: https://reviews.llvm.org/D76983
llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
llvm/test/Transforms/InstCombine/ExtractCast.ll
llvm/test/Transforms/InstCombine/trunc-extractelement.ll