wgpu/naga/tests/out/spv/const-exprs.spvasm
Jim Blandy 4b6a2d1dfa [naga] Teach the constant evaluator vector/vector operators.
Allow constant evaluation of binary operators whose left and right
operands are both vectors.
2023-12-12 12:48:10 +01:00

152 lines
3.4 KiB
Plaintext

; SPIR-V
; Version: 1.1
; Generator: rspirv
; Bound: 109
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %100 "main"
OpExecutionMode %100 LocalSize 2 3 1
%2 = OpTypeVoid
%3 = OpTypeInt 32 0
%4 = OpTypeInt 32 1
%5 = OpTypeVector %4 4
%7 = OpTypeFloat 32
%6 = OpTypeVector %7 4
%8 = OpTypeVector %7 2
%10 = OpTypeBool
%9 = OpTypeVector %10 2
%11 = OpConstant %3 2
%12 = OpConstant %4 3
%13 = OpConstant %4 4
%14 = OpConstant %4 8
%15 = OpConstant %7 3.141
%16 = OpConstant %7 6.282
%17 = OpConstant %7 0.44444445
%18 = OpConstant %7 0.0
%19 = OpConstantComposite %6 %17 %18 %18 %18
%20 = OpConstant %4 0
%21 = OpConstant %4 1
%22 = OpConstant %4 2
%23 = OpConstant %7 4.0
%24 = OpConstant %7 5.0
%25 = OpConstantComposite %8 %23 %24
%26 = OpConstantTrue %10
%27 = OpConstantFalse %10
%28 = OpConstantComposite %9 %26 %27
%31 = OpTypeFunction %2
%32 = OpConstantComposite %5 %13 %12 %22 %21
%34 = OpTypePointer Function %5
%39 = OpTypePointer Function %4
%43 = OpConstant %4 6
%48 = OpConstant %4 30
%49 = OpConstant %4 70
%52 = OpConstantNull %4
%54 = OpConstantNull %4
%57 = OpConstantNull %5
%68 = OpConstant %4 -4
%69 = OpConstantComposite %5 %68 %68 %68 %68
%78 = OpConstant %7 1.0
%79 = OpConstant %7 2.0
%80 = OpConstantComposite %6 %79 %78 %78 %78
%82 = OpTypePointer Function %6
%87 = OpTypeFunction %3 %4
%88 = OpConstant %3 10
%89 = OpConstant %3 20
%90 = OpConstant %3 30
%91 = OpConstant %3 0
%98 = OpConstantNull %3
%30 = OpFunction %2 None %31
%29 = OpLabel
%33 = OpVariable %34 Function %32
OpBranch %35
%35 = OpLabel
OpReturn
OpFunctionEnd
%37 = OpFunction %2 None %31
%36 = OpLabel
%38 = OpVariable %39 Function %22
OpBranch %40
%40 = OpLabel
OpReturn
OpFunctionEnd
%42 = OpFunction %2 None %31
%41 = OpLabel
%44 = OpVariable %39 Function %43
OpBranch %45
%45 = OpLabel
OpReturn
OpFunctionEnd
%47 = OpFunction %2 None %31
%46 = OpLabel
%56 = OpVariable %34 Function %57
%51 = OpVariable %39 Function %52
%55 = OpVariable %39 Function %49
%50 = OpVariable %39 Function %48
%53 = OpVariable %39 Function %54
OpBranch %58
%58 = OpLabel
%59 = OpLoad %4 %50
OpStore %51 %59
%60 = OpLoad %4 %51
OpStore %53 %60
%61 = OpLoad %4 %50
%62 = OpLoad %4 %51
%63 = OpLoad %4 %53
%64 = OpLoad %4 %55
%65 = OpCompositeConstruct %5 %61 %62 %63 %64
OpStore %56 %65
OpReturn
OpFunctionEnd
%67 = OpFunction %2 None %31
%66 = OpLabel
%70 = OpVariable %34 Function %69
OpBranch %71
%71 = OpLabel
OpReturn
OpFunctionEnd
%73 = OpFunction %2 None %31
%72 = OpLabel
%74 = OpVariable %34 Function %69
OpBranch %75
%75 = OpLabel
OpReturn
OpFunctionEnd
%77 = OpFunction %2 None %31
%76 = OpLabel
%81 = OpVariable %82 Function %80
OpBranch %83
%83 = OpLabel
OpReturn
OpFunctionEnd
%86 = OpFunction %3 None %87
%85 = OpFunctionParameter %4
%84 = OpLabel
OpBranch %92
%92 = OpLabel
OpSelectionMerge %93 None
OpSwitch %85 %97 0 %94 1 %95 2 %96
%94 = OpLabel
OpReturnValue %88
%95 = OpLabel
OpReturnValue %89
%96 = OpLabel
OpReturnValue %90
%97 = OpLabel
OpReturnValue %91
%93 = OpLabel
OpReturnValue %98
OpFunctionEnd
%100 = OpFunction %2 None %31
%99 = OpLabel
OpBranch %101
%101 = OpLabel
%102 = OpFunctionCall %2 %30
%103 = OpFunctionCall %2 %37
%104 = OpFunctionCall %2 %42
%105 = OpFunctionCall %2 %47
%106 = OpFunctionCall %2 %67
%107 = OpFunctionCall %2 %73
%108 = OpFunctionCall %2 %77
OpReturn
OpFunctionEnd