blob: cd3de7222a79d8eb552a773f56aa9fefe62bd786 [file] [log] [blame]
Simon Dardis8086b9d2018-04-26 16:06:34 +00001# RUN: llvm-mc %s -triple=mips-unknown-unknown -show-encoding -mcpu=mips32r2 -show-inst| \
Vladimir Medic29410f92013-07-17 14:05:19 +00002# RUN: FileCheck -check-prefix=CHECK32 %s
Simon Dardis8086b9d2018-04-26 16:06:34 +00003# RUN: llvm-mc %s -triple=mips64-unknown-unknown -show-encoding -mcpu=mips64r2 -show-inst \
Vladimir Medic8277c182013-08-26 10:02:40 +00004# RUN: | FileCheck -check-prefix=CHECK64 %s
Vladimir Medic29410f92013-07-17 14:05:19 +00005
6# CHECK32: break # encoding: [0x00,0x00,0x00,0x0d]
Simon Dardis8086b9d2018-04-26 16:06:34 +00007# CHECK32-NEXT: # <MCInst #{{[0-9]+}} BREAK
Tim Northoveree20caa2014-05-12 18:04:06 +00008# CHECK32: break 7 # encoding: [0x00,0x07,0x00,0x0d]
Vladimir Medic29410f92013-07-17 14:05:19 +00009# CHECK32: break 7, 5 # encoding: [0x00,0x07,0x01,0x4d]
Vladimir Medic29410f92013-07-17 14:05:19 +000010# CHECK32: eret # encoding: [0x42,0x00,0x00,0x18]
Simon Dardis8086b9d2018-04-26 16:06:34 +000011# CHECK32-NEXT: # <MCInst #{{[0-9]+}} ERET
Vladimir Medic29410f92013-07-17 14:05:19 +000012# CHECK32: deret # encoding: [0x42,0x00,0x00,0x1f]
Simon Dardis8086b9d2018-04-26 16:06:34 +000013# CHECK32-NEXT: # <MCInst #{{[0-9]+}} DERET
Vladimir Medic939877e2013-08-12 13:07:23 +000014# CHECK32: di # encoding: [0x41,0x60,0x60,0x00]
Simon Dardis8086b9d2018-04-26 16:06:34 +000015# CHECK32-NEXT: # <MCInst #{{[0-9]+}} DI
Vladimir Medic939877e2013-08-12 13:07:23 +000016# CHECK32: di $10 # encoding: [0x41,0x6a,0x60,0x00]
17# CHECK32: ei # encoding: [0x41,0x60,0x60,0x20]
Simon Dardis8086b9d2018-04-26 16:06:34 +000018# CHECK32-NEXT: # <MCInst #{{[0-9]+}} EI
Vladimir Medic939877e2013-08-12 13:07:23 +000019# CHECK32: ei $10 # encoding: [0x41,0x6a,0x60,0x20]
Vladimir Medic2df9ee62013-08-16 10:17:03 +000020# CHECK32: wait # encoding: [0x42,0x00,0x00,0x20]
Simon Dardis8086b9d2018-04-26 16:06:34 +000021# CHECK32-NEXT: # <MCInst #{{[0-9]+}} WAIT
Vladimir Medic8277c182013-08-26 10:02:40 +000022# 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]
Vladimir Medic29410f92013-07-17 14:05:19 +000040
41# CHECK64: break # encoding: [0x00,0x00,0x00,0x0d]
Simon Dardis8086b9d2018-04-26 16:06:34 +000042# CHECK64-NEXT: # <MCInst #{{[0-9]+}} BREAK
Tim Northoveree20caa2014-05-12 18:04:06 +000043# CHECK64: break 7 # encoding: [0x00,0x07,0x00,0x0d]
Vladimir Medic29410f92013-07-17 14:05:19 +000044# CHECK64: break 7, 5 # encoding: [0x00,0x07,0x01,0x4d]
Vladimir Medic29410f92013-07-17 14:05:19 +000045# CHECK64: eret # encoding: [0x42,0x00,0x00,0x18]
Simon Dardis8086b9d2018-04-26 16:06:34 +000046# CHECK64-NEXT: # <MCInst #{{[0-9]+}} ERET
Vladimir Medic29410f92013-07-17 14:05:19 +000047# CHECK64: deret # encoding: [0x42,0x00,0x00,0x1f]
Simon Dardis8086b9d2018-04-26 16:06:34 +000048# CHECK64-NEXT: # <MCInst #{{[0-9]+}} DERET
Vladimir Medic939877e2013-08-12 13:07:23 +000049# CHECK64: di # encoding: [0x41,0x60,0x60,0x00]
Simon Dardis8086b9d2018-04-26 16:06:34 +000050# CHECK64-NEXT: # <MCInst #{{[0-9]+}} DI
Vladimir Medic939877e2013-08-12 13:07:23 +000051# CHECK64: di $10 # encoding: [0x41,0x6a,0x60,0x00]
52# CHECK64: ei # encoding: [0x41,0x60,0x60,0x20]
Simon Dardis8086b9d2018-04-26 16:06:34 +000053# CHECK64-NEXT: # <MCInst #{{[0-9]+}} EI
Vladimir Medic939877e2013-08-12 13:07:23 +000054# CHECK64: ei $10 # encoding: [0x41,0x6a,0x60,0x20]
Vladimir Medic2df9ee62013-08-16 10:17:03 +000055# CHECK64: wait # encoding: [0x42,0x00,0x00,0x20]
Simon Dardis8086b9d2018-04-26 16:06:34 +000056# CHECK64-NEXT: # <MCInst #{{[0-9]+}} WAIT
Vladimir Medic8277c182013-08-26 10:02:40 +000057# 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
Vladimir Medic29410f92013-07-17 14:05:19 +000076 break
77 break 7
78 break 7,5
Vladimir Medic29410f92013-07-17 14:05:19 +000079 eret
80 deret
Vladimir Medic939877e2013-08-12 13:07:23 +000081 di
82 di $0
83 di $10
84
85 ei
86 ei $0
87 ei $10
Vladimir Medic2df9ee62013-08-16 10:17:03 +000088
89 wait
Vladimir Medic8277c182013-08-26 10:02:40 +000090
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