File: vectorcall-4.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 (17 lines) | stat: -rw-r--r-- 650 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// This test checks function signature of extern "C" to ensure it doesn't have 'x86_vectorcallcc' by default.
// This verifies that calls from ISPC to C are not broken.
// RUN: %{ispc}  %s --emit-llvm-text --vectorcall --target=host --target-os=windows -o - | FileCheck %s

// REQUIRES: X86_ENABLED

// REQUIRES: WINDOWS_ENABLED

// CHECK:declare float @CopyFloat(float)

extern "C" uniform float CopyFloat(const uniform float Source);

export void CopyFloat_ispc(uniform float Result[], const uniform float Source[], const uniform int Iterations) {
    for(uniform int i = 0; i < Iterations; i++) {
        Result[i] = CopyFloat(Source[i]);
    }
}