File: 3141.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 (18 lines) | stat: -rw-r--r-- 691 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// RUN: not %{ispc} --nowrap --target=host --enable-llvm-intrinsics --emit-llvm-text -o - %s 2>&1 | FileCheck %s

#if LLVM_VERSION_MAJOR >= 19
#define DEINTERLEAVE2 llvm.vector.deinterleave2
#else
#define DEINTERLEAVE2 llvm.experimental.vector.deinterleave2
#endif

// This checks that logic for deducting LLVM type for overloaded LLVM
// intrinsics works.
// CHECK-NOT: FATAL ERROR

// This error is expected because the logic of mapping LLVM function signatures
// to ISPC ones does not support the struct return type.
// CHECK: Return type "{ <4 x float>, <4 x float> }" not representable as ISPC type for Intrinsic
void __deinterleave2(uniform float<8> val) {
    @DEINTERLEAVE2(val);
}