From 0a8b672779f34d20ad8aa2ae58b86769c6da6782 Mon Sep 17 00:00:00 2001 From: Erich Gubler Date: Fri, 14 Oct 2022 16:54:39 -0400 Subject: [PATCH] test: add `operators::negate_signed_literals` case --- tests/in/operators.wgsl | 8 +- tests/out/glsl/operators.main.Compute.glsl | 5 + tests/out/hlsl/operators.hlsl | 6 + tests/out/msl/operators.msl | 6 + tests/out/spv/operators.spvasm | 1103 ++++++++++---------- tests/out/wgsl/operators.wgsl | 5 + 6 files changed, 585 insertions(+), 548 deletions(-) diff --git a/tests/in/operators.wgsl b/tests/in/operators.wgsl index 1f6155397b..e55e5efdf6 100644 --- a/tests/in/operators.wgsl +++ b/tests/in/operators.wgsl @@ -105,8 +105,6 @@ fn logical() { fn arithmetic() { // unary - // TODO: uncomment when we get the changes from https://github.com/gfx-rs/rspirv/pull/231 - // _ = -1; _ = -1.0; _ = -vec2(1); _ = -vec2(1.0); @@ -314,3 +312,9 @@ fn main() { comparison(); assignment(); } + +fn negate_signed_literals() { + _ = -1; + _ = -(-2); + _ = -(- 3); +} diff --git a/tests/out/glsl/operators.main.Compute.glsl b/tests/out/glsl/operators.main.Compute.glsl index 32716658fb..29cd40a87f 100644 --- a/tests/out/glsl/operators.main.Compute.glsl +++ b/tests/out/glsl/operators.main.Compute.glsl @@ -251,6 +251,11 @@ void assignment() { return; } +void negate_signed_literals() { + int unnamed_148 = (- -2); + int unnamed_149 = (-(-3)); +} + void main() { vec4 _e4 = builtins(); vec4 _e5 = splat(); diff --git a/tests/out/hlsl/operators.hlsl b/tests/out/hlsl/operators.hlsl index 62e028f804..cb8bc11d94 100644 --- a/tests/out/hlsl/operators.hlsl +++ b/tests/out/hlsl/operators.hlsl @@ -284,6 +284,12 @@ void assignment() return; } +void negate_signed_literals() +{ + int unnamed_148 = - -2; + int unnamed_149 = --3; +} + [numthreads(1, 1, 1)] void main() { diff --git a/tests/out/msl/operators.msl b/tests/out/msl/operators.msl index 0c3872000f..d3ceb2f0c5 100644 --- a/tests/out/msl/operators.msl +++ b/tests/out/msl/operators.msl @@ -283,6 +283,12 @@ void assignment( return; } +void negate_signed_literals( +) { + int unnamed_148 = - -2; + int unnamed_149 = --3; +} + kernel void main_( ) { metal::float4 _e4 = builtins(); diff --git a/tests/out/spv/operators.spvasm b/tests/out/spv/operators.spvasm index 0fde0a7072..39c410811f 100644 --- a/tests/out/spv/operators.spvasm +++ b/tests/out/spv/operators.spvasm @@ -1,16 +1,16 @@ ; SPIR-V ; Version: 1.1 ; Generator: rspirv -; Bound: 543 +; Bound: 551 OpCapability Shader %1 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 -OpEntryPoint GLCompute %531 "main" -OpExecutionMode %531 LocalSize 1 1 1 -OpMemberDecorate %31 0 Offset 0 -OpMemberDecorate %31 1 Offset 16 -OpDecorate %35 ArrayStride 32 -OpDecorate %36 ArrayStride 4 +OpEntryPoint GLCompute %539 "main" +OpExecutionMode %539 LocalSize 1 1 1 +OpMemberDecorate %33 0 Offset 0 +OpMemberDecorate %33 1 Offset 16 +OpDecorate %37 ArrayStride 32 +OpDecorate %38 ArrayStride 4 %2 = OpTypeVoid %4 = OpTypeFloat 32 %3 = OpConstant %4 1.0 @@ -35,566 +35,577 @@ OpDecorate %36 ArrayStride 4 %23 = OpConstant %4 -1.0 %24 = OpConstant %20 2 %25 = OpConstant %20 1 -%26 = OpTypeVector %4 4 -%27 = OpTypeVector %8 4 -%28 = OpTypeVector %10 4 -%29 = OpTypeVector %4 2 -%30 = OpTypeVector %4 3 -%31 = OpTypeStruct %26 %8 -%32 = OpTypeMatrix %29 2 -%33 = OpTypeMatrix %26 4 -%34 = OpTypeVector %20 2 -%35 = OpTypeArray %31 %21 -%36 = OpTypeArray %8 %22 -%37 = OpTypeMatrix %30 2 -%38 = OpTypeMatrix %30 3 -%39 = OpTypeMatrix %30 4 -%40 = OpTypeMatrix %26 3 -%41 = OpTypeVector %8 3 -%42 = OpConstantComposite %26 %3 %3 %3 %3 -%43 = OpConstantComposite %26 %5 %5 %5 %5 -%44 = OpConstantComposite %26 %6 %6 %6 %6 -%45 = OpConstantComposite %27 %7 %7 %7 %7 -%46 = OpConstantComposite %34 %19 %19 -%47 = OpConstantComposite %29 %5 %5 -%48 = OpConstantComposite %32 %47 %47 -%49 = OpConstantComposite %26 %5 %5 %5 %5 -%50 = OpConstantComposite %31 %49 %11 -%51 = OpConstantComposite %35 %50 %50 %50 -%52 = OpConstantComposite %30 %5 %5 %5 -%53 = OpConstantComposite %37 %52 %52 -%54 = OpConstantComposite %38 %52 %52 %52 -%55 = OpConstantComposite %39 %52 %52 %52 %52 -%56 = OpConstantComposite %40 %49 %49 %49 -%57 = OpConstantComposite %41 %11 %11 %11 -%60 = OpTypeFunction %26 -%100 = OpTypePointer Function %29 -%101 = OpConstantNull %29 -%104 = OpTypeFunction %29 -%120 = OpTypeFunction %30 %30 -%122 = OpTypeVector %10 3 -%129 = OpTypePointer Function %31 -%130 = OpConstantNull %31 -%133 = OpTypeFunction %4 -%158 = OpTypePointer Function %26 -%159 = OpTypePointer Function %4 -%164 = OpTypeFunction %2 -%167 = OpTypeVector %10 2 -%183 = OpTypeVector %8 2 -%194 = OpTypeVector %20 3 -%489 = OpTypePointer Function %8 -%491 = OpTypePointer Function %41 -%521 = OpTypePointer Function %8 -%59 = OpFunction %26 None %60 -%58 = OpLabel -OpBranch %61 -%61 = OpLabel -%62 = OpSelect %8 %9 %7 %11 -%64 = OpCompositeConstruct %28 %9 %9 %9 %9 -%63 = OpSelect %26 %64 %42 %43 -%65 = OpCompositeConstruct %28 %12 %12 %12 %12 -%66 = OpSelect %26 %65 %43 %42 -%67 = OpExtInst %26 %1 FMix %43 %42 %44 -%69 = OpCompositeConstruct %26 %13 %13 %13 %13 -%68 = OpExtInst %26 %1 FMix %43 %42 %69 -%70 = OpCompositeExtract %8 %45 0 -%71 = OpBitcast %4 %70 -%72 = OpBitcast %26 %45 -%73 = OpConvertFToS %27 %43 -%74 = OpCompositeConstruct %27 %62 %62 %62 %62 -%75 = OpIAdd %27 %74 %73 -%76 = OpConvertSToF %26 %75 -%77 = OpFAdd %26 %76 %63 -%78 = OpFAdd %26 %77 %67 -%79 = OpFAdd %26 %78 %68 -%80 = OpCompositeConstruct %26 %71 %71 %71 %71 -%81 = OpFAdd %26 %79 %80 -%82 = OpFAdd %26 %81 %72 -OpReturnValue %82 +%26 = OpConstant %8 -1 +%27 = OpConstant %8 -2 +%28 = OpTypeVector %4 4 +%29 = OpTypeVector %8 4 +%30 = OpTypeVector %10 4 +%31 = OpTypeVector %4 2 +%32 = OpTypeVector %4 3 +%33 = OpTypeStruct %28 %8 +%34 = OpTypeMatrix %31 2 +%35 = OpTypeMatrix %28 4 +%36 = OpTypeVector %20 2 +%37 = OpTypeArray %33 %21 +%38 = OpTypeArray %8 %22 +%39 = OpTypeMatrix %32 2 +%40 = OpTypeMatrix %32 3 +%41 = OpTypeMatrix %32 4 +%42 = OpTypeMatrix %28 3 +%43 = OpTypeVector %8 3 +%44 = OpConstantComposite %28 %3 %3 %3 %3 +%45 = OpConstantComposite %28 %5 %5 %5 %5 +%46 = OpConstantComposite %28 %6 %6 %6 %6 +%47 = OpConstantComposite %29 %7 %7 %7 %7 +%48 = OpConstantComposite %36 %19 %19 +%49 = OpConstantComposite %31 %5 %5 +%50 = OpConstantComposite %34 %49 %49 +%51 = OpConstantComposite %28 %5 %5 %5 %5 +%52 = OpConstantComposite %33 %51 %11 +%53 = OpConstantComposite %37 %52 %52 %52 +%54 = OpConstantComposite %32 %5 %5 %5 +%55 = OpConstantComposite %39 %54 %54 +%56 = OpConstantComposite %40 %54 %54 %54 +%57 = OpConstantComposite %41 %54 %54 %54 %54 +%58 = OpConstantComposite %42 %51 %51 %51 +%59 = OpConstantComposite %43 %11 %11 %11 +%62 = OpTypeFunction %28 +%102 = OpTypePointer Function %31 +%103 = OpConstantNull %31 +%106 = OpTypeFunction %31 +%122 = OpTypeFunction %32 %32 +%124 = OpTypeVector %10 3 +%131 = OpTypePointer Function %33 +%132 = OpConstantNull %33 +%135 = OpTypeFunction %4 +%160 = OpTypePointer Function %28 +%161 = OpTypePointer Function %4 +%166 = OpTypeFunction %2 +%169 = OpTypeVector %10 2 +%185 = OpTypeVector %8 2 +%196 = OpTypeVector %20 3 +%491 = OpTypePointer Function %8 +%493 = OpTypePointer Function %43 +%523 = OpTypePointer Function %8 +%61 = OpFunction %28 None %62 +%60 = OpLabel +OpBranch %63 +%63 = OpLabel +%64 = OpSelect %8 %9 %7 %11 +%66 = OpCompositeConstruct %30 %9 %9 %9 %9 +%65 = OpSelect %28 %66 %44 %45 +%67 = OpCompositeConstruct %30 %12 %12 %12 %12 +%68 = OpSelect %28 %67 %45 %44 +%69 = OpExtInst %28 %1 FMix %45 %44 %46 +%71 = OpCompositeConstruct %28 %13 %13 %13 %13 +%70 = OpExtInst %28 %1 FMix %45 %44 %71 +%72 = OpCompositeExtract %8 %47 0 +%73 = OpBitcast %4 %72 +%74 = OpBitcast %28 %47 +%75 = OpConvertFToS %29 %45 +%76 = OpCompositeConstruct %29 %64 %64 %64 %64 +%77 = OpIAdd %29 %76 %75 +%78 = OpConvertSToF %28 %77 +%79 = OpFAdd %28 %78 %65 +%80 = OpFAdd %28 %79 %69 +%81 = OpFAdd %28 %80 %70 +%82 = OpCompositeConstruct %28 %73 %73 %73 %73 +%83 = OpFAdd %28 %81 %82 +%84 = OpFAdd %28 %83 %74 +OpReturnValue %84 OpFunctionEnd -%84 = OpFunction %26 None %60 -%83 = OpLabel -OpBranch %85 +%86 = OpFunction %28 None %62 %85 = OpLabel -%86 = OpCompositeConstruct %29 %14 %14 -%87 = OpCompositeConstruct %29 %3 %3 -%88 = OpFAdd %29 %87 %86 -%89 = OpCompositeConstruct %29 %15 %15 -%90 = OpFSub %29 %88 %89 -%91 = OpCompositeConstruct %29 %16 %16 -%92 = OpFDiv %29 %90 %91 -%93 = OpCompositeConstruct %27 %17 %17 %17 %17 -%94 = OpCompositeConstruct %27 %18 %18 %18 %18 -%95 = OpSRem %27 %93 %94 -%96 = OpVectorShuffle %26 %92 %92 0 1 0 1 -%97 = OpConvertSToF %26 %95 -%98 = OpFAdd %26 %96 %97 -OpReturnValue %98 +OpBranch %87 +%87 = OpLabel +%88 = OpCompositeConstruct %31 %14 %14 +%89 = OpCompositeConstruct %31 %3 %3 +%90 = OpFAdd %31 %89 %88 +%91 = OpCompositeConstruct %31 %15 %15 +%92 = OpFSub %31 %90 %91 +%93 = OpCompositeConstruct %31 %16 %16 +%94 = OpFDiv %31 %92 %93 +%95 = OpCompositeConstruct %29 %17 %17 %17 %17 +%96 = OpCompositeConstruct %29 %18 %18 %18 %18 +%97 = OpSRem %29 %95 %96 +%98 = OpVectorShuffle %28 %94 %94 0 1 0 1 +%99 = OpConvertSToF %28 %97 +%100 = OpFAdd %28 %98 %99 +OpReturnValue %100 OpFunctionEnd -%103 = OpFunction %29 None %104 -%102 = OpLabel -%99 = OpVariable %100 Function %101 -OpBranch %105 -%105 = OpLabel -%106 = OpCompositeConstruct %29 %14 %14 -OpStore %99 %106 -%107 = OpLoad %29 %99 -%108 = OpCompositeConstruct %29 %3 %3 -%109 = OpFAdd %29 %107 %108 -OpStore %99 %109 -%110 = OpLoad %29 %99 -%111 = OpCompositeConstruct %29 %15 %15 -%112 = OpFSub %29 %110 %111 -OpStore %99 %112 -%113 = OpLoad %29 %99 -%114 = OpCompositeConstruct %29 %16 %16 -%115 = OpFDiv %29 %113 %114 -OpStore %99 %115 -%116 = OpLoad %29 %99 -OpReturnValue %116 +%105 = OpFunction %31 None %106 +%104 = OpLabel +%101 = OpVariable %102 Function %103 +OpBranch %107 +%107 = OpLabel +%108 = OpCompositeConstruct %31 %14 %14 +OpStore %101 %108 +%109 = OpLoad %31 %101 +%110 = OpCompositeConstruct %31 %3 %3 +%111 = OpFAdd %31 %109 %110 +OpStore %101 %111 +%112 = OpLoad %31 %101 +%113 = OpCompositeConstruct %31 %15 %15 +%114 = OpFSub %31 %112 %113 +OpStore %101 %114 +%115 = OpLoad %31 %101 +%116 = OpCompositeConstruct %31 %16 %16 +%117 = OpFDiv %31 %115 %116 +OpStore %101 %117 +%118 = OpLoad %31 %101 +OpReturnValue %118 OpFunctionEnd -%119 = OpFunction %30 None %120 -%118 = OpFunctionParameter %30 -%117 = OpLabel -OpBranch %121 -%121 = OpLabel -%123 = OpCompositeConstruct %30 %5 %5 %5 -%124 = OpFUnordNotEqual %122 %118 %123 -%125 = OpCompositeConstruct %30 %5 %5 %5 -%126 = OpCompositeConstruct %30 %3 %3 %3 -%127 = OpSelect %30 %124 %126 %125 -OpReturnValue %127 +%121 = OpFunction %32 None %122 +%120 = OpFunctionParameter %32 +%119 = OpLabel +OpBranch %123 +%123 = OpLabel +%125 = OpCompositeConstruct %32 %5 %5 %5 +%126 = OpFUnordNotEqual %124 %120 %125 +%127 = OpCompositeConstruct %32 %5 %5 %5 +%128 = OpCompositeConstruct %32 %3 %3 %3 +%129 = OpSelect %32 %126 %128 %127 +OpReturnValue %129 OpFunctionEnd -%132 = OpFunction %4 None %133 -%131 = OpLabel -%128 = OpVariable %129 Function %130 -OpBranch %134 -%134 = OpLabel -%135 = OpCompositeConstruct %26 %3 %3 %3 %3 -%136 = OpCompositeConstruct %31 %135 %7 -OpStore %128 %136 -%137 = OpCompositeConstruct %29 %3 %5 -%138 = OpCompositeConstruct %29 %5 %3 -%139 = OpCompositeConstruct %32 %137 %138 -%140 = OpCompositeConstruct %26 %3 %5 %5 %5 -%141 = OpCompositeConstruct %26 %5 %3 %5 %5 -%142 = OpCompositeConstruct %26 %5 %5 %3 %5 -%143 = OpCompositeConstruct %26 %5 %5 %5 %3 -%144 = OpCompositeConstruct %33 %140 %141 %142 %143 -%145 = OpCompositeConstruct %34 %19 %19 -%146 = OpCompositeConstruct %29 %5 %5 -%147 = OpCompositeConstruct %29 %5 %5 -%148 = OpCompositeConstruct %32 %146 %147 -%149 = OpCompositeConstruct %36 %11 %7 %18 %21 -%155 = OpCopyObject %37 %53 -%157 = OpCopyObject %37 %53 -%160 = OpAccessChain %159 %128 %19 %19 -%161 = OpLoad %4 %160 -OpReturnValue %161 +%134 = OpFunction %4 None %135 +%133 = OpLabel +%130 = OpVariable %131 Function %132 +OpBranch %136 +%136 = OpLabel +%137 = OpCompositeConstruct %28 %3 %3 %3 %3 +%138 = OpCompositeConstruct %33 %137 %7 +OpStore %130 %138 +%139 = OpCompositeConstruct %31 %3 %5 +%140 = OpCompositeConstruct %31 %5 %3 +%141 = OpCompositeConstruct %34 %139 %140 +%142 = OpCompositeConstruct %28 %3 %5 %5 %5 +%143 = OpCompositeConstruct %28 %5 %3 %5 %5 +%144 = OpCompositeConstruct %28 %5 %5 %3 %5 +%145 = OpCompositeConstruct %28 %5 %5 %5 %3 +%146 = OpCompositeConstruct %35 %142 %143 %144 %145 +%147 = OpCompositeConstruct %36 %19 %19 +%148 = OpCompositeConstruct %31 %5 %5 +%149 = OpCompositeConstruct %31 %5 %5 +%150 = OpCompositeConstruct %34 %148 %149 +%151 = OpCompositeConstruct %38 %11 %7 %18 %21 +%157 = OpCopyObject %39 %55 +%159 = OpCopyObject %39 %55 +%162 = OpAccessChain %161 %130 %19 %19 +%163 = OpLoad %4 %162 +OpReturnValue %163 OpFunctionEnd -%163 = OpFunction %2 None %164 -%162 = OpLabel -OpBranch %165 -%165 = OpLabel -%166 = OpLogicalNot %10 %9 -%168 = OpCompositeConstruct %167 %9 %9 -%169 = OpLogicalNot %167 %168 -%170 = OpLogicalOr %10 %9 %12 -%171 = OpLogicalAnd %10 %9 %12 +%165 = OpFunction %2 None %166 +%164 = OpLabel +OpBranch %167 +%167 = OpLabel +%168 = OpLogicalNot %10 %9 +%170 = OpCompositeConstruct %169 %9 %9 +%171 = OpLogicalNot %169 %170 %172 = OpLogicalOr %10 %9 %12 -%173 = OpCompositeConstruct %122 %9 %9 %9 -%174 = OpCompositeConstruct %122 %12 %12 %12 -%175 = OpLogicalOr %122 %173 %174 -%176 = OpLogicalAnd %10 %9 %12 -%177 = OpCompositeConstruct %28 %9 %9 %9 %9 -%178 = OpCompositeConstruct %28 %12 %12 %12 %12 -%179 = OpLogicalAnd %28 %177 %178 +%173 = OpLogicalAnd %10 %9 %12 +%174 = OpLogicalOr %10 %9 %12 +%175 = OpCompositeConstruct %124 %9 %9 %9 +%176 = OpCompositeConstruct %124 %12 %12 %12 +%177 = OpLogicalOr %124 %175 %176 +%178 = OpLogicalAnd %10 %9 %12 +%179 = OpCompositeConstruct %30 %9 %9 %9 %9 +%180 = OpCompositeConstruct %30 %12 %12 %12 %12 +%181 = OpLogicalAnd %30 %179 %180 OpReturn OpFunctionEnd -%181 = OpFunction %2 None %164 -%180 = OpLabel -OpBranch %182 +%183 = OpFunction %2 None %166 %182 = OpLabel -%184 = OpCompositeConstruct %183 %7 %7 -%185 = OpSNegate %183 %184 -%186 = OpCompositeConstruct %29 %3 %3 -%187 = OpFNegate %29 %186 -%188 = OpIAdd %8 %18 %7 -%189 = OpIAdd %20 %24 %25 -%190 = OpFAdd %4 %14 %3 -%191 = OpCompositeConstruct %183 %18 %18 -%192 = OpCompositeConstruct %183 %7 %7 -%193 = OpIAdd %183 %191 %192 -%195 = OpCompositeConstruct %194 %24 %24 %24 -%196 = OpCompositeConstruct %194 %25 %25 %25 -%197 = OpIAdd %194 %195 %196 -%198 = OpCompositeConstruct %26 %14 %14 %14 %14 -%199 = OpCompositeConstruct %26 %3 %3 %3 %3 -%200 = OpFAdd %26 %198 %199 -%201 = OpISub %8 %18 %7 -%202 = OpISub %20 %24 %25 -%203 = OpFSub %4 %14 %3 -%204 = OpCompositeConstruct %183 %18 %18 -%205 = OpCompositeConstruct %183 %7 %7 -%206 = OpISub %183 %204 %205 -%207 = OpCompositeConstruct %194 %24 %24 %24 -%208 = OpCompositeConstruct %194 %25 %25 %25 -%209 = OpISub %194 %207 %208 -%210 = OpCompositeConstruct %26 %14 %14 %14 %14 -%211 = OpCompositeConstruct %26 %3 %3 %3 %3 -%212 = OpFSub %26 %210 %211 -%213 = OpIMul %8 %18 %7 -%214 = OpIMul %20 %24 %25 -%215 = OpFMul %4 %14 %3 -%216 = OpCompositeConstruct %183 %18 %18 -%217 = OpCompositeConstruct %183 %7 %7 -%218 = OpIMul %183 %216 %217 -%219 = OpCompositeConstruct %194 %24 %24 %24 -%220 = OpCompositeConstruct %194 %25 %25 %25 -%221 = OpIMul %194 %219 %220 -%222 = OpCompositeConstruct %26 %14 %14 %14 %14 -%223 = OpCompositeConstruct %26 %3 %3 %3 %3 -%224 = OpFMul %26 %222 %223 -%225 = OpSDiv %8 %18 %7 -%226 = OpUDiv %20 %24 %25 -%227 = OpFDiv %4 %14 %3 -%228 = OpCompositeConstruct %183 %18 %18 -%229 = OpCompositeConstruct %183 %7 %7 -%230 = OpSDiv %183 %228 %229 -%231 = OpCompositeConstruct %194 %24 %24 %24 -%232 = OpCompositeConstruct %194 %25 %25 %25 -%233 = OpUDiv %194 %231 %232 -%234 = OpCompositeConstruct %26 %14 %14 %14 %14 -%235 = OpCompositeConstruct %26 %3 %3 %3 %3 -%236 = OpFDiv %26 %234 %235 -%237 = OpSRem %8 %18 %7 -%238 = OpUMod %20 %24 %25 -%239 = OpFRem %4 %14 %3 -%240 = OpCompositeConstruct %183 %18 %18 -%241 = OpCompositeConstruct %183 %7 %7 -%242 = OpSRem %183 %240 %241 -%243 = OpCompositeConstruct %194 %24 %24 %24 -%244 = OpCompositeConstruct %194 %25 %25 %25 -%245 = OpUMod %194 %243 %244 -%246 = OpCompositeConstruct %26 %14 %14 %14 %14 -%247 = OpCompositeConstruct %26 %3 %3 %3 %3 -%248 = OpFRem %26 %246 %247 -%249 = OpCompositeConstruct %183 %18 %18 -%250 = OpCompositeConstruct %183 %7 %7 -%251 = OpIAdd %183 %249 %250 -%252 = OpCompositeConstruct %183 %7 %7 -%253 = OpCompositeConstruct %183 %18 %18 -%254 = OpIAdd %183 %253 %252 -%255 = OpCompositeConstruct %34 %24 %24 -%256 = OpCompositeConstruct %34 %25 %25 -%257 = OpIAdd %34 %255 %256 -%258 = OpCompositeConstruct %34 %25 %25 -%259 = OpCompositeConstruct %34 %24 %24 -%260 = OpIAdd %34 %259 %258 -%261 = OpCompositeConstruct %29 %14 %14 -%262 = OpCompositeConstruct %29 %3 %3 -%263 = OpFAdd %29 %261 %262 -%264 = OpCompositeConstruct %29 %3 %3 -%265 = OpCompositeConstruct %29 %14 %14 -%266 = OpFAdd %29 %265 %264 -%267 = OpCompositeConstruct %183 %18 %18 -%268 = OpCompositeConstruct %183 %7 %7 -%269 = OpISub %183 %267 %268 -%270 = OpCompositeConstruct %183 %7 %7 -%271 = OpCompositeConstruct %183 %18 %18 -%272 = OpISub %183 %271 %270 -%273 = OpCompositeConstruct %34 %24 %24 -%274 = OpCompositeConstruct %34 %25 %25 -%275 = OpISub %34 %273 %274 -%276 = OpCompositeConstruct %34 %25 %25 -%277 = OpCompositeConstruct %34 %24 %24 -%278 = OpISub %34 %277 %276 -%279 = OpCompositeConstruct %29 %14 %14 -%280 = OpCompositeConstruct %29 %3 %3 -%281 = OpFSub %29 %279 %280 -%282 = OpCompositeConstruct %29 %3 %3 -%283 = OpCompositeConstruct %29 %14 %14 -%284 = OpFSub %29 %283 %282 -%285 = OpCompositeConstruct %183 %18 %18 -%287 = OpCompositeConstruct %183 %7 %7 -%286 = OpIMul %183 %285 %287 -%288 = OpCompositeConstruct %183 %7 %7 -%290 = OpCompositeConstruct %183 %18 %18 -%289 = OpIMul %183 %288 %290 -%291 = OpCompositeConstruct %34 %24 %24 -%293 = OpCompositeConstruct %34 %25 %25 -%292 = OpIMul %34 %291 %293 -%294 = OpCompositeConstruct %34 %25 %25 -%296 = OpCompositeConstruct %34 %24 %24 -%295 = OpIMul %34 %294 %296 -%297 = OpCompositeConstruct %29 %14 %14 -%298 = OpVectorTimesScalar %29 %297 %3 -%299 = OpCompositeConstruct %29 %3 %3 -%300 = OpVectorTimesScalar %29 %299 %14 -%301 = OpCompositeConstruct %183 %18 %18 -%302 = OpCompositeConstruct %183 %7 %7 -%303 = OpSDiv %183 %301 %302 -%304 = OpCompositeConstruct %183 %7 %7 -%305 = OpCompositeConstruct %183 %18 %18 -%306 = OpSDiv %183 %305 %304 -%307 = OpCompositeConstruct %34 %24 %24 -%308 = OpCompositeConstruct %34 %25 %25 -%309 = OpUDiv %34 %307 %308 -%310 = OpCompositeConstruct %34 %25 %25 -%311 = OpCompositeConstruct %34 %24 %24 -%312 = OpUDiv %34 %311 %310 -%313 = OpCompositeConstruct %29 %14 %14 -%314 = OpCompositeConstruct %29 %3 %3 -%315 = OpFDiv %29 %313 %314 -%316 = OpCompositeConstruct %29 %3 %3 -%317 = OpCompositeConstruct %29 %14 %14 -%318 = OpFDiv %29 %317 %316 -%319 = OpCompositeConstruct %183 %18 %18 -%320 = OpCompositeConstruct %183 %7 %7 -%321 = OpSRem %183 %319 %320 -%322 = OpCompositeConstruct %183 %7 %7 -%323 = OpCompositeConstruct %183 %18 %18 -%324 = OpSRem %183 %323 %322 -%325 = OpCompositeConstruct %34 %24 %24 -%326 = OpCompositeConstruct %34 %25 %25 -%327 = OpUMod %34 %325 %326 -%328 = OpCompositeConstruct %34 %25 %25 -%329 = OpCompositeConstruct %34 %24 %24 -%330 = OpUMod %34 %329 %328 -%331 = OpCompositeConstruct %29 %14 %14 -%332 = OpCompositeConstruct %29 %3 %3 -%333 = OpFRem %29 %331 %332 -%334 = OpCompositeConstruct %29 %3 %3 -%335 = OpCompositeConstruct %29 %14 %14 -%336 = OpFRem %29 %335 %334 -%338 = OpCompositeExtract %30 %54 0 -%339 = OpCompositeExtract %30 %54 0 -%340 = OpFAdd %30 %338 %339 -%341 = OpCompositeExtract %30 %54 1 -%342 = OpCompositeExtract %30 %54 1 -%343 = OpFAdd %30 %341 %342 -%344 = OpCompositeExtract %30 %54 2 -%345 = OpCompositeExtract %30 %54 2 -%346 = OpFAdd %30 %344 %345 -%337 = OpCompositeConstruct %38 %340 %343 %346 -%348 = OpCompositeExtract %30 %54 0 -%349 = OpCompositeExtract %30 %54 0 -%350 = OpFSub %30 %348 %349 -%351 = OpCompositeExtract %30 %54 1 -%352 = OpCompositeExtract %30 %54 1 -%353 = OpFSub %30 %351 %352 -%354 = OpCompositeExtract %30 %54 2 -%355 = OpCompositeExtract %30 %54 2 -%356 = OpFSub %30 %354 %355 -%347 = OpCompositeConstruct %38 %350 %353 %356 -%357 = OpMatrixTimesScalar %38 %54 %3 -%358 = OpMatrixTimesScalar %38 %54 %14 -%359 = OpCompositeConstruct %26 %3 %3 %3 %3 -%360 = OpMatrixTimesVector %30 %55 %359 -%361 = OpCompositeConstruct %30 %14 %14 %14 -%362 = OpVectorTimesMatrix %26 %361 %55 -%363 = OpMatrixTimesMatrix %38 %55 %56 +OpBranch %184 +%184 = OpLabel +%186 = OpCompositeConstruct %185 %7 %7 +%187 = OpSNegate %185 %186 +%188 = OpCompositeConstruct %31 %3 %3 +%189 = OpFNegate %31 %188 +%190 = OpIAdd %8 %18 %7 +%191 = OpIAdd %20 %24 %25 +%192 = OpFAdd %4 %14 %3 +%193 = OpCompositeConstruct %185 %18 %18 +%194 = OpCompositeConstruct %185 %7 %7 +%195 = OpIAdd %185 %193 %194 +%197 = OpCompositeConstruct %196 %24 %24 %24 +%198 = OpCompositeConstruct %196 %25 %25 %25 +%199 = OpIAdd %196 %197 %198 +%200 = OpCompositeConstruct %28 %14 %14 %14 %14 +%201 = OpCompositeConstruct %28 %3 %3 %3 %3 +%202 = OpFAdd %28 %200 %201 +%203 = OpISub %8 %18 %7 +%204 = OpISub %20 %24 %25 +%205 = OpFSub %4 %14 %3 +%206 = OpCompositeConstruct %185 %18 %18 +%207 = OpCompositeConstruct %185 %7 %7 +%208 = OpISub %185 %206 %207 +%209 = OpCompositeConstruct %196 %24 %24 %24 +%210 = OpCompositeConstruct %196 %25 %25 %25 +%211 = OpISub %196 %209 %210 +%212 = OpCompositeConstruct %28 %14 %14 %14 %14 +%213 = OpCompositeConstruct %28 %3 %3 %3 %3 +%214 = OpFSub %28 %212 %213 +%215 = OpIMul %8 %18 %7 +%216 = OpIMul %20 %24 %25 +%217 = OpFMul %4 %14 %3 +%218 = OpCompositeConstruct %185 %18 %18 +%219 = OpCompositeConstruct %185 %7 %7 +%220 = OpIMul %185 %218 %219 +%221 = OpCompositeConstruct %196 %24 %24 %24 +%222 = OpCompositeConstruct %196 %25 %25 %25 +%223 = OpIMul %196 %221 %222 +%224 = OpCompositeConstruct %28 %14 %14 %14 %14 +%225 = OpCompositeConstruct %28 %3 %3 %3 %3 +%226 = OpFMul %28 %224 %225 +%227 = OpSDiv %8 %18 %7 +%228 = OpUDiv %20 %24 %25 +%229 = OpFDiv %4 %14 %3 +%230 = OpCompositeConstruct %185 %18 %18 +%231 = OpCompositeConstruct %185 %7 %7 +%232 = OpSDiv %185 %230 %231 +%233 = OpCompositeConstruct %196 %24 %24 %24 +%234 = OpCompositeConstruct %196 %25 %25 %25 +%235 = OpUDiv %196 %233 %234 +%236 = OpCompositeConstruct %28 %14 %14 %14 %14 +%237 = OpCompositeConstruct %28 %3 %3 %3 %3 +%238 = OpFDiv %28 %236 %237 +%239 = OpSRem %8 %18 %7 +%240 = OpUMod %20 %24 %25 +%241 = OpFRem %4 %14 %3 +%242 = OpCompositeConstruct %185 %18 %18 +%243 = OpCompositeConstruct %185 %7 %7 +%244 = OpSRem %185 %242 %243 +%245 = OpCompositeConstruct %196 %24 %24 %24 +%246 = OpCompositeConstruct %196 %25 %25 %25 +%247 = OpUMod %196 %245 %246 +%248 = OpCompositeConstruct %28 %14 %14 %14 %14 +%249 = OpCompositeConstruct %28 %3 %3 %3 %3 +%250 = OpFRem %28 %248 %249 +%251 = OpCompositeConstruct %185 %18 %18 +%252 = OpCompositeConstruct %185 %7 %7 +%253 = OpIAdd %185 %251 %252 +%254 = OpCompositeConstruct %185 %7 %7 +%255 = OpCompositeConstruct %185 %18 %18 +%256 = OpIAdd %185 %255 %254 +%257 = OpCompositeConstruct %36 %24 %24 +%258 = OpCompositeConstruct %36 %25 %25 +%259 = OpIAdd %36 %257 %258 +%260 = OpCompositeConstruct %36 %25 %25 +%261 = OpCompositeConstruct %36 %24 %24 +%262 = OpIAdd %36 %261 %260 +%263 = OpCompositeConstruct %31 %14 %14 +%264 = OpCompositeConstruct %31 %3 %3 +%265 = OpFAdd %31 %263 %264 +%266 = OpCompositeConstruct %31 %3 %3 +%267 = OpCompositeConstruct %31 %14 %14 +%268 = OpFAdd %31 %267 %266 +%269 = OpCompositeConstruct %185 %18 %18 +%270 = OpCompositeConstruct %185 %7 %7 +%271 = OpISub %185 %269 %270 +%272 = OpCompositeConstruct %185 %7 %7 +%273 = OpCompositeConstruct %185 %18 %18 +%274 = OpISub %185 %273 %272 +%275 = OpCompositeConstruct %36 %24 %24 +%276 = OpCompositeConstruct %36 %25 %25 +%277 = OpISub %36 %275 %276 +%278 = OpCompositeConstruct %36 %25 %25 +%279 = OpCompositeConstruct %36 %24 %24 +%280 = OpISub %36 %279 %278 +%281 = OpCompositeConstruct %31 %14 %14 +%282 = OpCompositeConstruct %31 %3 %3 +%283 = OpFSub %31 %281 %282 +%284 = OpCompositeConstruct %31 %3 %3 +%285 = OpCompositeConstruct %31 %14 %14 +%286 = OpFSub %31 %285 %284 +%287 = OpCompositeConstruct %185 %18 %18 +%289 = OpCompositeConstruct %185 %7 %7 +%288 = OpIMul %185 %287 %289 +%290 = OpCompositeConstruct %185 %7 %7 +%292 = OpCompositeConstruct %185 %18 %18 +%291 = OpIMul %185 %290 %292 +%293 = OpCompositeConstruct %36 %24 %24 +%295 = OpCompositeConstruct %36 %25 %25 +%294 = OpIMul %36 %293 %295 +%296 = OpCompositeConstruct %36 %25 %25 +%298 = OpCompositeConstruct %36 %24 %24 +%297 = OpIMul %36 %296 %298 +%299 = OpCompositeConstruct %31 %14 %14 +%300 = OpVectorTimesScalar %31 %299 %3 +%301 = OpCompositeConstruct %31 %3 %3 +%302 = OpVectorTimesScalar %31 %301 %14 +%303 = OpCompositeConstruct %185 %18 %18 +%304 = OpCompositeConstruct %185 %7 %7 +%305 = OpSDiv %185 %303 %304 +%306 = OpCompositeConstruct %185 %7 %7 +%307 = OpCompositeConstruct %185 %18 %18 +%308 = OpSDiv %185 %307 %306 +%309 = OpCompositeConstruct %36 %24 %24 +%310 = OpCompositeConstruct %36 %25 %25 +%311 = OpUDiv %36 %309 %310 +%312 = OpCompositeConstruct %36 %25 %25 +%313 = OpCompositeConstruct %36 %24 %24 +%314 = OpUDiv %36 %313 %312 +%315 = OpCompositeConstruct %31 %14 %14 +%316 = OpCompositeConstruct %31 %3 %3 +%317 = OpFDiv %31 %315 %316 +%318 = OpCompositeConstruct %31 %3 %3 +%319 = OpCompositeConstruct %31 %14 %14 +%320 = OpFDiv %31 %319 %318 +%321 = OpCompositeConstruct %185 %18 %18 +%322 = OpCompositeConstruct %185 %7 %7 +%323 = OpSRem %185 %321 %322 +%324 = OpCompositeConstruct %185 %7 %7 +%325 = OpCompositeConstruct %185 %18 %18 +%326 = OpSRem %185 %325 %324 +%327 = OpCompositeConstruct %36 %24 %24 +%328 = OpCompositeConstruct %36 %25 %25 +%329 = OpUMod %36 %327 %328 +%330 = OpCompositeConstruct %36 %25 %25 +%331 = OpCompositeConstruct %36 %24 %24 +%332 = OpUMod %36 %331 %330 +%333 = OpCompositeConstruct %31 %14 %14 +%334 = OpCompositeConstruct %31 %3 %3 +%335 = OpFRem %31 %333 %334 +%336 = OpCompositeConstruct %31 %3 %3 +%337 = OpCompositeConstruct %31 %14 %14 +%338 = OpFRem %31 %337 %336 +%340 = OpCompositeExtract %32 %56 0 +%341 = OpCompositeExtract %32 %56 0 +%342 = OpFAdd %32 %340 %341 +%343 = OpCompositeExtract %32 %56 1 +%344 = OpCompositeExtract %32 %56 1 +%345 = OpFAdd %32 %343 %344 +%346 = OpCompositeExtract %32 %56 2 +%347 = OpCompositeExtract %32 %56 2 +%348 = OpFAdd %32 %346 %347 +%339 = OpCompositeConstruct %40 %342 %345 %348 +%350 = OpCompositeExtract %32 %56 0 +%351 = OpCompositeExtract %32 %56 0 +%352 = OpFSub %32 %350 %351 +%353 = OpCompositeExtract %32 %56 1 +%354 = OpCompositeExtract %32 %56 1 +%355 = OpFSub %32 %353 %354 +%356 = OpCompositeExtract %32 %56 2 +%357 = OpCompositeExtract %32 %56 2 +%358 = OpFSub %32 %356 %357 +%349 = OpCompositeConstruct %40 %352 %355 %358 +%359 = OpMatrixTimesScalar %40 %56 %3 +%360 = OpMatrixTimesScalar %40 %56 %14 +%361 = OpCompositeConstruct %28 %3 %3 %3 %3 +%362 = OpMatrixTimesVector %32 %57 %361 +%363 = OpCompositeConstruct %32 %14 %14 %14 +%364 = OpVectorTimesMatrix %28 %363 %57 +%365 = OpMatrixTimesMatrix %40 %57 %58 OpReturn OpFunctionEnd -%365 = OpFunction %2 None %164 -%364 = OpLabel -OpBranch %366 +%367 = OpFunction %2 None %166 %366 = OpLabel -%367 = OpNot %8 %7 -%368 = OpNot %20 %25 -%369 = OpCompositeConstruct %183 %7 %7 -%370 = OpNot %183 %369 -%371 = OpCompositeConstruct %194 %25 %25 %25 -%372 = OpNot %194 %371 -%373 = OpBitwiseOr %8 %18 %7 -%374 = OpBitwiseOr %20 %24 %25 -%375 = OpCompositeConstruct %183 %18 %18 -%376 = OpCompositeConstruct %183 %7 %7 -%377 = OpBitwiseOr %183 %375 %376 -%378 = OpCompositeConstruct %194 %24 %24 %24 -%379 = OpCompositeConstruct %194 %25 %25 %25 -%380 = OpBitwiseOr %194 %378 %379 -%381 = OpBitwiseAnd %8 %18 %7 -%382 = OpBitwiseAnd %20 %24 %25 -%383 = OpCompositeConstruct %183 %18 %18 -%384 = OpCompositeConstruct %183 %7 %7 -%385 = OpBitwiseAnd %183 %383 %384 -%386 = OpCompositeConstruct %194 %24 %24 %24 -%387 = OpCompositeConstruct %194 %25 %25 %25 -%388 = OpBitwiseAnd %194 %386 %387 -%389 = OpBitwiseXor %8 %18 %7 -%390 = OpBitwiseXor %20 %24 %25 -%391 = OpCompositeConstruct %183 %18 %18 -%392 = OpCompositeConstruct %183 %7 %7 -%393 = OpBitwiseXor %183 %391 %392 -%394 = OpCompositeConstruct %194 %24 %24 %24 -%395 = OpCompositeConstruct %194 %25 %25 %25 -%396 = OpBitwiseXor %194 %394 %395 -%397 = OpShiftLeftLogical %8 %18 %25 -%398 = OpShiftLeftLogical %20 %24 %25 -%399 = OpCompositeConstruct %183 %18 %18 -%400 = OpCompositeConstruct %34 %25 %25 -%401 = OpShiftLeftLogical %183 %399 %400 -%402 = OpCompositeConstruct %194 %24 %24 %24 -%403 = OpCompositeConstruct %194 %25 %25 %25 -%404 = OpShiftLeftLogical %194 %402 %403 -%405 = OpShiftRightArithmetic %8 %18 %25 -%406 = OpShiftRightLogical %20 %24 %25 -%407 = OpCompositeConstruct %183 %18 %18 -%408 = OpCompositeConstruct %34 %25 %25 -%409 = OpShiftRightArithmetic %183 %407 %408 -%410 = OpCompositeConstruct %194 %24 %24 %24 -%411 = OpCompositeConstruct %194 %25 %25 %25 -%412 = OpShiftRightLogical %194 %410 %411 +OpBranch %368 +%368 = OpLabel +%369 = OpNot %8 %7 +%370 = OpNot %20 %25 +%371 = OpCompositeConstruct %185 %7 %7 +%372 = OpNot %185 %371 +%373 = OpCompositeConstruct %196 %25 %25 %25 +%374 = OpNot %196 %373 +%375 = OpBitwiseOr %8 %18 %7 +%376 = OpBitwiseOr %20 %24 %25 +%377 = OpCompositeConstruct %185 %18 %18 +%378 = OpCompositeConstruct %185 %7 %7 +%379 = OpBitwiseOr %185 %377 %378 +%380 = OpCompositeConstruct %196 %24 %24 %24 +%381 = OpCompositeConstruct %196 %25 %25 %25 +%382 = OpBitwiseOr %196 %380 %381 +%383 = OpBitwiseAnd %8 %18 %7 +%384 = OpBitwiseAnd %20 %24 %25 +%385 = OpCompositeConstruct %185 %18 %18 +%386 = OpCompositeConstruct %185 %7 %7 +%387 = OpBitwiseAnd %185 %385 %386 +%388 = OpCompositeConstruct %196 %24 %24 %24 +%389 = OpCompositeConstruct %196 %25 %25 %25 +%390 = OpBitwiseAnd %196 %388 %389 +%391 = OpBitwiseXor %8 %18 %7 +%392 = OpBitwiseXor %20 %24 %25 +%393 = OpCompositeConstruct %185 %18 %18 +%394 = OpCompositeConstruct %185 %7 %7 +%395 = OpBitwiseXor %185 %393 %394 +%396 = OpCompositeConstruct %196 %24 %24 %24 +%397 = OpCompositeConstruct %196 %25 %25 %25 +%398 = OpBitwiseXor %196 %396 %397 +%399 = OpShiftLeftLogical %8 %18 %25 +%400 = OpShiftLeftLogical %20 %24 %25 +%401 = OpCompositeConstruct %185 %18 %18 +%402 = OpCompositeConstruct %36 %25 %25 +%403 = OpShiftLeftLogical %185 %401 %402 +%404 = OpCompositeConstruct %196 %24 %24 %24 +%405 = OpCompositeConstruct %196 %25 %25 %25 +%406 = OpShiftLeftLogical %196 %404 %405 +%407 = OpShiftRightArithmetic %8 %18 %25 +%408 = OpShiftRightLogical %20 %24 %25 +%409 = OpCompositeConstruct %185 %18 %18 +%410 = OpCompositeConstruct %36 %25 %25 +%411 = OpShiftRightArithmetic %185 %409 %410 +%412 = OpCompositeConstruct %196 %24 %24 %24 +%413 = OpCompositeConstruct %196 %25 %25 %25 +%414 = OpShiftRightLogical %196 %412 %413 OpReturn OpFunctionEnd -%414 = OpFunction %2 None %164 -%413 = OpLabel -OpBranch %415 +%416 = OpFunction %2 None %166 %415 = OpLabel -%416 = OpIEqual %10 %18 %7 -%417 = OpIEqual %10 %24 %25 -%418 = OpFOrdEqual %10 %14 %3 -%419 = OpCompositeConstruct %183 %18 %18 -%420 = OpCompositeConstruct %183 %7 %7 -%421 = OpIEqual %167 %419 %420 -%422 = OpCompositeConstruct %194 %24 %24 %24 -%423 = OpCompositeConstruct %194 %25 %25 %25 -%424 = OpIEqual %122 %422 %423 -%425 = OpCompositeConstruct %26 %14 %14 %14 %14 -%426 = OpCompositeConstruct %26 %3 %3 %3 %3 -%427 = OpFOrdEqual %28 %425 %426 -%428 = OpINotEqual %10 %18 %7 -%429 = OpINotEqual %10 %24 %25 -%430 = OpFOrdNotEqual %10 %14 %3 -%431 = OpCompositeConstruct %183 %18 %18 -%432 = OpCompositeConstruct %183 %7 %7 -%433 = OpINotEqual %167 %431 %432 -%434 = OpCompositeConstruct %194 %24 %24 %24 -%435 = OpCompositeConstruct %194 %25 %25 %25 -%436 = OpINotEqual %122 %434 %435 -%437 = OpCompositeConstruct %26 %14 %14 %14 %14 -%438 = OpCompositeConstruct %26 %3 %3 %3 %3 -%439 = OpFOrdNotEqual %28 %437 %438 -%440 = OpSLessThan %10 %18 %7 -%441 = OpULessThan %10 %24 %25 -%442 = OpFOrdLessThan %10 %14 %3 -%443 = OpCompositeConstruct %183 %18 %18 -%444 = OpCompositeConstruct %183 %7 %7 -%445 = OpSLessThan %167 %443 %444 -%446 = OpCompositeConstruct %194 %24 %24 %24 -%447 = OpCompositeConstruct %194 %25 %25 %25 -%448 = OpULessThan %122 %446 %447 -%449 = OpCompositeConstruct %26 %14 %14 %14 %14 -%450 = OpCompositeConstruct %26 %3 %3 %3 %3 -%451 = OpFOrdLessThan %28 %449 %450 -%452 = OpSLessThanEqual %10 %18 %7 -%453 = OpULessThanEqual %10 %24 %25 -%454 = OpFOrdLessThanEqual %10 %14 %3 -%455 = OpCompositeConstruct %183 %18 %18 -%456 = OpCompositeConstruct %183 %7 %7 -%457 = OpSLessThanEqual %167 %455 %456 -%458 = OpCompositeConstruct %194 %24 %24 %24 -%459 = OpCompositeConstruct %194 %25 %25 %25 -%460 = OpULessThanEqual %122 %458 %459 -%461 = OpCompositeConstruct %26 %14 %14 %14 %14 -%462 = OpCompositeConstruct %26 %3 %3 %3 %3 -%463 = OpFOrdLessThanEqual %28 %461 %462 -%464 = OpSGreaterThan %10 %18 %7 -%465 = OpUGreaterThan %10 %24 %25 -%466 = OpFOrdGreaterThan %10 %14 %3 -%467 = OpCompositeConstruct %183 %18 %18 -%468 = OpCompositeConstruct %183 %7 %7 -%469 = OpSGreaterThan %167 %467 %468 -%470 = OpCompositeConstruct %194 %24 %24 %24 -%471 = OpCompositeConstruct %194 %25 %25 %25 -%472 = OpUGreaterThan %122 %470 %471 -%473 = OpCompositeConstruct %26 %14 %14 %14 %14 -%474 = OpCompositeConstruct %26 %3 %3 %3 %3 -%475 = OpFOrdGreaterThan %28 %473 %474 -%476 = OpSGreaterThanEqual %10 %18 %7 -%477 = OpUGreaterThanEqual %10 %24 %25 -%478 = OpFOrdGreaterThanEqual %10 %14 %3 -%479 = OpCompositeConstruct %183 %18 %18 -%480 = OpCompositeConstruct %183 %7 %7 -%481 = OpSGreaterThanEqual %167 %479 %480 -%482 = OpCompositeConstruct %194 %24 %24 %24 -%483 = OpCompositeConstruct %194 %25 %25 %25 -%484 = OpUGreaterThanEqual %122 %482 %483 -%485 = OpCompositeConstruct %26 %14 %14 %14 %14 -%486 = OpCompositeConstruct %26 %3 %3 %3 %3 -%487 = OpFOrdGreaterThanEqual %28 %485 %486 +OpBranch %417 +%417 = OpLabel +%418 = OpIEqual %10 %18 %7 +%419 = OpIEqual %10 %24 %25 +%420 = OpFOrdEqual %10 %14 %3 +%421 = OpCompositeConstruct %185 %18 %18 +%422 = OpCompositeConstruct %185 %7 %7 +%423 = OpIEqual %169 %421 %422 +%424 = OpCompositeConstruct %196 %24 %24 %24 +%425 = OpCompositeConstruct %196 %25 %25 %25 +%426 = OpIEqual %124 %424 %425 +%427 = OpCompositeConstruct %28 %14 %14 %14 %14 +%428 = OpCompositeConstruct %28 %3 %3 %3 %3 +%429 = OpFOrdEqual %30 %427 %428 +%430 = OpINotEqual %10 %18 %7 +%431 = OpINotEqual %10 %24 %25 +%432 = OpFOrdNotEqual %10 %14 %3 +%433 = OpCompositeConstruct %185 %18 %18 +%434 = OpCompositeConstruct %185 %7 %7 +%435 = OpINotEqual %169 %433 %434 +%436 = OpCompositeConstruct %196 %24 %24 %24 +%437 = OpCompositeConstruct %196 %25 %25 %25 +%438 = OpINotEqual %124 %436 %437 +%439 = OpCompositeConstruct %28 %14 %14 %14 %14 +%440 = OpCompositeConstruct %28 %3 %3 %3 %3 +%441 = OpFOrdNotEqual %30 %439 %440 +%442 = OpSLessThan %10 %18 %7 +%443 = OpULessThan %10 %24 %25 +%444 = OpFOrdLessThan %10 %14 %3 +%445 = OpCompositeConstruct %185 %18 %18 +%446 = OpCompositeConstruct %185 %7 %7 +%447 = OpSLessThan %169 %445 %446 +%448 = OpCompositeConstruct %196 %24 %24 %24 +%449 = OpCompositeConstruct %196 %25 %25 %25 +%450 = OpULessThan %124 %448 %449 +%451 = OpCompositeConstruct %28 %14 %14 %14 %14 +%452 = OpCompositeConstruct %28 %3 %3 %3 %3 +%453 = OpFOrdLessThan %30 %451 %452 +%454 = OpSLessThanEqual %10 %18 %7 +%455 = OpULessThanEqual %10 %24 %25 +%456 = OpFOrdLessThanEqual %10 %14 %3 +%457 = OpCompositeConstruct %185 %18 %18 +%458 = OpCompositeConstruct %185 %7 %7 +%459 = OpSLessThanEqual %169 %457 %458 +%460 = OpCompositeConstruct %196 %24 %24 %24 +%461 = OpCompositeConstruct %196 %25 %25 %25 +%462 = OpULessThanEqual %124 %460 %461 +%463 = OpCompositeConstruct %28 %14 %14 %14 %14 +%464 = OpCompositeConstruct %28 %3 %3 %3 %3 +%465 = OpFOrdLessThanEqual %30 %463 %464 +%466 = OpSGreaterThan %10 %18 %7 +%467 = OpUGreaterThan %10 %24 %25 +%468 = OpFOrdGreaterThan %10 %14 %3 +%469 = OpCompositeConstruct %185 %18 %18 +%470 = OpCompositeConstruct %185 %7 %7 +%471 = OpSGreaterThan %169 %469 %470 +%472 = OpCompositeConstruct %196 %24 %24 %24 +%473 = OpCompositeConstruct %196 %25 %25 %25 +%474 = OpUGreaterThan %124 %472 %473 +%475 = OpCompositeConstruct %28 %14 %14 %14 %14 +%476 = OpCompositeConstruct %28 %3 %3 %3 %3 +%477 = OpFOrdGreaterThan %30 %475 %476 +%478 = OpSGreaterThanEqual %10 %18 %7 +%479 = OpUGreaterThanEqual %10 %24 %25 +%480 = OpFOrdGreaterThanEqual %10 %14 %3 +%481 = OpCompositeConstruct %185 %18 %18 +%482 = OpCompositeConstruct %185 %7 %7 +%483 = OpSGreaterThanEqual %169 %481 %482 +%484 = OpCompositeConstruct %196 %24 %24 %24 +%485 = OpCompositeConstruct %196 %25 %25 %25 +%486 = OpUGreaterThanEqual %124 %484 %485 +%487 = OpCompositeConstruct %28 %14 %14 %14 %14 +%488 = OpCompositeConstruct %28 %3 %3 %3 %3 +%489 = OpFOrdGreaterThanEqual %30 %487 %488 OpReturn OpFunctionEnd -%493 = OpFunction %2 None %164 -%492 = OpLabel -%488 = OpVariable %489 Function %7 -%490 = OpVariable %491 Function %57 -OpBranch %494 +%495 = OpFunction %2 None %166 %494 = OpLabel -%495 = OpLoad %8 %488 -%496 = OpIAdd %8 %495 %7 -OpStore %488 %496 -%497 = OpLoad %8 %488 -%498 = OpISub %8 %497 %7 -OpStore %488 %498 -%499 = OpLoad %8 %488 -%500 = OpLoad %8 %488 -%501 = OpIMul %8 %499 %500 -OpStore %488 %501 -%502 = OpLoad %8 %488 -%503 = OpLoad %8 %488 -%504 = OpSDiv %8 %502 %503 -OpStore %488 %504 -%505 = OpLoad %8 %488 -%506 = OpSRem %8 %505 %7 -OpStore %488 %506 -%507 = OpLoad %8 %488 -%508 = OpBitwiseAnd %8 %507 %11 -OpStore %488 %508 -%509 = OpLoad %8 %488 -%510 = OpBitwiseOr %8 %509 %11 -OpStore %488 %510 -%511 = OpLoad %8 %488 -%512 = OpBitwiseXor %8 %511 %11 -OpStore %488 %512 -%513 = OpLoad %8 %488 -%514 = OpShiftLeftLogical %8 %513 %24 -OpStore %488 %514 -%515 = OpLoad %8 %488 -%516 = OpShiftRightArithmetic %8 %515 %25 -OpStore %488 %516 -%517 = OpLoad %8 %488 -%518 = OpIAdd %8 %517 %7 -OpStore %488 %518 -%519 = OpLoad %8 %488 -%520 = OpISub %8 %519 %7 -OpStore %488 %520 -%522 = OpAccessChain %521 %490 %25 -%523 = OpLoad %8 %522 -%524 = OpIAdd %8 %523 %7 -%525 = OpAccessChain %521 %490 %25 -OpStore %525 %524 -%526 = OpAccessChain %521 %490 %25 -%527 = OpLoad %8 %526 -%528 = OpISub %8 %527 %7 -%529 = OpAccessChain %521 %490 %25 -OpStore %529 %528 +%490 = OpVariable %491 Function %7 +%492 = OpVariable %493 Function %59 +OpBranch %496 +%496 = OpLabel +%497 = OpLoad %8 %490 +%498 = OpIAdd %8 %497 %7 +OpStore %490 %498 +%499 = OpLoad %8 %490 +%500 = OpISub %8 %499 %7 +OpStore %490 %500 +%501 = OpLoad %8 %490 +%502 = OpLoad %8 %490 +%503 = OpIMul %8 %501 %502 +OpStore %490 %503 +%504 = OpLoad %8 %490 +%505 = OpLoad %8 %490 +%506 = OpSDiv %8 %504 %505 +OpStore %490 %506 +%507 = OpLoad %8 %490 +%508 = OpSRem %8 %507 %7 +OpStore %490 %508 +%509 = OpLoad %8 %490 +%510 = OpBitwiseAnd %8 %509 %11 +OpStore %490 %510 +%511 = OpLoad %8 %490 +%512 = OpBitwiseOr %8 %511 %11 +OpStore %490 %512 +%513 = OpLoad %8 %490 +%514 = OpBitwiseXor %8 %513 %11 +OpStore %490 %514 +%515 = OpLoad %8 %490 +%516 = OpShiftLeftLogical %8 %515 %24 +OpStore %490 %516 +%517 = OpLoad %8 %490 +%518 = OpShiftRightArithmetic %8 %517 %25 +OpStore %490 %518 +%519 = OpLoad %8 %490 +%520 = OpIAdd %8 %519 %7 +OpStore %490 %520 +%521 = OpLoad %8 %490 +%522 = OpISub %8 %521 %7 +OpStore %490 %522 +%524 = OpAccessChain %523 %492 %25 +%525 = OpLoad %8 %524 +%526 = OpIAdd %8 %525 %7 +%527 = OpAccessChain %523 %492 %25 +OpStore %527 %526 +%528 = OpAccessChain %523 %492 %25 +%529 = OpLoad %8 %528 +%530 = OpISub %8 %529 %7 +%531 = OpAccessChain %523 %492 %25 +OpStore %531 %530 OpReturn OpFunctionEnd -%531 = OpFunction %2 None %164 -%530 = OpLabel -OpBranch %532 +%533 = OpFunction %2 None %166 %532 = OpLabel -%533 = OpFunctionCall %26 %59 -%534 = OpFunctionCall %26 %84 -%535 = OpVectorShuffle %30 %42 %42 0 1 2 -%536 = OpFunctionCall %30 %119 %535 -%537 = OpFunctionCall %4 %132 -%538 = OpFunctionCall %2 %163 -%539 = OpFunctionCall %2 %181 -%540 = OpFunctionCall %2 %365 -%541 = OpFunctionCall %2 %414 -%542 = OpFunctionCall %2 %493 +OpBranch %534 +%534 = OpLabel +%535 = OpSNegate %8 %27 +%536 = OpSNegate %8 %21 +%537 = OpSNegate %8 %536 +OpReturn +OpFunctionEnd +%539 = OpFunction %2 None %166 +%538 = OpLabel +OpBranch %540 +%540 = OpLabel +%541 = OpFunctionCall %28 %61 +%542 = OpFunctionCall %28 %86 +%543 = OpVectorShuffle %32 %44 %44 0 1 2 +%544 = OpFunctionCall %32 %121 %543 +%545 = OpFunctionCall %4 %134 +%546 = OpFunctionCall %2 %165 +%547 = OpFunctionCall %2 %183 +%548 = OpFunctionCall %2 %367 +%549 = OpFunctionCall %2 %416 +%550 = OpFunctionCall %2 %495 OpReturn OpFunctionEnd \ No newline at end of file diff --git a/tests/out/wgsl/operators.wgsl b/tests/out/wgsl/operators.wgsl index a8a488dff6..4f16640843 100644 --- a/tests/out/wgsl/operators.wgsl +++ b/tests/out/wgsl/operators.wgsl @@ -251,6 +251,11 @@ fn assignment() { return; } +fn negate_signed_literals() { + _ = -(-2); + _ = -(-(3)); +} + @compute @workgroup_size(1, 1, 1) fn main() { let _e4 = builtins();