blob: d47750a7736e4fa53b668d63d2b5a7457db9ed86 [file] [log] [blame]
Pirama Arumuga Nainar54a213d2016-07-02 00:05:42 +00001// RUN: %clang_cc1 %s -triple=renderscript32-none-linux-gnueabi -emit-llvm -o - -Werror | FileCheck %s -check-prefix=CHECK-RS32
2// RUN: %clang_cc1 %s -triple=renderscript64-none-linux-android -emit-llvm -o - -Werror | FileCheck %s -check-prefix=CHECK-RS64
3// RUN: %clang_cc1 %s -triple=armv7-none-linux-gnueabi -emit-llvm -o - -Werror | FileCheck %s -check-prefix=CHECK-ARM
4
5// Ensure that the bitcode has the correct triple
6// CHECK-RS32: target triple = "armv7-none-linux-gnueabi"
7// CHECK-RS64: target triple = "aarch64-none-linux-android"
8// CHECK-ARM: target triple = "armv7-none-linux-gnueabi"
9
10// Ensure that long data type has 8-byte size and alignment in RenderScript
11#ifdef __RENDERSCRIPT__
12#define LONG_WIDTH_AND_ALIGN 8
13#else
14#define LONG_WIDTH_AND_ALIGN 4
15#endif
16
17_Static_assert(sizeof(long) == LONG_WIDTH_AND_ALIGN, "sizeof long is wrong");
18_Static_assert(_Alignof(long) == LONG_WIDTH_AND_ALIGN, "sizeof long is wrong");
19
20// CHECK-RS32: i64 @test_long(i64 %v)
21// CHECK-RS64: i64 @test_long(i64 %v)
22// CHECK-ARM: i32 @test_long(i32 %v)
23long test_long(long v) {
24 return v + 1;
25}