xref: /llvm-project/clang/test/CodeGen/LoongArch/inline-asm-constraints-error.c (revision 394f30919a029331ebdfe02c180bd1586c0d9ace)
1*394f3091SWeining Lu // RUN: not %clang_cc1 -triple loongarch32 -O2 -emit-llvm %s 2>&1 -o - | FileCheck %s
2*394f3091SWeining Lu // RUN: not %clang_cc1 -triple loongarch64 -O2 -emit-llvm %s 2>&1 -o - | FileCheck %s
3*394f3091SWeining Lu 
test_l(void)4*394f3091SWeining Lu void test_l(void) {
5*394f3091SWeining Lu // CHECK: :[[#@LINE+1]]:27: error: value '32768' out of range for constraint 'l'
6*394f3091SWeining Lu   asm volatile ("" :: "l"(32768));
7*394f3091SWeining Lu // CHECK: :[[#@LINE+1]]:27: error: value '-32769' out of range for constraint 'l'
8*394f3091SWeining Lu   asm volatile ("" :: "l"(-32769));
9*394f3091SWeining Lu }
10*394f3091SWeining Lu 
test_I(void)11*394f3091SWeining Lu void test_I(void) {
12*394f3091SWeining Lu // CHECK: :[[#@LINE+1]]:27: error: value '2048' out of range for constraint 'I'
13*394f3091SWeining Lu   asm volatile ("" :: "I"(2048));
14*394f3091SWeining Lu // CHECK: :[[#@LINE+1]]:27: error: value '-2049' out of range for constraint 'I'
15*394f3091SWeining Lu   asm volatile ("" :: "I"(-2049));
16*394f3091SWeining Lu }
17*394f3091SWeining Lu 
test_K(void)18*394f3091SWeining Lu void test_K(void) {
19*394f3091SWeining Lu // CHECK: :[[#@LINE+1]]:27: error: value '4096' out of range for constraint 'K'
20*394f3091SWeining Lu   asm volatile ("" :: "K"(4096));
21*394f3091SWeining Lu // CHECK: :[[#@LINE+1]]:27: error: value '-1' out of range for constraint 'K'
22*394f3091SWeining Lu   asm volatile ("" :: "K"(-1));
23*394f3091SWeining Lu }
24