Home | History | Annotate | Download | only in Mips
      1 # RUN: llvm-mc  %s -arch=mips -mcpu=mips32 -show-encoding | FileCheck %s -check-prefix=CHECK-32
      2 # RUN: llvm-mc  %s -arch=mips -mcpu=mips32r2 -show-encoding | FileCheck %s -check-prefix=CHECK-32R
      3 # RUN: llvm-mc  %s -arch=mips -mcpu=mips32r3 -show-encoding | FileCheck %s -check-prefix=CHECK-32R
      4 # RUN: llvm-mc  %s -arch=mips -mcpu=mips32r5 -show-encoding | FileCheck %s -check-prefix=CHECK-32R
      5 # RUN: llvm-mc  %s -arch=mips -mcpu=mips32r6 -show-encoding | FileCheck %s -check-prefix=CHECK-32R
      6 
      7   .text
      8 foo:
      9   rol $4,$5
     10 # CHECK-32:     negu    $1, $5              # encoding: [0x00,0x05,0x08,0x23]
     11 # CHECK-32:     srlv    $1, $4, $1          # encoding: [0x00,0x24,0x08,0x06]
     12 # CHECK-32:     sllv    $4, $4, $5          # encoding: [0x00,0xa4,0x20,0x04]
     13 # CHECK-32:     or      $4, $4, $1          # encoding: [0x00,0x81,0x20,0x25]
     14 # CHECK-32R:    negu    $1, $5              # encoding: [0x00,0x05,0x08,0x23]
     15 # CHECK-32R:    rotrv   $4, $4, $1          # encoding: [0x00,0x24,0x20,0x46]
     16   rol $4,$5,$6
     17 # CHECK-32:     negu    $1, $6              # encoding: [0x00,0x06,0x08,0x23]
     18 # CHECK-32:     srlv    $1, $5, $1          # encoding: [0x00,0x25,0x08,0x06]
     19 # CHECK-32:     sllv    $4, $5, $6          # encoding: [0x00,0xc5,0x20,0x04]
     20 # CHECK-32:     or      $4, $4, $1          # encoding: [0x00,0x81,0x20,0x25]
     21 # CHECK-32R:    negu    $4, $6              # encoding: [0x00,0x06,0x20,0x23]
     22 # CHECK-32R:    rotrv   $4, $5, $4          # encoding: [0x00,0x85,0x20,0x46]
     23   rol $4,0
     24 # CHECK-32:     srl     $4, $4, 0           # encoding: [0x00,0x04,0x20,0x02]
     25 # CHECK-32R:    rotr    $4, $4, 0           # encoding: [0x00,0x24,0x20,0x02]
     26   rol $4,$5,0
     27 # CHECK-32:     srl     $4, $5, 0           # encoding: [0x00,0x05,0x20,0x02]
     28 # CHECK-32R:    rotr    $4, $5, 0           # encoding: [0x00,0x25,0x20,0x02]
     29   rol $4,1
     30 # CHECK-32:     sll     $1, $4, 1           # encoding: [0x00,0x04,0x08,0x40]
     31 # CHECK-32:     srl     $4, $4, 31          # encoding: [0x00,0x04,0x27,0xc2]
     32 # CHECK-32:     or      $4, $4, $1          # encoding: [0x00,0x81,0x20,0x25]
     33 # CHECK-32R:    rotr    $4, $4, 31          # encoding: [0x00,0x24,0x27,0xc2]
     34   rol $4,$5,1
     35 # CHECK-32:     sll     $1, $5, 1           # encoding: [0x00,0x05,0x08,0x40]
     36 # CHECK-32:     srl     $4, $5, 31          # encoding: [0x00,0x05,0x27,0xc2]
     37 # CHECK-32:     or      $4, $4, $1          # encoding: [0x00,0x81,0x20,0x25]
     38 # CHECK-32R:    rotr    $4, $5, 31          # encoding: [0x00,0x25,0x27,0xc2]
     39   rol $4,2
     40 # CHECK-32:     sll     $1, $4, 2           # encoding: [0x00,0x04,0x08,0x80]
     41 # CHECK-32:     srl     $4, $4, 30          # encoding: [0x00,0x04,0x27,0x82]
     42 # CHECK-32:     or      $4, $4, $1          # encoding: [0x00,0x81,0x20,0x25]
     43 # CHECK-32R:    rotr    $4, $4, 30          # encoding: [0x00,0x24,0x27,0x82]
     44   rol $4,$5,2
     45 # CHECK-32:     sll     $1, $5, 2           # encoding: [0x00,0x05,0x08,0x80]
     46 # CHECK-32:     srl     $4, $5, 30          # encoding: [0x00,0x05,0x27,0x82]
     47 # CHECK-32:     or      $4, $4, $1          # encoding: [0x00,0x81,0x20,0x25]
     48 # CHECK-32R:    rotr    $4, $5, 30          # encoding: [0x00,0x25,0x27,0x82]
     49 
     50   ror $4,$5
     51 # CHECK-32:     negu    $1, $5              # encoding: [0x00,0x05,0x08,0x23]
     52 # CHECK-32:     sllv    $1, $4, $1          # encoding: [0x00,0x24,0x08,0x04]
     53 # CHECK-32:     srlv    $4, $4, $5          # encoding: [0x00,0xa4,0x20,0x06]
     54 # CHECK-32:     or      $4, $4, $1          # encoding: [0x00,0x81,0x20,0x25]
     55 # CHECK-32R:    rotrv   $4, $4, $5          # encoding: [0x00,0xa4,0x20,0x46]
     56   ror $4,$5,$6
     57 # CHECK-32:     negu    $1, $6              # encoding: [0x00,0x06,0x08,0x23]
     58 # CHECK-32:     sllv    $1, $5, $1          # encoding: [0x00,0x25,0x08,0x04]
     59 # CHECK-32:     srlv    $4, $5, $6          # encoding: [0x00,0xc5,0x20,0x06]
     60 # CHECK-32:     or      $4, $4, $1          # encoding: [0x00,0x81,0x20,0x25]
     61 # CHECK-32R:    rotrv   $4, $5, $6          # encoding: [0x00,0xc5,0x20,0x46]
     62   ror $4,0
     63 # CHECK-32:     srl     $4, $4, 0           # encoding: [0x00,0x04,0x20,0x02]
     64 # CHECK-32R:    rotr    $4, $4, 0           # encoding: [0x00,0x24,0x20,0x02]
     65   ror $4,$5,0
     66 # CHECK-32:     srl     $4, $5, 0           # encoding: [0x00,0x05,0x20,0x02]
     67 # CHECK-32R:    rotr    $4, $5, 0           # encoding: [0x00,0x25,0x20,0x02]
     68   ror $4,1
     69 # CHECK-32:     srl     $1, $4, 1           # encoding: [0x00,0x04,0x08,0x42]
     70 # CHECK-32:     sll     $4, $4, 31          # encoding: [0x00,0x04,0x27,0xc0]
     71 # CHECK-32:     or      $4, $4, $1          # encoding: [0x00,0x81,0x20,0x25]
     72 # CHECK-32R:    rotr    $4, $4, 1           # encoding: [0x00,0x24,0x20,0x42]
     73   ror $4,$5,1
     74 # CHECK-32:     srl     $1, $5, 1           # encoding: [0x00,0x05,0x08,0x42]
     75 # CHECK-32:     sll     $4, $5, 31          # encoding: [0x00,0x05,0x27,0xc0]
     76 # CHECK-32:     or      $4, $4, $1          # encoding: [0x00,0x81,0x20,0x25]
     77 # CHECK-32R:    rotr    $4, $5, 1           # encoding: [0x00,0x25,0x20,0x42]
     78   ror $4,2
     79 # CHECK-32:     srl     $1, $4, 2           # encoding: [0x00,0x04,0x08,0x82]
     80 # CHECK-32:     sll     $4, $4, 30          # encoding: [0x00,0x04,0x27,0x80]
     81 # CHECK-32:     or      $4, $4, $1          # encoding: [0x00,0x81,0x20,0x25]
     82 # CHECK-32R:    rotr    $4, $4, 2           # encoding: [0x00,0x24,0x20,0x82]
     83   ror $4,$5,2
     84 # CHECK-32:     srl     $1, $5, 2           # encoding: [0x00,0x05,0x08,0x82]
     85 # CHECK-32:     sll     $4, $5, 30          # encoding: [0x00,0x05,0x27,0x80]
     86 # CHECK-32:     or      $4, $4, $1          # encoding: [0x00,0x81,0x20,0x25]
     87 # CHECK-32R:    rotr    $4, $5, 2           # encoding: [0x00,0x25,0x20,0x82]
     88