; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv1.6-unknown-vulkan1.3 %s -o - | FileCheck %s ; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv1.6-unknown-vulkan1.3 %s -o - -filetype=obj | spirv-val --target-env vulkan1.3 %} %struct.S = type { [4 x <2 x float>] } @G = internal global %struct.S zeroinitializer @IDX = internal global i32 1 @OUT = internal global <2 x float> zeroinitializer define void @main() #0 { entry: %idx = load i32, ptr @IDX ; CHECK-DAG: %[[#IDX:]] = OpLoad %[[#]] %[[#]] ; CHECK-DAG: %[[#G:]] = OpVariable %[[#]] Function ; CHECK: %[[#AC:]] = OpAccessChain %[[#]] %[[#G]] %[[#]] %[[#IDX]] ; CHECK: %[[#VAL:]] = OpLoad %[[#]] %[[#AC]] ; CHECK: OpStore %[[#]] %[[#VAL]] %gep = getelementptr [8 x i8], ptr @G, i32 %idx %val = load <2 x float>, ptr %gep store <2 x float> %val, ptr @OUT ret void } attributes #0 = { "hlsl.numthreads"="1,1,1" "hlsl.shader"="compute" }