blob: ef9ccd0ee6929f275c9199cef73873149f2b83af [file] [log] [blame]
// RUN: clspv --cl-std=CL3.0 %s -o %t.spv
// RUN: spirv-dis %t.spv -o %t.spvasm
// RUN: FileCheck %s < %t.spvasm
//
// This test checks that enum values are consistent with the definitions in
// InitPreprocessor.cpp
kernel void enum_values(global uint* out) {
int i = 0;
// Memory order
out[i++] = memory_order_relaxed;
out[i++] = memory_order_acquire;
out[i++] = memory_order_release;
out[i++] = memory_order_acq_rel;
out[i++] = memory_order_seq_cst;
// Memory scope
out[i++] = memory_scope_work_item;
out[i++] = memory_scope_work_group;
out[i++] = memory_scope_device;
out[i++] = memory_scope_all_svm_devices;
out[i++] = memory_scope_sub_group;
}
// CHECK: [[uint:%[a-zA-Z0-9_]+]] = OpTypeInt 32 0
// CHECK-DAG: [[uint_0:%[a-zA-Z0-9_]+]] = OpConstant [[uint]] 0
// CHECK-DAG: [[uint_1:%[a-zA-Z0-9_]+]] = OpConstant [[uint]] 1
// CHECK-DAG: [[uint_2:%[a-zA-Z0-9_]+]] = OpConstant [[uint]] 2
// CHECK-DAG: [[uint_3:%[a-zA-Z0-9_]+]] = OpConstant [[uint]] 3
// CHECK-DAG: [[uint_4:%[a-zA-Z0-9_]+]] = OpConstant [[uint]] 4
// CHECK-DAG: [[uint_5:%[a-zA-Z0-9_]+]] = OpConstant [[uint]] 5
// CHECK: OpStore {{.*}} [[uint_0]]
// CHECK: OpStore {{.*}} [[uint_2]]
// CHECK: OpStore {{.*}} [[uint_3]]
// CHECK: OpStore {{.*}} [[uint_4]]
// CHECK: OpStore {{.*}} [[uint_5]]
// CHECK: OpStore {{.*}} [[uint_0]]
// CHECK: OpStore {{.*}} [[uint_1]]
// CHECK: OpStore {{.*}} [[uint_2]]
// CHECK: OpStore {{.*}} [[uint_3]]
// CHECK: OpStore {{.*}} [[uint_4]]