# RUN: llvm-mc --disassemble %s -triple=sparc-unknown-linux | FileCheck %s

# CHECK: add %g0, %g0, %g0
0x80 0x00 0x00 0x00

# CHECK: add %g1, %g2, %g3
0x86 0x00 0x40 0x02

# CHECK: add %o0, %o1, %l0
0xa0 0x02 0x00 0x09

# CHECK: add %o0, 10,  %l0
0xa0 0x02 0x20 0x0a

# CHECK: addcc %g1, %g2, %g3
0x86 0x80 0x40 0x02

# CHECK: addxcc %g1, %g2, %g3
0x86 0xc0 0x40 0x02

# CHECK: udiv %g1, %g2, %g3
0x86 0x70 0x40 0x02

# CHECK: sdiv %g1, %g2, %g3
0x86 0x78 0x40 0x02

# CHECK: and %g1, %g2, %g3
0x86 0x08 0x40 0x02

# CHECK: andn %g1, %g2, %g3
0x86 0x28 0x40 0x02

# CHECK: or %g1, %g2, %g3
0x86 0x10 0x40 0x02

# CHECK: orn %g1, %g2, %g3
0x86 0x30 0x40 0x02

# CHECK: xor %g1, %g2, %g3
0x86 0x18 0x40 0x02

# CHECK: xnor %g1, %g2, %g3
0x86 0x38 0x40 0x02

# CHECK: umul %g1, %g2, %g3
0x86 0x50 0x40 0x02

# CHECK: smul %g1, %g2, %g3
0x86 0x58 0x40 0x02

# CHECK: nop
0x01 0x00 0x00 0x00

# CHECK: sethi 10, %l0
0x21 0x00 0x00 0x0a

# CHECK: sll %g1, %g2, %g3
0x87 0x28 0x40 0x02

# CHECK: sll %g1, 31, %g3
0x87 0x28 0x60 0x1f

# CHECK: srl %g1, %g2, %g3
0x87 0x30 0x40 0x02

# CHECK: srl %g1, 31, %g3
0x87 0x30 0x60 0x1f

# CHECK: sra %g1, %g2, %g3
0x87 0x38 0x40 0x02

# CHECK: sra %g1, 31, %g3
0x87 0x38 0x60 0x1f

# CHECK: sub %g1, %g2, %g3
0x86 0x20 0x40 0x02

# CHECK: subcc %g1, %g2, %g3
0x86 0xa0 0x40 0x02

# CHECK: subxcc %g1, %g2, %g3
0x86 0xe0 0x40 0x02

# CHECK: ba .-4
0x10 0xbf 0xff 0xff

# CHECK: bne .-4
0x12 0xbf 0xff 0xff

# CHECK: be .-4
0x02 0xbf 0xff 0xff

# CHECK: bg .-4
0x14 0xbf 0xff 0xff

# CHECK: ble .-4
0x04 0xbf 0xff 0xff

# CHECK: bge .-4
0x16 0xbf 0xff 0xff

# CHECK: bl .-4
0x06 0xbf 0xff 0xff

# CHECK: bgu .-4
0x18 0xbf 0xff 0xff

# CHECK: bleu .-4
0x08 0xbf 0xff 0xff

# CHECK: bcc .-4
0x1a 0xbf 0xff 0xff

# CHECK: bcs .-4
0x0a 0xbf 0xff 0xff

# CHECK: bpos .-4
0x1c 0xbf 0xff 0xff

# CHECK: bneg .-4
0x0c 0xbf 0xff 0xff

# CHECK: bvc .-4
0x1e 0xbf 0xff 0xff

# CHECK: bvs .-4
0x0e 0xbf 0xff 0xff

# CHECK: fbu .-4
0x0f 0xbf 0xff 0xff

# CHECK: fbg .-4
0x0d 0xbf 0xff 0xff

# CHECK: fbug .-4
0x0b 0xbf 0xff 0xff

# CHECK: fbl .-4
0x09 0xbf 0xff 0xff

# CHECK: fbul .-4
0x07 0xbf 0xff 0xff

# CHECK: fblg .-4
0x05 0xbf 0xff 0xff

# CHECK: fbne .-4
0x03 0xbf 0xff 0xff

# CHECK: fbe .-4
0x13 0xbf 0xff 0xff

# CHECK: fbue .-4
0x15 0xbf 0xff 0xff

# CHECK: fbge .-4
0x17 0xbf 0xff 0xff

# CHECK: fbuge .-4
0x19 0xbf 0xff 0xff

# CHECK: fble .-4
0x1b 0xbf 0xff 0xff

# CHECK: fbule .-4
0x1d 0xbf 0xff 0xff

# CHECK: fbo .-4
0x1f 0xbf 0xff 0xff

# CHECK: cba .-4
0x11 0xff 0xff 0xff

# CHECK: cbn .-4
0x01 0xff 0xff 0xff

# CHECK: cb3 .-4
0x0f 0xff 0xff 0xff

# CHECK: cb2 .-4
0x0d 0xff 0xff 0xff

# CHECK: cb23 .-4
0x0b 0xff 0xff 0xff

# CHECK: cb1 .-4
0x09 0xff 0xff 0xff

# CHECK: cb13 .-4
0x07 0xff 0xff 0xff

# CHECK: cb12 .-4
0x05 0xff 0xff 0xff

# CHECK: cb123 .-4
0x03 0xff 0xff 0xff

# CHECK: cb03 .-4
0x15 0xff 0xff 0xff

# CHECK: cb02 .-4
0x17 0xff 0xff 0xff

# CHECK: cb023 .-4
0x19 0xff 0xff 0xff

# CHECK: cb01 .-4
0x1b 0xff 0xff 0xff

# CHECK: cb013 .-4
0x1d 0xff 0xff 0xff

# CHECK: cb012 .-4
0x1f 0xff 0xff 0xff

# CHECK: restore
0x81 0xe8 0x00 0x00

# CHECK: call .+16
0x40 0x00 0x00 0x04

# CHECK: add %g1, -10, %g2
0x84 0x00 0x7f 0xf6

# CHECK: save %sp, -196, %sp
0x9d 0xe3 0xbf 0x3c

# CHECK: cmp %g1, -2
0x80 0xa0 0x7f 0xfe

# CHECK: unimp 12
0x00 0x00 0x00 0x0c

# CHECK: jmp %g1+12
0x81 0xc0 0x60 0x0c

# CHECK: retl
0x81 0xc3 0xe0 0x08

# CHECK: ret
0x81 0xc7 0xe0 0x08

# CHECK:  rett %i7+8
0x81 0xcf 0xe0 0x08

# CHECK:  rett %i7+%i0
0x81 0xcf 0xc0 0x18

# CHECK: stbar
0x81 0x43 0xc0 0x00

# CHECK: ta %i5
0x91 0xd0 0x00 0x1d

# CHECK: ta 82
0x91 0xd0 0x20 0x52

# CHECK: ta %g1 + %i2    
0x91 0xd0 0x40 0x1a

# CHECK: ta %i5 + 41     
0x91 0xd7 0x60 0x29

# CHECK: tn %i5          
0x81 0xd0 0x00 0x1d

# CHECK: tne 82          
0x93 0xd0 0x20 0x52

# CHECK: te %g1 + %i2    
0x83 0xd0 0x40 0x1a

# CHECK: tg %i5 + 41     
0x95 0xd7 0x60 0x29

# CHECK: tle %i5         
0x85 0xd0 0x00 0x1d

# CHECK: tge 82          
0x97 0xd0 0x20 0x52

# CHECK: tl %g1 + %i2    
0x87 0xd0 0x40 0x1a

# CHECK: tgu %i5 + 41    
0x99 0xd7 0x60 0x29

# CHECK: tleu %i5        
0x89 0xd0 0x00 0x1d

# CHECK: tcc 82          
0x9b 0xd0 0x20 0x52

# CHECK: tcs %g1 + %i2   
0x8b 0xd0 0x40 0x1a

# CHECK: tpos %i5 + 41   
0x9d 0xd7 0x60 0x29

# CHECK: tneg %i5        
0x8d 0xd0 0x00 0x1d

# CHECK: tvc 82          
0x9f 0xd0 0x20 0x52

# CHECK: tvs %g1 + %i2   
0x8f 0xd0 0x40 0x1a
