Mips specific llvm assembler support for branch and jump instructions.
[oota-llvm.git] / test / MC / Mips / mips-alu-instructions.s
1 # RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding -mcpu=mips32r2 | FileCheck %s
2 # Check that the assembler can handle the documented syntax
3 # for arithmetic and logical instructions.
4 # CHECK: .section __TEXT,__text,regular,pure_instructions
5 #------------------------------------------------------------------------------
6 # Logical instructions
7 #------------------------------------------------------------------------------
8 # CHECK:  and    $9, $6, $7      # encoding: [0x24,0x48,0xc7,0x00]
9 # CHECK:  andi   $9, $6, 17767   # encoding: [0x67,0x45,0xc9,0x30]
10 # CHECK:  clo    $6, $7          # encoding: [0x21,0x30,0xe6,0x70]
11 # CHECK:  clz    $6, $7          # encoding: [0x20,0x30,0xe6,0x70]
12 # CHECK:  ins    $19, $9, 6, 7   # encoding: [0x84,0x61,0x33,0x7d]
13 # CHECK:  nor    $9, $6, $7      # encoding: [0x27,0x48,0xc7,0x00]
14 # CHECK:  or     $3, $3, $5      # encoding: [0x25,0x18,0x65,0x00]
15 # CHECK:  ori    $9, $6, 17767   # encoding: [0x67,0x45,0xc9,0x34]
16 # CHECK:  rotr   $9, $6, 7       # encoding: [0xc2,0x49,0x26,0x00]
17 # CHECK:  rotrv  $9, $6, $7      # encoding: [0x46,0x48,0xe6,0x00]
18 # CHECK:  sll    $4, $3, 7       # encoding: [0xc0,0x21,0x03,0x00]
19 # CHECK:  sllv   $2, $3, $5      # encoding: [0x04,0x10,0xa3,0x00]
20 # CHECK:  slt    $3, $3, $5      # encoding: [0x2a,0x18,0x65,0x00]
21 # CHECK:  slti   $3, $3, 103     # encoding: [0x67,0x00,0x63,0x28]
22 # CHECK:  sltiu  $3, $3, 103     # encoding: [0x67,0x00,0x63,0x2c]
23 # CHECK:  sltu   $3, $3, $5      # encoding: [0x2b,0x18,0x65,0x00]
24 # CHECK:  sra    $4, $3, 7       # encoding: [0xc3,0x21,0x03,0x00]
25 # CHECK:  srav   $2, $3, $5      # encoding: [0x07,0x10,0xa3,0x00]
26 # CHECK:  srl    $4, $3, 7       # encoding: [0xc2,0x21,0x03,0x00]
27 # CHECK:  srlv   $2, $3, $5      # encoding: [0x06,0x10,0xa3,0x00]
28 # CHECK:  xor    $3, $3, $5      # encoding: [0x26,0x18,0x65,0x00]
29 # CHECK:  xori   $9, $6, 17767   # encoding: [0x67,0x45,0xc9,0x38]
30 # CHECK:  wsbh   $6, $7          # encoding: [0xa0,0x30,0x07,0x7c]
31      and    $9,  $6, $7
32      andi   $9,  $6, 17767
33      clo    $6,  $7
34      clz    $6,  $7
35      ins    $19, $9, 6,7
36      nor    $9,  $6, $7
37      or     $3,  $3, $5
38      ori    $9,  $6, 17767
39      rotr   $9,  $6, 7
40      rotrv  $9,  $6, $7
41      sll    $4,  $3, 7
42      sllv   $2,  $3, $5
43      slt    $3,  $3, $5
44      slti   $3,  $3, 103
45      sltiu  $3,  $3, 103
46      sltu   $3,  $3, $5
47      sra    $4,  $3, 7
48      srav   $2,  $3, $5
49      srl    $4,  $3, 7
50      srlv   $2,  $3, $5
51      xor    $3,  $3, $5
52      xori   $9,  $6, 17767
53      wsbh   $6,  $7
54 #------------------------------------------------------------------------------
55 # Arithmetic instructions
56 #------------------------------------------------------------------------------
57
58 # CHECK:  add    $9, $6, $7      # encoding: [0x20,0x48,0xc7,0x00]
59 # CHECK:  addi   $9, $6, 17767   # encoding: [0x67,0x45,0xc9,0x20]
60 # CHECK:  addiu  $9, $6, -15001  # encoding: [0x67,0xc5,0xc9,0x24]
61 # CHECK:  addu   $9, $6, $7      # encoding: [0x21,0x48,0xc7,0x00]
62 # CHECK:  madd   $6, $7          # encoding: [0x00,0x00,0xc7,0x70]
63 # CHECK:  maddu  $6, $7          # encoding: [0x01,0x00,0xc7,0x70]
64 # CHECK:  msub   $6, $7          # encoding: [0x04,0x00,0xc7,0x70]
65 # CHECK:  msubu  $6, $7          # encoding: [0x05,0x00,0xc7,0x70]
66 # CHECK:  mult   $3, $5          # encoding: [0x18,0x00,0x65,0x00]
67 # CHECK:  multu  $3, $5          # encoding: [0x19,0x00,0x65,0x00]
68 # CHECK:  sub    $9, $6, $7      # encoding: [0x22,0x48,0xc7,0x00]
69 # CHECK:  subu   $4, $3, $5      # encoding: [0x23,0x20,0x65,0x00]
70     add    $9,$6,$7
71     addi   $9,$6,17767
72     addiu  $9,$6,-15001
73     addu   $9,$6,$7
74     madd   $6,$7
75     maddu  $6,$7
76     msub   $6,$7
77     msubu  $6,$7
78     mult   $3,$5
79     multu  $3,$5
80     sub    $9,$6,$7
81     subu   $4,$3,$5