File: get_global_size.cl

package info (click to toggle)
spirv-llvm-translator-14 14.0.11-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 15,640 kB
  • sloc: cpp: 47,664; lisp: 3,704; sh: 153; python: 43; makefile: 33
file content (38 lines) | stat: -rw-r--r-- 1,567 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// RUN: %clang_cc1 -triple spir64 -fdeclare-opencl-builtins -finclude-default-header -emit-llvm-bc %s -o %t.bc
// RUN: llvm-spirv %t.bc -o %t.spv
// RUN: spirv-val %t.spv
// RUN: llvm-spirv %t.bc -spirv-text -o - | FileCheck %s

// Check that out of range dimension index values are handled according to the
// OpenCL C specification.

kernel void ggs(global size_t *out, uint x) {
  // CHECK-DAG: Constant [[#]] [[#CONST64_1:]] 1 0
  // CHECK-DAG: Constant [[#]] [[#CONST3:]] 3
  // CHECK-DAG: Constant [[#]] [[#CONST0:]] 0
  // CHECK-DAG: ConstantTrue [[#]] [[#CONSTTRUE:]]
  // CHECK-DAG: ConstantFalse [[#]] [[#CONSTFALSE:]]

  // CHECK: FunctionParameter [[#]] [[#PARAMOUT:]]
  // CHECK: FunctionParameter [[#]] [[#PARAMX:]]

  // CHECK: Load [[#]] [[#LD0:]]
  // CHECK: CompositeExtract [[#]] [[#SCAL0:]] [[#LD0]] 0
  // CHECK: Select [[#]] [[#RES0:]] [[#CONSTTRUE]] [[#SCAL0]] [[#CONST64_1]]
  // CHECK: Store [[#]] [[#RES0]]
  out[0] = get_global_size(0);

  // CHECK: Load [[#]] [[#LD1:]]
  // CHECK: CompositeExtract [[#]] [[#SCAL1:]] [[#LD1]] 0
  // CHECK: Select [[#]] [[#RES1:]] [[#CONSTFALSE]] [[#SCAL1]] [[#CONST64_1]]
  // CHECK: Store [[#]] [[#RES1]]
  out[1] = get_global_size(3);

  // CHECK: Load [[#]] [[#LD2:]]
  // CHECK: ULessThan [[#]] [[#CMP:]] [[#PARAMX]] [[#CONST3]]
  // CHECK: Select [[#]] [[#SEL:]] [[#CMP]] [[#PARAMX]] [[#CONST0]]
  // CHECK: VectorExtractDynamic 2 [[#SCAL2:]] [[#LD2:]] [[#SEL]]
  // CHECK: Select [[#]] [[#RES2:]] [[#CMP]] [[#SCAL2]] [[#CONST64_1]]
  // CHECK: Store [[#]] [[#RES2]]
  out[2] = get_global_size(x);
}