# XAndesPerf - Andes Performance Extension # RUN: not llvm-mc -triple riscv32 -mattr=+xandesperf < %s 2>&1 \ # RUN: | FileCheck %s # Out of range immediates ## uimmlog2xlen/uimm5 nds.bbc t0, 33, 256 # CHECK: :[[@LINE]]:13: error: immediate must be an integer in the range [0, 31] nds.bbs t1, 33, 256 # CHECK: :[[@LINE]]:13: error: immediate must be an integer in the range [0, 31] ## uimm7 nds.beqc t0, 1024, 13 # CHECK: :[[@LINE]]:14: error: immediate must be an integer in the range [0, 127] nds.bnec t1, -1, -13 # CHECK: :[[@LINE]]:14: error: immediate must be an integer in the range [0, 127] ## simm11_lsb0 nds.bbc t0, 7, 1024 # CHECK: :[[@LINE]]:16: error: immediate must be a multiple of 2 bytes in the range [-1024, 1022] nds.bbs t1, 21, -1200 # CHECK: :[[@LINE]]:17: error: immediate must be a multiple of 2 bytes in the range [-1024, 1022] nds.beqc t0, 7, 13 # CHECK: :[[@LINE]]:17: error: immediate must be a multiple of 2 bytes in the range [-1024, 1022] nds.bnec t1, 21, -13 # CHECK: :[[@LINE]]:18: error: immediate must be a multiple of 2 bytes in the range [-1024, 1022] ## uimmlog2xlen/uimm5 nds.bfos a0, a1, 35, 3 # CHECK: :[[@LINE]]:18: error: immediate must be an integer in the range [0, 31] nds.bfoz t0, t1, 6, 40 # CHECK: :[[@LINE]]:21: error: immediate must be an integer in the range [0, 31] ## simm18 nds.addigp t0, 0x20000 # CHECK: :[[@LINE]]:16: error: immediate must be an integer in the range [-131072, 131071] nds.addigp t0, -0x20001 # CHECK: :[[@LINE]]:16: error: immediate must be an integer in the range [-131072, 131071] nds.lbgp t0, 0x20000 # CHECK: :[[@LINE]]:14: error: immediate must be an integer in the range [-131072, 131071] nds.lbugp t0, -0x20001 # CHECK: :[[@LINE]]:15: error: immediate must be an integer in the range [-131072, 131071] nds.sbgp t0, 0x20000 # CHECK: :[[@LINE]]:14: error: immediate must be an integer in the range [-131072, 131071] nds.sbgp t0, -0x20001 # CHECK: :[[@LINE]]:14: error: immediate must be an integer in the range [-131072, 131071] ## simm18_lsb0 nds.lhgp t0, 0x1ffff # CHECK: :[[@LINE]]:14: error: immediate must be a multiple of 2 bytes in the range [-131072, 131070] nds.lhgp t0, 0x3 # CHECK: :[[@LINE]]:14: error: immediate must be a multiple of 2 bytes in the range [-131072, 131070] nds.lhugp t0, -0x20001 # CHECK: :[[@LINE]]:15: error: immediate must be a multiple of 2 bytes in the range [-131072, 131070] nds.lhugp t0, -0x3 # CHECK: :[[@LINE]]:15: error: immediate must be a multiple of 2 bytes in the range [-131072, 131070] nds.shgp t0, 0x1ffff # CHECK: :[[@LINE]]:14: error: immediate must be a multiple of 2 bytes in the range [-131072, 131070] nds.shgp t0, 0x3 # CHECK: :[[@LINE]]:14: error: immediate must be a multiple of 2 bytes in the range [-131072, 131070] nds.shgp t0, -0x20001 # CHECK, CHECK-64: :[[@LINE]]:14: error: immediate must be a multiple of 2 bytes in the range [-131072, 131070] nds.shgp t0, -0x3 # CHECK: :[[@LINE]]:14: error: immediate must be a multiple of 2 bytes in the range [-131072, 131070] ## simm19_lsb00 nds.lwgp t0, 0x3fffd # CHECK: :[[@LINE]]:14: error: immediate must be a multiple of 4 bytes in the range [-262144, 262140] nds.lwgp t0, 0x7 # CHECK: :[[@LINE]]:14: error: immediate must be a multiple of 4 bytes in the range [-262144, 262140] nds.lwgp t0, -0x40001 # CHECK: :[[@LINE]]:14: error: immediate must be a multiple of 4 bytes in the range [-262144, 262140] nds.lwgp t0, -0x7 # CHECK: :[[@LINE]]:14: error: immediate must be a multiple of 4 bytes in the range [-262144, 262140] nds.swgp t0, 0x3fffd # CHECK: :[[@LINE]]:14: error: immediate must be a multiple of 4 bytes in the range [-262144, 262140] nds.swgp t0, 0x7 # CHECK: :[[@LINE]]:14: error: immediate must be a multiple of 4 bytes in the range [-262144, 262140] nds.swgp t0, -0x40001 # CHECK: :[[@LINE]]:14: error: immediate must be a multiple of 4 bytes in the range [-262144, 262140] nds.swgp t0, -0x7 # CHECK: :[[@LINE]]:14: error: immediate must be a multiple of 4 bytes in the range [-262144, 262140]