xref: /openbmc/qemu/tests/tcg/hexagon/test_vcmpb.S (revision 4f9a4cd37eb2f0c4e6be83640fcc5c31d4bf99e3)
1*585a86b1SNiccolò Izzo/*
2*585a86b1SNiccolò Izzo * Purpose: test example, verify the soundness of the vector compare bytes
3*585a86b1SNiccolò Izzo * operation.
4*585a86b1SNiccolò Izzo *
5*585a86b1SNiccolò Izzo * Vector byte comparison between 0x1234567887654321 and 0x1234567800000000
6*585a86b1SNiccolò Izzo * should result in 0b11110000 in binary, or 0xf0 in hex.
7*585a86b1SNiccolò Izzo */
8*585a86b1SNiccolò Izzo
9*585a86b1SNiccolò Izzo    .text
10*585a86b1SNiccolò Izzo    .globl _start
11*585a86b1SNiccolò Izzo
12*585a86b1SNiccolò Izzo_start:
13*585a86b1SNiccolò Izzo    {
14*585a86b1SNiccolò Izzo        r0 = #0x87654321
15*585a86b1SNiccolò Izzo        r1 = #0x12345678
16*585a86b1SNiccolò Izzo    }
17*585a86b1SNiccolò Izzo    {
18*585a86b1SNiccolò Izzo        r2 = #0x00000000
19*585a86b1SNiccolò Izzo        r3 = #0x12345678
20*585a86b1SNiccolò Izzo    }
21*585a86b1SNiccolò Izzo    {
22*585a86b1SNiccolò Izzo        p2 = vcmpb.eq(r1:0, r3:2)
23*585a86b1SNiccolò Izzo    }
24*585a86b1SNiccolò Izzo    {
25*585a86b1SNiccolò Izzo        r4 = p2
26*585a86b1SNiccolò Izzo    }
27*585a86b1SNiccolò Izzo    {
28*585a86b1SNiccolò Izzo        p0 = cmp.eq(r4, #0xf0); if (p0.new) jump:t pass
29*585a86b1SNiccolò Izzo        jump fail
30*585a86b1SNiccolò Izzo    }
31