diff options
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/CodeGen/riscv32-abi.c | 7 | ||||
-rw-r--r-- | clang/test/Driver/types.c | 18 | ||||
-rw-r--r-- | clang/test/Preprocessor/init.c | 4 |
3 files changed, 29 insertions, 0 deletions
diff --git a/clang/test/CodeGen/riscv32-abi.c b/clang/test/CodeGen/riscv32-abi.c index ec98e3d8db0..04eceb3a818 100644 --- a/clang/test/CodeGen/riscv32-abi.c +++ b/clang/test/CodeGen/riscv32-abi.c @@ -1,4 +1,6 @@ // RUN: %clang_cc1 -triple riscv32 -emit-llvm %s -o - | FileCheck %s +// RUN: %clang_cc1 -triple riscv32 -emit-llvm -fforce-enable-int128 %s -o - \ +// RUN: | FileCheck %s -check-prefixes=CHECK,CHECK-FORCEINT128 #include <stddef.h> #include <stdint.h> @@ -24,6 +26,11 @@ int32_t f_scalar_3(int32_t x) { return x; } // CHECK-LABEL: define i64 @f_scalar_4(i64 %x) int64_t f_scalar_4(int64_t x) { return x; } +#ifdef __SIZEOF_INT128__ +// CHECK-FORCEINT128-LABEL: define i128 @f_scalar_5(i128 %x) +__int128_t f_scalar_5(__int128_t x) { return x; } +#endif + // CHECK-LABEL: define float @f_fp_scalar_1(float %x) float f_fp_scalar_1(float x) { return x; } diff --git a/clang/test/Driver/types.c b/clang/test/Driver/types.c new file mode 100644 index 00000000000..03fe105ec4d --- /dev/null +++ b/clang/test/Driver/types.c @@ -0,0 +1,18 @@ +// Check whether __int128_t and __uint128_t are supported. + +// RUN: not %clang -c --target=riscv32-unknown-linux-gnu -fsyntax-only %s \ +// RUN: 2>&1 | FileCheck %s + +// RUN: %clang -c --target=riscv32-unknown-linux-gnu -fsyntax-only %s \ +// RUN: -fno-force-enable-int128 -fforce-enable-int128 + +// RUN: not %clang -c --target=riscv32-unknown-linux-gnu -fsyntax-only %s \ +// RUN: -fforce-enable-int128 -fno-force-enable-int128 + +void a() { + __int128_t s; + __uint128_t t; +} + +// CHECK: error: use of undeclared identifier '__int128_t' +// CHECK: error: use of undeclared identifier '__uint128_t' diff --git a/clang/test/Preprocessor/init.c b/clang/test/Preprocessor/init.c index 708410e552d..2ed74dcf2c2 100644 --- a/clang/test/Preprocessor/init.c +++ b/clang/test/Preprocessor/init.c @@ -10007,6 +10007,9 @@ // RUN: | FileCheck -match-full-lines -check-prefix=RISCV32 %s // RUN: %clang_cc1 -E -dM -ffreestanding -triple=riscv32-unknown-linux < /dev/null \ // RUN: | FileCheck -match-full-lines -check-prefixes=RISCV32,RISCV32-LINUX %s +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=riscv32 \ +// RUN: -fforce-enable-int128 < /dev/null | FileCheck -match-full-lines \ +// RUN: -check-prefixes=RISCV32,RISCV32-INT128 %s // RISCV32: #define _ILP32 1 // RISCV32: #define __ATOMIC_ACQUIRE 2 // RISCV32: #define __ATOMIC_ACQ_REL 4 @@ -10136,6 +10139,7 @@ // RISCV32: #define __SIG_ATOMIC_WIDTH__ 32 // RISCV32: #define __SIZEOF_DOUBLE__ 8 // RISCV32: #define __SIZEOF_FLOAT__ 4 +// RISCV32-INT128: #define __SIZEOF_INT128__ 16 // RISCV32: #define __SIZEOF_INT__ 4 // RISCV32: #define __SIZEOF_LONG_DOUBLE__ 16 // RISCV32: #define __SIZEOF_LONG_LONG__ 8 |