32 lines
1.2 KiB
Plaintext
32 lines
1.2 KiB
Plaintext
// RUN: %{ispc} %s --target=sse2-i32x4,sse4-i32x8,avx1-i32x8,avx2-i32x8,avx512knl-x16,avx512skx-x16 -h %t.h --emit-llvm -o %t.bc
|
|
// RUN: FileCheck --input-file=%t.h %s -check-prefix=CHECK_ALIGN
|
|
|
|
// REQUIRES: X86_ENABLED
|
|
|
|
// CHECK_ALIGN: __declspec( align(4) ) struct bool1 { bool v[1]; };
|
|
// CHECK_ALIGN: __declspec( align(4) ) struct bool2 { bool v[2]; };
|
|
// CHECK_ALIGN: __declspec( align(4) ) struct bool3 { bool v[3]; };
|
|
// CHECK_ALIGN: __declspec( align(4) ) struct bool4 { bool v[4]; };
|
|
// CHECK_ALIGN: __declspec( align(8) ) struct bool5 { bool v[5]; };
|
|
typedef bool<1> bool1;
|
|
typedef bool<2> bool2;
|
|
typedef bool<3> bool3;
|
|
typedef bool<4> bool4;
|
|
typedef bool<5> bool5;
|
|
|
|
// CHECK_ALIGN: __ISPC_ALIGN__(4) bool b[4];
|
|
// CHECK_ALIGN: __ISPC_ALIGN__(8) bool b[8];
|
|
// CHECK_ALIGN: __ISPC_ALIGN__(16) bool b[16];
|
|
struct E {
|
|
varying bool b;
|
|
};
|
|
|
|
export void check_E(uniform bool1 * uniform p1,
|
|
uniform bool2 * uniform p2,
|
|
uniform bool3 * uniform p3,
|
|
uniform bool4 * uniform p4,
|
|
uniform bool5 * uniform p5,
|
|
varying bool * uniform p6,
|
|
varying struct E * uniform p7){
|
|
}
|