1# Instructions that are invalid.
2#
3# RUN: not llvm-mc %s -triple=mips64-unknown-linux-gnu -mcpu=mips64r6 \
4# RUN:     -mattr=+crc 2>%t1
5# RUN: FileCheck %s < %t1
6
7  .set noat
8  crc32d $1, $2, $2       # CHECK: :[[@LINE]]:3: error: source and destination must match
9  crc32d $1, $2, $3       # CHECK: :[[@LINE]]:3: error: source and destination must match
10  crc32d $1, $2, 2        # CHECK: :[[@LINE]]:18: error: invalid operand for instruction
11  crc32d $1, 2, $2        # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
12  crc32d 1, $2, $2        # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
13  crc32d $1, $2           # CHECK: :[[@LINE]]:3: error: too few operands for instruction
14  crc32d $1               # CHECK: :[[@LINE]]:3: error: too few operands for instruction
15  crc32d $1, $2, 0($2)    # CHECK: :[[@LINE]]:18: error: invalid operand for instruction
16
17  crc32cd $1, $2, $2      # CHECK: :[[@LINE]]:3: error: source and destination must match
18  crc32cd $1, $2, $3      # CHECK: :[[@LINE]]:3: error: source and destination must match
19  crc32cd $1, $2, 2       # CHECK: :[[@LINE]]:19: error: invalid operand for instruction
20  crc32cd $1, 2, $2       # CHECK: :[[@LINE]]:15: error: invalid operand for instruction
21  crc32cd 1, $2, $2       # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
22  crc32cd $1, $2          # CHECK: :[[@LINE]]:3: error: too few operands for instruction
23  crc32cd $1              # CHECK: :[[@LINE]]:3: error: too few operands for instruction
24  crc32cd $1, $2, 0($2)   # CHECK: :[[@LINE]]:19: error: invalid operand for instruction
25