33 lines · plain
1; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv-unknown-unknown %s -o - | FileCheck %s2; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv-unknown-unknown %s -o - -filetype=obj | spirv-val %}3 4; CHECK: OpName %[[dst_var:[0-9]+]] "dst"5; CHECK: OpName %[[src_var:[0-9]+]] "src"6 7; CHECK: %[[f32:[0-9]+]] = OpTypeFloat 328; CHECK: %[[structS:[0-9]+]] = OpTypeStruct %[[f32]] %[[f32]] %[[f32]] %[[f32]] %[[f32]]9; CHECK: %[[ptr_crosswkgrp_structS:[0-9]+]] = OpTypePointer CrossWorkgroup %[[structS]]10%struct.S = type <{ float, float, float, float, float }>11 12; CHECK-DAG: %[[src_var]] = OpVariable %[[ptr_crosswkgrp_structS]] CrossWorkgroup 13@src = external dso_local addrspace(1) global %struct.S, align 414 15; CHECK-DAG: %[[dst_var]] = OpVariable %[[ptr_crosswkgrp_structS]] CrossWorkgroup 16@dst = external dso_local addrspace(1) global %struct.S, align 417 18; CHECK: %[[main_func:[0-9]+]] = OpFunction %{{[0-9]+}} None %{{[0-9]+}}19; CHECK: %[[entry:[0-9]+]] = OpLabel20; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(readwrite, inaccessiblemem: none, target_mem0: none, target_mem1: none)21define void @main() local_unnamed_addr #0 {22entry:23; CHECK: OpCopyMemory %[[dst_var]] %[[src_var]] Aligned 424 call void @llvm.memcpy.p0.p0.i64(ptr addrspace(1) align 4 @dst, ptr addrspace(1) align 4 @src, i64 20, i1 false)25 ret void26; CHECK: OpReturn27; CHECK: OpFunctionEnd28}29 30attributes #0 = { "hlsl.numthreads"="8,1,1" "hlsl.shader"="compute" }31 32 33