Home | History | Annotate | Download | only in crc
      1 # Instructions that are invalid.
      2 #
      3 # RUN: not llvm-mc %s -arch=mips -mcpu=mips32r6 -mattr=+crc 2>%t1
      4 # RUN: FileCheck %s < %t1
      5 # RUN: not llvm-mc %s -arch=mips64 -mcpu=mips64r6 -mattr=+crc 2>%t1
      6 # RUN: FileCheck %s < %t1
      7 
      8   .set noat
      9   crc32b  $1, $2, $2      # CHECK: :[[@LINE]]:3: error: source and destination must match
     10   crc32b  $1, $2, $3      # CHECK: :[[@LINE]]:3: error: source and destination must match
     11   crc32b  $1, $2, 2       # CHECK: :[[@LINE]]:19: error: invalid operand for instruction
     12   crc32b  $1, 2, $2       # CHECK: :[[@LINE]]:15: error: invalid operand for instruction
     13   crc32b  1, $2, $2       # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
     14   crc32b  $1, $2          # CHECK: :[[@LINE]]:3: error: too few operands for instruction
     15   crc32b  $1              # CHECK: :[[@LINE]]:3: error: too few operands for instruction
     16   crc32b  $1, $2, 0($2)   # CHECK: :[[@LINE]]:19: error: invalid operand for instruction
     17 
     18   crc32h  $1, $2, $2      # CHECK: :[[@LINE]]:3: error: source and destination must match
     19   crc32h  $1, $2, $3      # CHECK: :[[@LINE]]:3: error: source and destination must match
     20   crc32h  $1, $2, 2       # CHECK: :[[@LINE]]:19: error: invalid operand for instruction
     21   crc32h  $1, 2, $2       # CHECK: :[[@LINE]]:15: error: invalid operand for instruction
     22   crc32h  1, $2, $2       # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
     23   crc32h  $1, $2          # CHECK: :[[@LINE]]:3: error: too few operands for instruction
     24   crc32h  $1              # CHECK: :[[@LINE]]:3: error: too few operands for instruction
     25   crc32h  $1, $2, 0($2)   # CHECK: :[[@LINE]]:19: error: invalid operand for instruction
     26 
     27   crc32w  $1, $2, $2      # CHECK: :[[@LINE]]:3: error: source and destination must match
     28   crc32w  $1, $2, $3      # CHECK: :[[@LINE]]:3: error: source and destination must match
     29   crc32w  $1, $2, 2       # CHECK: :[[@LINE]]:19: error: invalid operand for instruction
     30   crc32w  $1, 2, $2       # CHECK: :[[@LINE]]:15: error: invalid operand for instruction
     31   crc32w  1, $2, $2       # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
     32   crc32w  $1, $2          # CHECK: :[[@LINE]]:3: error: too few operands for instruction
     33   crc32w  $1              # CHECK: :[[@LINE]]:3: error: too few operands for instruction
     34   crc32w  $1, $2, 0($2)   # CHECK: :[[@LINE]]:19: error: invalid operand for instruction
     35 
     36   crc32cb  $1, $2, $2     # CHECK: :[[@LINE]]:3: error: source and destination must match
     37   crc32cb  $1, $2, $3     # CHECK: :[[@LINE]]:3: error: source and destination must match
     38   crc32cb  $1, $2, 2      # CHECK: :[[@LINE]]:20: error: invalid operand for instruction
     39   crc32cb  $1, 2, $2      # CHECK: :[[@LINE]]:16: error: invalid operand for instruction
     40   crc32cb  1, $2, $2      # CHECK: :[[@LINE]]:12: error: invalid operand for instruction
     41   crc32cb  $1, $2         # CHECK: :[[@LINE]]:3: error: too few operands for instruction
     42   crc32cb  $1             # CHECK: :[[@LINE]]:3: error: too few operands for instruction
     43   crc32cb  $1, $2, 0($2)  # CHECK: :[[@LINE]]:20: error: invalid operand for instruction
     44 
     45   crc32ch  $1, $2, $2     # CHECK: :[[@LINE]]:3: error: source and destination must match
     46   crc32ch  $1, $2, $3     # CHECK: :[[@LINE]]:3: error: source and destination must match
     47   crc32ch  $1, $2, 2      # CHECK: :[[@LINE]]:20: error: invalid operand for instruction
     48   crc32ch  $1, 2, $2      # CHECK: :[[@LINE]]:16: error: invalid operand for instruction
     49   crc32ch  1, $2, $2      # CHECK: :[[@LINE]]:12: error: invalid operand for instruction
     50   crc32ch  $1, $2         # CHECK: :[[@LINE]]:3: error: too few operands for instruction
     51   crc32ch  $1             # CHECK: :[[@LINE]]:3: error: too few operands for instruction
     52   crc32ch  $1, $2, 0($2)  # CHECK: :[[@LINE]]:20: error: invalid operand for instruction
     53 
     54   crc32cw  $1, $2, $2     # CHECK: :[[@LINE]]:3: error: source and destination must match
     55   crc32cw  $1, $2, $3     # CHECK: :[[@LINE]]:3: error: source and destination must match
     56   crc32cw  $1, $2, 2      # CHECK: :[[@LINE]]:20: error: invalid operand for instruction
     57   crc32cw  $1, 2, $2      # CHECK: :[[@LINE]]:16: error: invalid operand for instruction
     58   crc32cw  1, $2, $2      # CHECK: :[[@LINE]]:12: error: invalid operand for instruction
     59   crc32cw  $1, $2         # CHECK: :[[@LINE]]:3: error: too few operands for instruction
     60   crc32cw  $1             # CHECK: :[[@LINE]]:3: error: too few operands for instruction
     61   crc32cw  $1, $2, 0($2)  # CHECK: :[[@LINE]]:20: error: invalid operand for instruction
     62 
     63   crc32 $1, $2, $2        # CHECK: :[[@LINE]]:3: error: unknown instruction
     64   crcb $1, $2, $2         # CHECK: :[[@LINE]]:3: error: unknown instruction
     65   crc $1, $2, $2          # CHECK: :[[@LINE]]:3: error: unknown instruction
     66