32 lines · plain
1; RUN: llc -O0 -verify-machineinstrs -mtriple=spirv-vulkan-unknown %s -o - | FileCheck %s2; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv-vulkan-unknown %s -o - -filetype=obj | spirv-val %}3 4; CHECK-DAG: OpDecorate %[[#INPUT:]] Location 05; CHECK-DAG: OpDecorate %[[#OUTPUT:]] BuiltIn Position6 7; CHECK-DAG: %[[#float:]] = OpTypeFloat 328; CHECK-DAG: %[[#v4:]] = OpTypeVector %[[#float]] 49; CHECK-DAG: %[[#ptr_i:]] = OpTypePointer Input %[[#v4]]10; CHECK-DAG: %[[#ptr_o:]] = OpTypePointer Output %[[#v4]]11 12; CHECK-DAG: %[[#INPUT]] = OpVariable %[[#ptr_i]] Input13; CHECK-DAG: %[[#OUTPUT]] = OpVariable %[[#ptr_o]] Output14 15@SV_Position0 = external hidden thread_local addrspace(7) externally_initialized constant <4 x float>, !spirv.Decorations !016@SV_Position = external hidden thread_local addrspace(8) global <4 x float>, !spirv.Decorations !217 18define void @main() #1 {19entry:20 %0 = load <4 x float>, ptr addrspace(7) @SV_Position0, align 1621 store <4 x float> %0, ptr addrspace(8) @SV_Position, align 1622 ret void23 24; CHECK: %[[#TMP:]] = OpLoad %[[#v4]] %[[#INPUT]] Aligned 1625; CHECK: OpStore %[[#OUTPUT]] %[[#TMP]] Aligned 1626}27 28!0 = !{!1}29!1 = !{i32 30, i32 0}30!2 = !{!3}31!3 = !{i32 11, i32 0}32