1*67d3ef74SVyacheslav Levytskyy; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s 2b0efde6dSVyacheslav Levytskyy; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %} 3b0efde6dSVyacheslav Levytskyy 4*67d3ef74SVyacheslav Levytskyy; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s 5b0efde6dSVyacheslav Levytskyy; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv32-unknown-unknown %s -o - -filetype=obj | spirv-val %} 6b0efde6dSVyacheslav Levytskyy 7b0efde6dSVyacheslav Levytskyy; CHECK: OpName %[[#Var:]] "var" 8b0efde6dSVyacheslav Levytskyy; CHECK-DAG: %[[#Char:]] = OpTypeInt 8 0 9b0efde6dSVyacheslav Levytskyy; CHECK-DAG: %[[#Vec2Char:]] = OpTypeVector %[[#Char]] 2 10b0efde6dSVyacheslav Levytskyy; CHECK-DAG: %[[#PtrVec2Char:]] = OpTypePointer CrossWorkgroup %[[#Vec2Char]] 11b0efde6dSVyacheslav Levytskyy; CHECK-DAG: %[[#ConstNull:]] = OpConstantNull %[[#Vec2Char]] 12b0efde6dSVyacheslav Levytskyy; CHECK: %[[#]] = OpVariable %[[#PtrVec2Char]] CrossWorkgroup %[[#ConstNull]] 13b0efde6dSVyacheslav Levytskyy; As an option: %[[#C0:]] = OpConstant %[[#Char]] 0 14b0efde6dSVyacheslav Levytskyy; %[[#VecZero:]] = OpConstantComposite %[[#Vec2Char]] %[[#C0]] %[[#C0]] 15b0efde6dSVyacheslav Levytskyy; %[[#]] = OpVariable %[[#PtrVec2Char]] CrossWorkgroup %[[#VecZero]] 16b0efde6dSVyacheslav Levytskyy; CHECK: OpFunction 17b0efde6dSVyacheslav Levytskyy 18b0efde6dSVyacheslav Levytskyy@var = addrspace(1) global <2 x i8> zeroinitializer 19b0efde6dSVyacheslav Levytskyy 20b0efde6dSVyacheslav Levytskyydefine spir_kernel void @foo() { 21b0efde6dSVyacheslav Levytskyyentry: 22b0efde6dSVyacheslav Levytskyy %addr = load <2 x i8>, ptr addrspace(1) @var, align 2 23b0efde6dSVyacheslav Levytskyy ret void 24b0efde6dSVyacheslav Levytskyy} 25