1# RUN: llvm-mc %s -triple=mips-unknown-unknown -show-encoding -mcpu=mips32r2 -show-inst| \
2# RUN: FileCheck -check-prefix=CHECK32  %s
3# RUN: llvm-mc %s -triple=mips64-unknown-unknown -show-encoding -mcpu=mips64r2 -show-inst \
4# RUN: | FileCheck -check-prefix=CHECK64  %s
5
6# CHECK32:    break                      # encoding: [0x00,0x00,0x00,0x0d]
7# CHECK32-NEXT:                          # <MCInst #{{[0-9]+}} BREAK
8# CHECK32:    break   7                  # encoding: [0x00,0x07,0x00,0x0d]
9# CHECK32:    break   7, 5               # encoding: [0x00,0x07,0x01,0x4d]
10# CHECK32:    eret                       # encoding: [0x42,0x00,0x00,0x18]
11# CHECK32-NEXT:                          # <MCInst #{{[0-9]+}} ERET
12# CHECK32:    deret                      # encoding: [0x42,0x00,0x00,0x1f]
13# CHECK32-NEXT:                          # <MCInst #{{[0-9]+}} DERET
14# CHECK32:    di                         # encoding: [0x41,0x60,0x60,0x00]
15# CHECK32-NEXT:                          # <MCInst #{{[0-9]+}} DI
16# CHECK32:    di      $10                # encoding: [0x41,0x6a,0x60,0x00]
17# CHECK32:    ei                         # encoding: [0x41,0x60,0x60,0x20]
18# CHECK32-NEXT:                          # <MCInst #{{[0-9]+}} EI
19# CHECK32:    ei      $10                # encoding: [0x41,0x6a,0x60,0x20]
20# CHECK32:    wait                       # encoding: [0x42,0x00,0x00,0x20]
21# CHECK32-NEXT:                          # <MCInst #{{[0-9]+}} WAIT
22# CHECK32:    teq     $zero, $3          # encoding: [0x00,0x03,0x00,0x34]
23# CHECK32:    teq     $zero, $3, 1       # encoding: [0x00,0x03,0x00,0x74]
24# CHECK32:    teqi    $3, 1              # encoding: [0x04,0x6c,0x00,0x01]
25# CHECK32:    tge     $zero, $3          # encoding: [0x00,0x03,0x00,0x30]
26# CHECK32:    tge     $zero, $3, 3       # encoding: [0x00,0x03,0x00,0xf0]
27# CHECK32:    tgei    $3, 3              # encoding: [0x04,0x68,0x00,0x03]
28# CHECK32:    tgeu    $zero, $3          # encoding: [0x00,0x03,0x00,0x31]
29# CHECK32:    tgeu    $zero, $3, 7       # encoding: [0x00,0x03,0x01,0xf1]
30# CHECK32:    tgeiu   $3, 7              # encoding: [0x04,0x69,0x00,0x07]
31# CHECK32:    tlt     $zero, $3          # encoding: [0x00,0x03,0x00,0x32]
32# CHECK32:    tlt     $zero, $3, 31      # encoding: [0x00,0x03,0x07,0xf2]
33# CHECK32:    tlti    $3, 31             # encoding: [0x04,0x6a,0x00,0x1f]
34# CHECK32:    tltu    $zero, $3          # encoding: [0x00,0x03,0x00,0x33]
35# CHECK32:    tltu    $zero, $3, 255     # encoding: [0x00,0x03,0x3f,0xf3]
36# CHECK32:    tltiu   $3, 255            # encoding: [0x04,0x6b,0x00,0xff]
37# CHECK32:    tne     $zero, $3          # encoding: [0x00,0x03,0x00,0x36]
38# CHECK32:    tne     $zero, $3, 1023    # encoding: [0x00,0x03,0xff,0xf6]
39# CHECK32:    tnei    $3, 1023           # encoding: [0x04,0x6e,0x03,0xff]
40
41# CHECK64:    break                      # encoding: [0x00,0x00,0x00,0x0d]
42# CHECK64-NEXT:                          # <MCInst #{{[0-9]+}} BREAK
43# CHECK64:    break   7                  # encoding: [0x00,0x07,0x00,0x0d]
44# CHECK64:    break   7, 5               # encoding: [0x00,0x07,0x01,0x4d]
45# CHECK64:    eret                       # encoding: [0x42,0x00,0x00,0x18]
46# CHECK64-NEXT:                          # <MCInst #{{[0-9]+}} ERET
47# CHECK64:    deret                      # encoding: [0x42,0x00,0x00,0x1f]
48# CHECK64-NEXT:                          # <MCInst #{{[0-9]+}} DERET
49# CHECK64:    di                         # encoding: [0x41,0x60,0x60,0x00]
50# CHECK64-NEXT:                          # <MCInst #{{[0-9]+}} DI
51# CHECK64:    di      $10                # encoding: [0x41,0x6a,0x60,0x00]
52# CHECK64:    ei                         # encoding: [0x41,0x60,0x60,0x20]
53# CHECK64-NEXT:                          # <MCInst #{{[0-9]+}} EI
54# CHECK64:    ei      $10                # encoding: [0x41,0x6a,0x60,0x20]
55# CHECK64:    wait                       # encoding: [0x42,0x00,0x00,0x20]
56# CHECK64-NEXT:                          # <MCInst #{{[0-9]+}} WAIT
57# CHECK64:    teq     $zero, $3          # encoding: [0x00,0x03,0x00,0x34]
58# CHECK64:    teq     $zero, $3, 1       # encoding: [0x00,0x03,0x00,0x74]
59# CHECK64:    teqi    $3, 1              # encoding: [0x04,0x6c,0x00,0x01]
60# CHECK64:    tge     $zero, $3          # encoding: [0x00,0x03,0x00,0x30]
61# CHECK64:    tge     $zero, $3, 3       # encoding: [0x00,0x03,0x00,0xf0]
62# CHECK64:    tgei    $3, 3              # encoding: [0x04,0x68,0x00,0x03]
63# CHECK64:    tgeu    $zero, $3          # encoding: [0x00,0x03,0x00,0x31]
64# CHECK64:    tgeu    $zero, $3, 7       # encoding: [0x00,0x03,0x01,0xf1]
65# CHECK64:    tgeiu   $3, 7              # encoding: [0x04,0x69,0x00,0x07]
66# CHECK64:    tlt     $zero, $3          # encoding: [0x00,0x03,0x00,0x32]
67# CHECK64:    tlt     $zero, $3, 31      # encoding: [0x00,0x03,0x07,0xf2]
68# CHECK64:    tlti    $3, 31             # encoding: [0x04,0x6a,0x00,0x1f]
69# CHECK64:    tltu    $zero, $3          # encoding: [0x00,0x03,0x00,0x33]
70# CHECK64:    tltu    $zero, $3, 255     # encoding: [0x00,0x03,0x3f,0xf3]
71# CHECK64:    tltiu   $3, 255            # encoding: [0x04,0x6b,0x00,0xff]
72# CHECK64:    tne     $zero, $3          # encoding: [0x00,0x03,0x00,0x36]
73# CHECK64:    tne     $zero, $3, 1023    # encoding: [0x00,0x03,0xff,0xf6]
74# CHECK64:    tnei    $3, 1023           # encoding: [0x04,0x6e,0x03,0xff]
75
76    break
77    break 7
78    break 7,5
79    eret
80    deret
81    di
82    di  $0
83    di  $10
84
85    ei
86    ei  $0
87    ei  $10
88
89    wait
90
91    teq   $0,$3
92    teq   $0,$3,1
93    teqi  $3,1
94    tge   $0,$3
95    tge   $0,$3,3
96    tgei  $3,3
97    tgeu  $0,$3
98    tgeu  $0,$3,7
99    tgeiu $3,7
100    tlt   $0,$3
101    tlt   $0,$3,31
102    tlti  $3,31
103    tltu  $0,$3
104    tltu  $0,$3,255
105    tltiu $3,255
106    tne   $0,$3
107    tne   $0,$3,1023
108    tnei  $3,1023
109