xref: /openbmc/qemu/tests/tcg/hexagon/test_vmaxh.S (revision 585a86b1)
1*585a86b1SNiccolò Izzo/*
2*585a86b1SNiccolò Izzo * Purpose: test example, verify the soundness of the vrmaxh operation.
3*585a86b1SNiccolò Izzo *
4*585a86b1SNiccolò Izzo * The maximum between  0x0002000300010005 and 0x0003000200020007 is
5*585a86b1SNiccolò Izzo * 0x0003000300020007.
6*585a86b1SNiccolò Izzo *
7*585a86b1SNiccolò Izzo *      input:  r1 = 0x00010003 r0 = 0x00010005 r3 = 0x00030002 r2 = 0x00020007
8*585a86b1SNiccolò Izzo *     output:  r1 = 0x00030003 r0 = 0x00020007
9*585a86b1SNiccolò Izzo */
10*585a86b1SNiccolò Izzo
11*585a86b1SNiccolò Izzo    .text
12*585a86b1SNiccolò Izzo    .globl _start
13*585a86b1SNiccolò Izzo
14*585a86b1SNiccolò Izzo_start:
15*585a86b1SNiccolò Izzo    {
16*585a86b1SNiccolò Izzo        r0 = #65541
17*585a86b1SNiccolò Izzo        r1 = #65539
18*585a86b1SNiccolò Izzo    }
19*585a86b1SNiccolò Izzo    {
20*585a86b1SNiccolò Izzo        r2 = #131079
21*585a86b1SNiccolò Izzo        r3 = #196610
22*585a86b1SNiccolò Izzo    }
23*585a86b1SNiccolò Izzo    {
24*585a86b1SNiccolò Izzo        r1:0 = vmaxh(r1:0, r3:2)
25*585a86b1SNiccolò Izzo    }
26*585a86b1SNiccolò Izzo    {
27*585a86b1SNiccolò Izzo        p0 = cmp.eq(r0, #131079); if (p0.new) jump:t test2
28*585a86b1SNiccolò Izzo        jump fail
29*585a86b1SNiccolò Izzo    }
30*585a86b1SNiccolò Izzo
31*585a86b1SNiccolò Izzotest2:
32*585a86b1SNiccolò Izzo    {
33*585a86b1SNiccolò Izzo        p0 = cmp.eq(r1, #196611); if (p0.new) jump:t pass
34*585a86b1SNiccolò Izzo        jump fail
35*585a86b1SNiccolò Izzo    }
36