[PowerPC] Fix vector equality comparison for v2i64 pre-Power8
authorNemanja Ivanovic <nemanja.i.ibm@gmail.com>
Tue, 21 Dec 2021 20:28:41 +0000 (14:28 -0600)
committerNemanja Ivanovic <nemanja.i.ibm@gmail.com>
Tue, 21 Dec 2021 20:28:41 +0000 (14:28 -0600)
commit1674d9b6b2da914619c7c197336bb74f7988cf38
tree365e0e1e735d3511b97b5633614b04c3cee70286
parenta3ea9052d6a16b13607046df6a324403fb51888d
[PowerPC] Fix vector equality comparison for v2i64 pre-Power8

The current code makes the assumption that equality
comparison can be performed with a word comparison
instruction. While this is true if the entire 64-bit
results are used, it does not generally work. It is
possible that the low order words and high order
words produce different results and a user of only
one will get the wrong result.

This patch adds an and of the result words so that
each word has the result of the comparison of the
entire doubleword that contains it.

Differential revision: https://reviews.llvm.org/D115678
llvm/lib/Target/PowerPC/PPCISelLowering.cpp
llvm/test/CodeGen/PowerPC/vec-icmpeq-v2i64-p7.ll [new file with mode: 0644]