# Xqcisls - Qualcomm uC Scaled Load Store Extension # RUN: not llvm-mc -triple riscv32 -mattr=+xqcisls < %s 2>&1 \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-PLUS %s # RUN: not llvm-mc -triple riscv32 -mattr=-xqcisls < %s 2>&1 \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-MINUS %s # CHECK-PLUS: :[[@LINE+2]]:16: error: register must be a GPR excluding zero (x0) # CHECK-MINUS: :[[@LINE+1]]:16: error: invalid operand for instruction qc.lrb x5, x2, x0, 4 # CHECK: :[[@LINE+1]]:1: error: too few operands for instruction qc.lrb x5, x2, x4 # CHECK-PLUS: :[[@LINE+2]]:20: error: immediate must be an integer in the range [0, 7] # CHECK-MINUS: :[[@LINE+1]]:20: error: invalid operand for instruction qc.lrb x5, x2, x4, 12 # CHECK: :[[@LINE+1]]:12: error: invalid operand for instruction qc.lrb x5, 2, x4, 4 # CHECK-MINUS: :[[@LINE+1]]:1: error: instruction requires the following: 'Xqcisls' (Qualcomm uC Scaled Load Store Extension) qc.lrb x5, x2, x4, 4 # CHECK-PLUS: :[[@LINE+2]]:17: error: register must be a GPR excluding zero (x0) # CHECK-MINUS: :[[@LINE+1]]:17: error: invalid operand for instruction qc.lrh x1, x12, x0, 2 # CHECK: :[[@LINE+1]]:1: error: too few operands for instruction qc.lrh x1, x12, x6 # CHECK-PLUS: :[[@LINE+2]]:21: error: immediate must be an integer in the range [0, 7] # CHECK-MINUS: :[[@LINE+1]]:21: error: invalid operand for instruction qc.lrh x1, x12, x6, 22 # CHECK: :[[@LINE+1]]:12: error: invalid operand for instruction qc.lrh x1, 12, x6, 2 # CHECK-MINUS: :[[@LINE+1]]:1: error: instruction requires the following: 'Xqcisls' (Qualcomm uC Scaled Load Store Extension) qc.lrh x1, x12, x6, 2 # CHECK-PLUS: :[[@LINE+2]]:17: error: register must be a GPR excluding zero (x0) # CHECK-MINUS: :[[@LINE+1]]:17: error: invalid operand for instruction qc.lrw x15, x7, x0, 1 # CHECK: :[[@LINE+1]]:1: error: too few operands for instruction qc.lrw x15, x7, x14 # CHECK-PLUS: :[[@LINE+2]]:22: error: immediate must be an integer in the range [0, 7] # CHECK-MINUS: :[[@LINE+1]]:22: error: invalid operand for instruction qc.lrw x15, x7, x14, 11 # CHECK: :[[@LINE+1]]:13: error: invalid operand for instruction qc.lrw x15, 7, x14, 1 # CHECK-MINUS: :[[@LINE+1]]:1: error: instruction requires the following: 'Xqcisls' (Qualcomm uC Scaled Load Store Extension) qc.lrw x15, x7, x14, 1 # CHECK-PLUS: :[[@LINE+2]]:18: error: register must be a GPR excluding zero (x0) # CHECK-MINUS: :[[@LINE+1]]:18: error: invalid operand for instruction qc.lrbu x9, x11, x0, 7 # CHECK: :[[@LINE+1]]:1: error: too few operands for instruction qc.lrbu x9, x11, x4 # CHECK-PLUS: :[[@LINE+2]]:22: error: immediate must be an integer in the range [0, 7] # CHECK-MINUS: :[[@LINE+1]]:22: error: invalid operand for instruction qc.lrbu x9, x11, x4, 37 # CHECK: :[[@LINE+1]]:13: error: invalid operand for instruction qc.lrbu x9, 11, x4, 7 # CHECK-MINUS: :[[@LINE+1]]:1: error: instruction requires the following: 'Xqcisls' (Qualcomm uC Scaled Load Store Extension) qc.lrbu x9, x11, x4, 7 # CHECK-PLUS: :[[@LINE+2]]:18: error: register must be a GPR excluding zero (x0) # CHECK-MINUS: :[[@LINE+1]]:18: error: invalid operand for instruction qc.lrhu x16, x6, x0, 4 # CHECK: :[[@LINE+1]]:1: error: too few operands for instruction qc.lrhu x16, x6, x10 # CHECK-PLUS: :[[@LINE+2]]:23: error: immediate must be an integer in the range [0, 7] # CHECK-MINUS: :[[@LINE+1]]:23: error: invalid operand for instruction qc.lrhu x16, x6, x10, 44 # CHECK: :[[@LINE+1]]:14: error: invalid operand for instruction qc.lrhu x16, 6, x10, 4 # CHECK-MINUS: :[[@LINE+1]]:1: error: instruction requires the following: 'Xqcisls' (Qualcomm uC Scaled Load Store Extension) qc.lrhu x16, x6, x10, 4 # CHECK-PLUS: :[[@LINE+2]]:16: error: register must be a GPR excluding zero (x0) # CHECK-MINUS: :[[@LINE+1]]:16: error: invalid operand for instruction qc.srb x0, x2, x0, 3 # CHECK: :[[@LINE+1]]:1: error: too few operands for instruction qc.srb x0, x2, x8 # CHECK-PLUS: :[[@LINE+2]]:20: error: immediate must be an integer in the range [0, 7] # CHECK-MINUS: :[[@LINE+1]]:20: error: invalid operand for instruction qc.srb x0, x2, x8, 93 # CHECK: :[[@LINE+1]]:12: error: invalid operand for instruction qc.srb x0, 2, x8, 3 # CHECK-MINUS: :[[@LINE+1]]:1: error: instruction requires the following: 'Xqcisls' (Qualcomm uC Scaled Load Store Extension) qc.srb x0, x2, x8, 3 # CHECK-PLUS: :[[@LINE+2]]:17: error: register must be a GPR excluding zero (x0) # CHECK-MINUS: :[[@LINE+1]]:17: error: invalid operand for instruction qc.srh x13, x0, x0, 6 # CHECK: :[[@LINE+1]]:1: error: too few operands for instruction qc.srh x13, x0, x20 # CHECK-PLUS: :[[@LINE+2]]:22: error: immediate must be an integer in the range [0, 7] # CHECK-MINUS: :[[@LINE+1]]:22: error: invalid operand for instruction qc.srh x13, x0, x20, 76 # CHECK: :[[@LINE+1]]:13: error: invalid operand for instruction qc.srh x13, 0, x20, 6 # CHECK-MINUS: :[[@LINE+1]]:1: error: instruction requires the following: 'Xqcisls' (Qualcomm uC Scaled Load Store Extension) qc.srh x13, x0, x20, 6 # CHECK-PLUS: :[[@LINE+2]]:18: error: register must be a GPR excluding zero (x0) # CHECK-MINUS: :[[@LINE+1]]:18: error: invalid operand for instruction qc.srw x17, x18, x0, 0 # CHECK: :[[@LINE+1]]:1: error: too few operands for instruction qc.srw x17, x18, x19 # CHECK-PLUS: :[[@LINE+2]]:23: error: immediate must be an integer in the range [0, 7] # CHECK-MINUS: :[[@LINE+1]]:23: error: invalid operand for instruction qc.srw x17, x18, x19, 10 # CHECK: :[[@LINE+1]]:13: error: invalid operand for instruction qc.srw x17, 18, x19, 0 # CHECK-MINUS: :[[@LINE+1]]:1: error: instruction requires the following: 'Xqcisls' (Qualcomm uC Scaled Load Store Extension) qc.srw x17, x18, x19, 0