xref: /openbmc/qemu/tests/tcg/hexagon/test_cmp.S (revision 4f9a4cd37eb2f0c4e6be83640fcc5c31d4bf99e3)
1*585a86b1SNiccolò Izzo/* Purpose: test a signed and unsigned comparison */
2*585a86b1SNiccolò Izzo
3*585a86b1SNiccolò Izzo    .text
4*585a86b1SNiccolò Izzo    .globl _start
5*585a86b1SNiccolò Izzo
6*585a86b1SNiccolò Izzo_start:
7*585a86b1SNiccolò Izzo    {
8*585a86b1SNiccolò Izzo        jump signed
9*585a86b1SNiccolò Izzo    }
10*585a86b1SNiccolò Izzo
11*585a86b1SNiccolò Izzo    .globl signed
12*585a86b1SNiccolò Izzosigned:
13*585a86b1SNiccolò Izzo    {
14*585a86b1SNiccolò Izzo        r0 = #-2
15*585a86b1SNiccolò Izzo        r1 = #0
16*585a86b1SNiccolò Izzo    }
17*585a86b1SNiccolò Izzo    {
18*585a86b1SNiccolò Izzo        p0 = cmp.lt(r0, r1); if (p0.new) jump:t unsigned
19*585a86b1SNiccolò Izzo        jump fail
20*585a86b1SNiccolò Izzo    }
21*585a86b1SNiccolò Izzo
22*585a86b1SNiccolò Izzo    .globl unsigned
23*585a86b1SNiccolò Izzounsigned:
24*585a86b1SNiccolò Izzo    {
25*585a86b1SNiccolò Izzo        r0 = #-2
26*585a86b1SNiccolò Izzo        r1 = #0
27*585a86b1SNiccolò Izzo    }
28*585a86b1SNiccolò Izzo    {
29*585a86b1SNiccolò Izzo        p0 = cmp.gtu(r0, r1); if (p0.new) jump:t pass
30*585a86b1SNiccolò Izzo        jump fail
31*585a86b1SNiccolò Izzo    }
32