xref: /openbmc/qemu/tests/tcg/hexagon/test_round.S (revision 4f9a4cd37eb2f0c4e6be83640fcc5c31d4bf99e3)
1*585a86b1SNiccolò Izzo/*
2*585a86b1SNiccolò Izzo * Purpose: test example, verify the soundness of the cround operation
3*585a86b1SNiccolò Izzo * 106 = 0b1101010 with the comma at third digit is 12.5 which is crounded to 12
4*585a86b1SNiccolò Izzo * but rounded to 13.
5*585a86b1SNiccolò Izzo */
6*585a86b1SNiccolò Izzo
7*585a86b1SNiccolò Izzo    .text
8*585a86b1SNiccolò Izzo    .globl _start
9*585a86b1SNiccolò Izzo
10*585a86b1SNiccolò Izzo_start:
11*585a86b1SNiccolò Izzo    {
12*585a86b1SNiccolò Izzo        r1 = #200
13*585a86b1SNiccolò Izzo    }
14*585a86b1SNiccolò Izzo    {
15*585a86b1SNiccolò Izzo        r2 = round(r1, #4)
16*585a86b1SNiccolò Izzo    }
17*585a86b1SNiccolò Izzo    {
18*585a86b1SNiccolò Izzo        p0 = cmp.eq(r2, #13); if (p0.new) jump:t test2
19*585a86b1SNiccolò Izzo        jump fail
20*585a86b1SNiccolò Izzo    }
21*585a86b1SNiccolò Izzo
22*585a86b1SNiccolò Izzotest2:
23*585a86b1SNiccolò Izzo    {
24*585a86b1SNiccolò Izzo        r2 = cround(r1, #4)
25*585a86b1SNiccolò Izzo    }
26*585a86b1SNiccolò Izzo    {
27*585a86b1SNiccolò Izzo        p0 = cmp.eq(r2, #12); if (p0.new) jump:t pass
28*585a86b1SNiccolò Izzo        jump fail
29*585a86b1SNiccolò Izzo    }
30