[LLVMdev] vector compare

Eli Friedman eli.friedman at gmail.com
Thu Dec 25 01:54:39 PST 2008


On Thu, Dec 25, 2008 at 1:28 AM, Claudio Basile <cbasile at tempo-da.com> wrote:
> Hi all,
>
> is there any way to compare two 128bit values?
> I have tried 3 different approaches and they all fail with an internal
> assertion.
> I'm running llvm 2.4 on x86 with the following command line:
>
>  > llvm-as test.ll -o test.bc
>  > llc test.bc -filetype=asm
>
> I would expect the code generator to emit a sequence of SSE
> instructions.

Approaches 1 and 2 depend on some stuff that hasn't really stabilized
yet... you should get much better results with vicmp.

> define i1 @VectorCompare3(i128 %x, i128 %y) {
>     %1 = icmp eq i128 %x, %y
>     ret i1 %1
> }
>
> This fails with:
>
> Cannot yet select: 0x10182b4: i8 = setcc 0x101844c, 0x10184d4, 0x100becc

The result isn't pretty, but this appears to work on x86 using a
recent SVN build... I wouldn't be surprised if this was fixed
post-2.4.

-Eli



More information about the llvm-dev mailing list