]> granicus.if.org Git - llvm/commit
[X86][AVX] Push sign extensions of comparison bool results through bitops (PR42025)
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sat, 5 Oct 2019 20:49:34 +0000 (20:49 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sat, 5 Oct 2019 20:49:34 +0000 (20:49 +0000)
commite4e0ad4d62c4b326f0b35ce3eac11d3fa27f0f14
treed9b6bbd64b14dabc990c863f695996e3ec2425e3
parent8646f280f2cdf699f0cfb527ad48c73946468e35
[X86][AVX] Push sign extensions of comparison bool results through bitops (PR42025)

As discussed on PR42025, with more complex boolean math we can end up with many truncations/extensions of the comparison results through each bitop.

This patch handles the cases introduced in combineBitcastvxi1 by pushing the sign extension through the AND/OR/XOR ops so its just the original SETCC ops that gets extended.

Differential Revision: https://reviews.llvm.org/D68226

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@373834 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/bitcast-and-setcc-256.ll
test/CodeGen/X86/bitcast-and-setcc-512.ll