# 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 4194303
0x10 0xbf 0xff 0xff

# CHECK: bne 4194303
0x12 0xbf 0xff 0xff

# CHECK: be 4194303
0x02 0xbf 0xff 0xff

# CHECK: bg 4194303
0x14 0xbf 0xff 0xff

# CHECK: ble 4194303
0x04 0xbf 0xff 0xff

# CHECK: bge 4194303
0x16 0xbf 0xff 0xff

# CHECK: bl 4194303
0x06 0xbf 0xff 0xff

# CHECK: bgu 4194303
0x18 0xbf 0xff 0xff

# CHECK: bleu 4194303
0x08 0xbf 0xff 0xff

# CHECK: bcc 4194303
0x1a 0xbf 0xff 0xff

# CHECK: bcs 4194303
0x0a 0xbf 0xff 0xff

# CHECK: bpos 4194303
0x1c 0xbf 0xff 0xff

# CHECK: bneg 4194303
0x0c 0xbf 0xff 0xff

# CHECK: bvc 4194303
0x1e 0xbf 0xff 0xff

# CHECK: bvs 4194303
0x0e 0xbf 0xff 0xff

# CHECK: fbu 4194303
0x0f 0xbf 0xff 0xff

# CHECK: fbg 4194303
0x0d 0xbf 0xff 0xff

# CHECK: fbug 4194303
0x0b 0xbf 0xff 0xff

# CHECK: fbl 4194303
0x09 0xbf 0xff 0xff

# CHECK: fbul 4194303
0x07 0xbf 0xff 0xff

# CHECK: fblg 4194303
0x05 0xbf 0xff 0xff

# CHECK: fbne 4194303
0x03 0xbf 0xff 0xff

# CHECK: fbe 4194303
0x13 0xbf 0xff 0xff

# CHECK: fbue 4194303
0x15 0xbf 0xff 0xff

# CHECK: fbge 4194303
0x17 0xbf 0xff 0xff

# CHECK: fbuge 4194303
0x19 0xbf 0xff 0xff

# CHECK: fble 4194303
0x1b 0xbf 0xff 0xff

# CHECK: fbule 4194303
0x1d 0xbf 0xff 0xff

# CHECK: fbo 4194303
0x1f 0xbf 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: wr %g1, -2, %y
0x81 0x80 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
