File: 2754-1.ispc

package info (click to toggle)
ispc 1.28.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 97,620 kB
  • sloc: cpp: 77,067; python: 8,303; yacc: 3,337; lex: 1,126; ansic: 631; sh: 475; makefile: 17
file content (24 lines) | stat: -rw-r--r-- 601 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// RUN: %{ispc} --pic --target=host -h %t.h %s -o %t.o
// RUN: %{cc} -x c -c %s -o %t.c.o --include %t.h
// RUN: %{cc} %t.o %t.c.o -o %t.c.bin
// RUN: %t.c.bin | FileCheck %s

// REQUIRES: !MACOS_HOST

// CHECK: a[2]=-3 b[2]=3

#ifdef ISPC
export uniform int func(uniform bool cond, uniform int a[], uniform int b[]) {
    return (cond ? a : b)[2];
}
#else
#include <stdio.h>
int main(int argc, char **argv) {
    int a[] = { -1, -2, -3, -4 };
    int b[] = { 1, 2, 3, 4 };
    int a2 = func(true, a, b);
    int b2 = func(false, a, b);
    printf("a[2]=%i b[2]=%i\n", a2, b2);
    return 0;
}
#endif