118 lines · plain
1# Xqcilia - Qualcomm uC Large Immediate Arithmetic extension2# RUN: not llvm-mc -triple riscv32 -mattr=+experimental-xqcilia < %s 2>&1 \3# RUN: | FileCheck -check-prefixes=CHECK,CHECK-PLUS,CHECK-IMM %s4# RUN: not llvm-mc -triple riscv32 -mattr=-experimental-xqcilia < %s 2>&1 \5# RUN: | FileCheck -check-prefixes=CHECK,CHECK-MINUS,CHECK-EXT %s6 7# CHECK-PLUS: :[[@LINE+2]]:12: error: register must be a GPR excluding zero (x0)8# CHECK-MINUS: :[[@LINE+1]]:12: error: invalid operand for instruction9qc.e.addai 9, 3355443210 11# CHECK: :[[@LINE+1]]:1: error: too few operands for instruction12qc.e.addai x913 14# CHECK-IMM: :[[@LINE+1]]:16: error: immediate must be an integer in the range [-2147483648, 4294967295]15qc.e.addai x9, 2048554649416 17# CHECK-EXT: :[[@LINE+1]]:1: error: instruction requires the following: 'Xqcilia' (Qualcomm uC Large Immediate Arithmetic Extension)18qc.e.addai x9, 3355443219 20 21# CHECK-PLUS: :[[@LINE+2]]:16: error: register must be a GPR excluding zero (x0)22# CHECK-MINUS: :[[@LINE+1]]:16: error: invalid operand for instruction23qc.e.addi x10, 9, 55443224 25# CHECK: :[[@LINE+1]]:1: error: too few operands for instruction26qc.e.addi x10, x927 28# CHECK-IMM: :[[@LINE+1]]:20: error: immediate must be an integer in the range [-33554432, 33554431]29qc.e.addi x10, x9, 33554431230 31# CHECK-EXT: :[[@LINE+1]]:1: error: instruction requires the following: 'Xqcilia' (Qualcomm uC Large Immediate Arithmetic Extension)32qc.e.addi x10, x9, 55443233 34 35# CHECK-PLUS: :[[@LINE+2]]:12: error: register must be a GPR excluding zero (x0)36# CHECK-MINUS: :[[@LINE+1]]:12: error: invalid operand for instruction37qc.e.andai 9, 3355443238 39# CHECK: :[[@LINE+1]]:1: error: too few operands for instruction40qc.e.andai x941 42# CHECK-IMM: :[[@LINE+1]]:16: error: immediate must be an integer in the range [-2147483648, 4294967295]43qc.e.andai x9, 2049443749444 45# CHECK-EXT: :[[@LINE+1]]:1: error: instruction requires the following: 'Xqcilia' (Qualcomm uC Large Immediate Arithmetic Extension)46qc.e.andai x9, 3355443247 48 49# CHECK-PLUS: :[[@LINE+2]]:16: error: register must be a GPR excluding zero (x0)50# CHECK-MINUS: :[[@LINE+1]]:16: error: invalid operand for instruction51qc.e.andi x10, 9, 55443252 53# CHECK: :[[@LINE+1]]:1: error: too few operands for instruction54qc.e.andi x10, x955 56# CHECK-IMM: :[[@LINE+1]]:20: error: immediate must be an integer in the range [-33554432, 33554431]57qc.e.andi x10, x9, 33554431258 59# CHECK-EXT: :[[@LINE+1]]:1: error: instruction requires the following: 'Xqcilia' (Qualcomm uC Large Immediate Arithmetic Extension)60qc.e.andi x10, x9, 55443261 62 63# CHECK-PLUS: :[[@LINE+2]]:11: error: register must be a GPR excluding zero (x0)64# CHECK-MINUS: :[[@LINE+1]]:11: error: invalid operand for instruction65qc.e.orai 9, 3355443266 67# CHECK: :[[@LINE+1]]:1: error: too few operands for instruction68qc.e.orai x969 70# CHECK-IMM: :[[@LINE+1]]:15: error: immediate must be an integer in the range [-2147483648, 4294967295]71qc.e.orai x9, 2049443749472 73# CHECK-EXT: :[[@LINE+1]]:1: error: instruction requires the following: 'Xqcilia' (Qualcomm uC Large Immediate Arithmetic Extension)74qc.e.orai x9, 3355443275 76 77# CHECK-PLUS: :[[@LINE+2]]:15: error: register must be a GPR excluding zero (x0)78# CHECK-MINUS: :[[@LINE+1]]:15: error: invalid operand for instruction79qc.e.ori x10, 9, 55443280 81# CHECK: :[[@LINE+1]]:1: error: too few operands for instruction82qc.e.ori x10, x983 84# CHECK-IMM: :[[@LINE+1]]:19: error: immediate must be an integer in the range [-33554432, 33554431]85qc.e.ori x10, x9, 33554431286 87# CHECK-EXT: :[[@LINE+1]]:1: error: instruction requires the following: 'Xqcilia' (Qualcomm uC Large Immediate Arithmetic Extension)88qc.e.ori x10, x9, 55443289 90 91 92# CHECK-PLUS: :[[@LINE+2]]:12: error: register must be a GPR excluding zero (x0)93# CHECK-MINUS: :[[@LINE+1]]:12: error: invalid operand for instruction94qc.e.xorai 9, 3355443295 96# CHECK: :[[@LINE+1]]:1: error: too few operands for instruction97qc.e.xorai x998 99# CHECK-IMM: :[[@LINE+1]]:16: error: immediate must be an integer in the range [-2147483648, 4294967295]100qc.e.xorai x9, 20494437494101 102# CHECK-EXT: :[[@LINE+1]]:1: error: instruction requires the following: 'Xqcilia' (Qualcomm uC Large Immediate Arithmetic Extension)103qc.e.xorai x9, 33554432104 105 106# CHECK-PLUS: :[[@LINE+2]]:16: error: register must be a GPR excluding zero (x0)107# CHECK-MINUS: :[[@LINE+1]]:16: error: invalid operand for instruction108qc.e.xori x10, 9, 554432109 110# CHECK: :[[@LINE+1]]:1: error: too few operands for instruction111qc.e.xori x10, x9112 113# CHECK-IMM: :[[@LINE+1]]:20: error: immediate must be an integer in the range [-33554432, 33554431]114qc.e.xori x10, x9, 335544312115 116# CHECK-EXT: :[[@LINE+1]]:1: error: instruction requires the following: 'Xqcilia' (Qualcomm uC Large Immediate Arithmetic Extension)117qc.e.xori x10, x9, 554432118